二叉樹前序、中序、後序遍歷求法
阿新 • • 發佈:2018-12-26
二叉樹前序、中序、後序遍歷相互求法
二叉樹的三種遍歷方法:
前序遍歷:
1.訪問根節點
2.前序遍歷左子樹
3.前序遍歷右子樹
中序遍歷:
1.中序遍歷左子樹
2.訪問根節點
3.中序遍歷右子樹
後序遍歷:
1.後序遍歷左子樹
2.後序遍歷右子樹
3.訪問根節點
三種方法的特點:
前序:開頭是頭結點,第一個節點肯定是根節點
中序:可以根據頭結點劃分左右子樹的元素
後序:末尾是頭結點,最後一個節點肯定是根節點
舉例1,前中求後
前序遍歷: GDAFEMHZ
中序遍歷: ADEFGHMZ
求後序遍歷。
前序可以得出 G為根節點。
帶入中序中,ADEFG 為左邊, HMZ為右邊。
對應到兩個子樹的前序和中序。
左邊前序:DAFE
左邊中序:ADEF
右邊前序:MHZ
右邊中序:HMZ
推出:
左根節點D
右根節點M
以此類推,推導即可。
舉例2,中後求前
中序遍歷: ADEFGHMZ
後序遍歷: AEFDHZMG
有後序,可以直接看出來G為根節點。
左邊中序為ADEF
左邊後序為AEFD
右邊中序HMZ
右邊後序HZM
推出左邊根為D,右邊根為M。
以此類推,推導即可。
舉例3,前後求中
前序遍歷: GDAFEMHZ
後序遍歷: AEFDHZMG
可以得出根節點,但是無法確定左右子樹,得到的解不唯一。