非遞歸算法實現二叉樹高度

思路:html

嘻嘻,請讀者本身手動模擬。博主這裏不知道怎麼說。算法

拓展:指針

該算法思路也適用於code

(1)每層的結點個數htm

(2)樹的最大寬度blog

(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指向下層節點
    }
}

}get


您可能感興趣的
ast

相關文章
相關標籤/搜索