二叉樹,讓你快速寫出來的先序,中序,後序遍歷

2021-08-20 20:23:36 字數 867 閱讀 4878

二叉樹:

每個結點至多只有二棵子樹(不存在度大於

2的結點

),二叉樹的子樹有左右之分,次序不能顛倒。

先序遍歷:

先訪問根結點,

然後先序遍歷左子樹,最後

再先序遍歷右子樹

。中序遍歷:

先中序遍歷左子樹,然後訪問根結點,最後再中序遍歷右子樹

。後序遍歷:

先後序遍歷左子樹,然後後序遍歷右子樹,最後再訪問根結點

。1.快速寫出先序遍歷。

如下圖:

先看第一層,從上到下為:1   2   4

再看第二層,從上到下為:5

最後看第三層:從上到下為:3  6

則結合起來,先序遍歷為:1  2  4  5  3  6

2.快速寫出後序遍歷。

如下圖:

先看第一層,從上到下為:1  3

再看第二層,從上到下為:6

再看第三層:從上到下為:2  5

最後看第四層,從上到下為:4

先結合起來,為:1  3  6  2  5  4 ,再倒著輸出則為後序遍歷的結果:

4  5  2  6  3  1

3.快速寫中序遍歷。

如下圖:

中序就垂直投影就好了。則中序遍歷為:4  2  5  1  6  3

先序中序重建二叉樹

includeusing namespace std vectorpre,in int p typedef struct node vectorpost int rec int l,int r 通過前序和後序得到樹 int main for int i 0 i tem in.push back te...

先序中序轉二叉樹

在紙上計算一下他們轉的過程就很容易發現規律 寫程式更簡單,只需要計算出每個子樹的起始位置 計算的時候使用靜態鍊錶更為方便 include include include include include using namespace std struct node vector int in,pre...

二叉樹 先序 中序 後序

同學整理的,順便傳上分享下 一,已知先序和中序 求後序 1 include2 include3 include4 using namespace std 5char s1 10 s2 10 ans 10 6 int o 0 7 void tree int n char s1 char s2 char...