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指向下层节点
}
}
}
您可能感兴趣的
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
