递归算法:

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;
}


复制代码