非递归算法实现二叉树高度
思路:
嘻嘻,请读者自己手动模拟。博主这里不知道怎么说。
拓展:
该算法思路也适用于
(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<rear){
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指向下层节点
}
}
}
您可能感兴趣的- 非递归先序遍历二叉树https://www.cnblogs.com/Coeus-P/p/9353186.html
- 非递归后序遍历二叉树版本二https://www.cnblogs.com/Coeus-P/p/9354754.html
- 递归算法--二叉树宽度https://www.cnblogs.com/Coeus-P/p/9354671.html
- 递归算法--交换二叉树左右子树https://www.cnblogs.com/Coeus-P/p/9353568.html
- 递归算法--二叉树高度https://www.cnblogs.com/Coeus-P/p/9353528.html
- 递归算法--二叉树中叶子结点https://www.cnblogs.com/Coeus-P/p/9353505.html
- 递归算法--二叉树中度为2的结点https://www.cnblogs.com/Coeus-P/p/9353495.html
- 递归算法--二叉树中度为1的结点https://www.cnblogs.com/Coeus-P/p/9353484.html
- 非递归实现斐波那契数列https://www.cnblogs.com/Coeus-P/p/9353452.html
- 非递归后序遍历二叉树版本一https://www.cnblogs.com/Coeus-P/p/9353360.html
- 层次遍历二叉树https://www.cnblogs.com/Coeus-P/p/9353257.html
- 非递归中序遍历二叉树https://www.cnblogs.com/Coeus-P/p/9353227.html
- 非递归先序遍历二叉树https://www.cnblogs.com/Coeus-P/p/9353186.html