java 非递归求二叉树高度_非递归算法实现二叉树高度

思路:

嘻嘻,请读者自己手动模拟。博主这里不知道怎么说。

拓展:

该算法思路也适用于

(1)每层的结点个数

(2)树的最大宽度

(3)节点位于某一层

int height(BiTree T){

if(T==null)

return 0;

int front=-1, rear=-1;//front 出队指针 rear 入队指针

int last = 0, level=0;//last 每一层的最右指针(front==last时候一层遍历结束 level++)

BiTree Q[Maxsize];//模拟队列

Q[++rear] = T;

BiTree p;

while(front

p = Q[++front];//开始出队 因为front要赶到lash 实现level++

if(p->lchild)

Q[++rear] = p->lchild;

if(p->rchild)

Q[++rear] = p->rchild;

if(front==last){

level++;

last=rear;//last指向下层节点

}

}

}

您可能感兴趣的


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部