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


一、知道二叉樹的先序/后序遍歷和中序遍歷(中序必須要知道,不然無法判斷),要快速判斷后序/先序遍歷,首先要了解二叉樹的遍歷規律

 

二、二叉樹遍歷規律

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

 

圖1

 

2、

3、  不同的是他們出發點不同,下面說明他們的出發點和遍歷順序序列

 

三、二叉樹三種遍歷

1、先序遍歷

先序遍歷先從二叉樹的根開始,然后到左子樹,再到右子樹,,如圖2

 

圖2

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

 

2、中序遍歷

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

 

圖3

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

3、后序遍歷

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

 

圖4

 

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

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

比如知道先序遍歷是ABDCEF,中序遍歷是DBAECF,那么可以從先序遍歷知道這個二叉樹的根是A,(如果是選擇題,可以快速判斷出后序遍歷的序列最后面一個字母肯定是A,然后選擇最后面有A的選項)

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

 

如果是填空題就要寫出該二叉樹的圖,先寫出左子樹,從中序遍歷知道DB是右子樹,把DB看成一個整體,則從先序遍歷判斷可以確定B是D的根,這樣就確定出左子樹的圖是

 

把ECF右子樹看成一個整體,則從先序遍歷可以知道C是E和F的根,確定出右子樹是

 

然后把兩個子樹連在根“A”的下面,再根據后序遍歷規律讀出序列就可以了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM