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

递归算法:

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


复制代码
全部评论

相关推荐

09-28 22:01
已编辑
广西科技大学 IT技术支持
合适才能收到offe...:找桌面运维?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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