二叉樹高度的三種計算方法

2021-07-26 19:38:46 字數 929 閱讀 1321

計算二叉樹的高度可以採用幾種不同的演算法。

演算法一:採用後序遍歷二叉樹,結點最大棧長即為二叉樹的高度;

演算法二:層次遍歷二叉樹,最大層次即為二叉樹的高度;

演算法三:採用遞迴演算法,求二叉樹的高度。

/法1:後序遍歷,結點最大棧長即為樹的高度

//法2:層次遍歷,層次即為高度

//法3:遞迴求樹高

//除錯程式輸入二叉樹:-+a##*b##-c##d##/e##f##

//程式輸出該二叉樹的高度:5#include#include#includeusing namespace std;

typedef struct bitnodebitnode,*bitree;

void createtree(bitree &t) }

//法1:後序遍歷,結點最大棧長即為樹的高度

int bt_high(bitree t)

else

} }

return max;

}

//法2:層次遍歷,層次即為高度

int bt_level_depth(bitree t)

} return level;

}

//法3:遞迴求樹高1

int max1=0;//樹高

int bt_depth1(bitree t,int depth)

if(depth>max1)

max1=depth;

return depth;

}

//法3:遞迴求樹高2

int height (bitree t) }

int main()

{ bitree t=null;

createtree(t);

cout<<"後序遍歷求樹高:"<

二叉樹的計算方法

已知先序遍歷序列和中序遍歷序列,求出後序序列 或者 已知中序序列和後序序列 求出先序遍歷。都是一些考試中容易考的題目。經過研究發現,已知先序序列和後序序列,無法唯一確定一棵樹,所以就無法得知中序 序列。下邊給出例題 一 已知先序和中序,求出後序。下邊再舉乙個例子,如下圖 通過上邊兩個例子的學習,對這...

二叉樹的三種遍歷方法

定義二叉樹 鏈式儲存 struct binarytreenode 順序儲存 struct binarytreenode 遞迴實現 先序遍歷 int preordertreewalk binarytreenode pnode 中序遍歷 int inordertreewalk binarytreenod...

二叉樹的三種遞迴方法

今天學習了二叉樹的知識學習了三種遍歷二叉樹的方法,雖然不知道後面兩種有什麼卵用,但還是講解一下 第一種 先序遍歷 1 先訪問其節點本身 2 訪問其左邊的子節點 3 再訪問其右邊的子節點。這種遍歷二叉樹的方法其實就是深搜,先訪問左邊一整條線的節點,就相當於搜尋迷宮時朝乙個方向一直走,直到不能走時再換乙...