java 非递归求二叉树高度_非递归算法实现二叉树高度
生活随笔
收集整理的這篇文章主要介紹了
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指向下層節點
}
}
}
您可能感興趣的
總結
以上是生活随笔為你收集整理的java 非递归求二叉树高度_非递归算法实现二叉树高度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java网络编程udp_Java网络编程
- 下一篇: java转json jar包_java转