1. 程式人生 > >二叉樹前序、中序、後序遍歷求法

二叉樹前序、中序、後序遍歷求法

二叉樹前序、中序、後序遍歷相互求法

二叉樹的三種遍歷方法:

前序遍歷:

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

可以得出根節點,但是無法確定左右子樹,得到的解不唯一。