递归算法:
int Btdepth2(BiTree T)
{
if(T==NULL)
return 0;
ldep=Bdepth(T->lchild);
rdep=Bdepth(T->rchild);
if(ldep>rdep)
return ldep+1;
else
return rdep+1;
}
非递归算法
int Btdepth(Bitree T)
{
if(!T)
return 0;
int front=-1,rear=-1;
int last=0,level=0;
BiTree Q[Maxsize];
Q[++rear]=T;
BiTree p;
while(front<rear)
{
p=Q[++front];
if (p->lchild)
Q[++rear]=p->lchild;
if(p->rchild)
Q[++rear]=p->rchild;
if(front=last)
{
level++;
last=rear;
}
}
return level;
}
复制代码