一、知道二叉樹的先序/后序遍歷和中序遍歷(中序必須要知道,不然無法判斷),要快速判斷后序/先序遍歷,首先要了解二叉樹的遍歷規律
二、二叉樹遍歷規律
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”的下面,再根據后序遍歷規律讀出序列就可以了