java 非递归求二叉树高度_非递归算法实现二叉树高度
思路:
嘻嘻,請(qǐng)讀者自己手動(dòng)模擬。博主這里不知道怎么說(shuō)。
拓展:
該算法思路也適用于
(1)每層的結(jié)點(diǎn)個(gè)數(shù)
(2)樹(shù)的最大寬度
(3)節(jié)點(diǎn)位于某一層
int height(BiTree T){
if(T==null)
return 0;
int front=-1, rear=-1;//front 出隊(duì)指針 rear 入隊(duì)指針
int last = 0, level=0;//last 每一層的最右指針(front==last時(shí)候一層遍歷結(jié)束 level++)
BiTree Q[Maxsize];//模擬隊(duì)列
Q[++rear] = T;
BiTree p;
while(front
p = Q[++front];//開(kāi)始出隊(duì) 因?yàn)閒ront要趕到lash 實(shí)現(xiàn)level++
if(p->lchild)
Q[++rear] = p->lchild;
if(p->rchild)
Q[++rear] = p->rchild;
if(front==last){
level++;
last=rear;//last指向下層節(jié)點(diǎn)
}
}
}
您可能感興趣的
總結(jié)
以上是生活随笔為你收集整理的java 非递归求二叉树高度_非递归算法实现二叉树高度的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java网络编程udp_Java网络编程
- 下一篇: java转json jar包_java转