不是很难,先谢你的高分。
========================
int
depth(bitree
t)
//
盘算二叉树的深度。
{
int
lchilddep,rchilddep;
if(t==0)
return
0;
else
{
lchilddep=depth(t-> lchild);
rchilddep=depth(t-> rchild);
if(lchilddep> rchilddep)
return
(lchilddep+1);
else
return
(rchilddep+1);
}
}
========================
int
maxlayerlength(bitree
t)
//
盘算二叉树各层的结点数的最大值
{
bitree
queue[M],p=t;
//确定行列queue,
什么是数据结构和算法
为求简朴,此处假设M足够大
int
front,rear;
//队首,队尾
int
max_length=0,
//最大层长
cur_length=0,
//当前层长
next_length=0;
//下一层长
if(t!=NULL){
front=rear=-1;
//行列初始化
queue[++rear]=t;
//根结点指针进队
max_length=cur_length=1;//层长初试化
next_length=0;
while(front <rear){
p=queue[++front];//出队,获取当前层一个结点
cur_length–;
if(p-> l!=NULL){
queue[++rear]=p-> l;//左孩子结点指针进队
next_length++;
}
if(p-> r!=NULL){
queue[++rear]=p-> r;//右孩子结点指针进队
next_length++;
}
if(cur_length==0){//进入下一层
cur_length=next_length;
if(cur_length> max_length)//更新最大层长
max_length=cur_length;
next_length=0;
}/*if*/
}/*while*/
}/*if*/
return
max_length;
}
================================
请百度的是如何进行数据搜索的?