二叉樹 如何使用三種遍歷中的兩種推斷出二叉樹

2021-08-13 08:18:25 字數 755 閱讀 6633

中序遍歷

的遞迴演算法定義:

若二叉樹非空,則依次執行如下操作:

(1)遍歷左子樹;

(2)訪問根結點;

(3)遍歷右子樹。

2.先序遍歷

的遞迴演算法定義:

若二叉樹非空,則依次執行如下操作:

(1) 訪問根結點;

(2) 遍歷左子樹;

(3) 遍歷右子樹。

3.後序遍歷得遞迴演算法定義:

若二叉樹非空,則依次執行如下操作:

(1)遍歷左子樹;

(2)遍歷右子樹;

(3)訪問根結點。

比如你知道乙個程式的

先序遍歷

是abcdefg

中序遍歷

是cbdaegf讓你推算出後序遍歷

因為先序遍歷

的順序是根-左-右 那麼我們看先序遍歷abcdefg,那麼a就是根

再看中序遍歷

cbdaegf,根據中序遍歷的左-根-右 看出a左邊cbd的都是左子樹,右邊的egf是左子樹

然後對先序遍歷劃分 a/bcd/efg

對左子樹cbd 由先序遍歷中的a/bcd/efg可以看出bcd中b在前面 則b是左子樹的根 c是下一行的左子樹

同理可對efg分析

那麼畫出圖                         a

/  \

b    e

/\     \

c  d     f/g

那麼後序遍歷cdbgfea

二叉樹的三種遍歷

重新又看了一遍二叉樹 binary tree 發現很多東西自己還沒有弄明白,原來三種遍歷方式還不是自己想象中的那樣 前序遍歷 preorder 是先輸出自己,然後左,最後右。中序遍歷 inorder 是先左,再輸出自己,最後右。後序遍歷 postorder 是先左,再右,最後輸出自己。所謂的xx遍歷...

二叉樹的三種遍歷

在這裡說一下二叉樹的三種遍歷 前序,中序,後序 正文 前序遍歷 是指先從根開始,再依次找尋左子結點 右子結點。學習時的經驗就是 看圖學習 第乙份圖 這樣看來 1.先找最基本的根結點 詞窮 這裡是a。2.接著找以a為根結點的左子結點,這裡是b。3.而以b為根結點也會出現左右結點,這就又有了乙個左結點d...

二叉樹的三種遍歷

二叉樹是n n 0 個節點的有限集合,它或者是空樹 n 0 或者是有乙個根節點及兩顆不相交的且分別稱為左 右子樹的二叉樹所組成。可見,二叉樹同樣具有遞迴性質。特別需要注意的是,儘管樹和二叉樹的概念之間有許多聯絡,但它們是兩個不同的概念,樹和二叉樹之間最主要的區別是 二叉樹結點的子樹要區分左子樹和右子...