递归算法和非递归算法求二叉树的高度


递归算法:
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;
}



全部评论

相关推荐

不愿透露姓名的神秘牛友
05-26 01:10
摸鱼卡比:哥们真好,已经投降了,找了个大厂日常在干了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务