快速判斷二叉樹先序遍歷 後序遍歷

1、知道二叉樹的先序/後序遍歷和中序遍歷(中序必需要知道,否則沒法判斷),要快速判斷後序/先序遍歷,首先要了解二叉樹的遍歷規律3d

 

2、二叉樹遍歷規律blog

一、三種遍歷都有一個規律,就是:逆時針沿着二叉樹外緣移動,即方向相同,以下圖1:二叉樹

 

圖1遍歷

 

二、方法

三、  不一樣的是他們出發點不一樣,下面說明他們的出發點和遍歷順序序列im

 

3、二叉樹三種遍歷d3

一、先序遍歷img

先序遍歷先從二叉樹的根開始,而後到左子樹,再到右子樹,,如圖2移動

 

圖2co

先序遍歷序列是ABDCEF,重點是記住第一個字母「A」是根,出發點是根「A」

 

二、中序遍歷

中序遍歷先從左子樹開始,而後到根,再到右子樹,如圖3

 

圖3

即中序遍歷序列是DBAECF,重點是記住中序遍歷的根位置,是在序列的第一個字母和最後一個字母之間,出發點是左子樹的最下邊的左邊的開始,(爲何到A以後直接跳過C呢?由於C也是E和F的根,因此按照中序遍歷規律,先到E再到C再到F)

三、後序遍歷

後序遍歷先從左子樹開始,而後到右子樹,再到根,如圖4

 

圖4

 

即後序遍歷序列式DBECFCA,重點是知道了根是最後面一個字母「A」, 出發點是左子樹的最下邊左邊。

4、道了先序遍歷和中序遍歷,或者是後序遍歷和中序遍歷,判斷出後序遍歷,或者是先序遍歷的方法

好比知道先序遍歷是ABDCEF,中序遍歷是DBAECF,那麼能夠從先序遍歷知道這個二叉樹的根是A,(若是是選擇題,能夠快速判斷出後序遍歷的序列最後面一個字母確定是A,而後選擇最後面有A的選項)

從中序遍歷看出A把DB和ECF隔開,即DB \A \ECF,所以能夠知道DB屬於左子樹,ECF屬於右子樹

 

若是是填空題就要寫出該二叉樹的圖,先寫出左子樹,從中序遍歷知道DB是右子樹,把DB當作一個總體,則從先序遍歷判斷能夠肯定B是D的根,這樣就肯定出左子樹的圖是

 

把ECF右子樹當作一個總體,則從先序遍歷能夠知道C是E和F的根,肯定出右子樹是

 

而後把兩個子樹連在根「A」的下面,再根據後序遍歷規律讀出序列就能夠了

 

相關文章
相關標籤/搜索