1. 程式人生 > >二叉樹的三種遍歷練習題

二叉樹的三種遍歷練習題

一 什麼是二叉樹

1)定義:有且僅有一個根結點,除根節點外,每個結點只有一個父結點,最多含有兩個子節點,子節點有左右之分。

二 二叉樹的遍歷

三種方式

(1)前序遍歷:根節點 ,左子樹,右子樹

(2)中序遍歷:左子樹,根節點,右子樹

(3)後序遍歷:左子樹,右子樹,根節點


上圖中:

前序:根A,A的左子樹B,B的左子樹沒有,看右子樹,為D,所以A-B-D。再來看A的右子樹,根C,左子樹E,E的左子樹F,E的右子樹G,G的左子樹為H,沒有了結束。連起來為C-E-F-G-H,最後結果為ABDCEFGH

中序:先訪問根的左子樹,B沒有左子樹,其有右子樹D,D無左子樹,下面訪問樹的根A,連起來是BDA。

再訪問根的右子樹,C的左子樹的左子樹是F,F的根E,E的右子樹有左子樹是H,再從H出發找到G,到此C的左子樹結束,找到根C,無右子樹,結束。連起來是FEHGC, 中序結果連起來是BDAFEHGC

後序:B無左子樹,有右子樹D,再到根B。再看右子樹,最下面的左子樹是F,其根的右子樹的左子樹是H,再到H的根G,再到G的根E,E的根C無右子樹了,直接到C,這時再和B找它們其有的根A,所以連起來是DBFHGECA

例2:有下列二叉樹,對此二叉樹前序遍歷的結果為( )。



A)ACBEDGFH B)ABDGCEHF

C)HGFEDCBA D)ABCDEFGH

解析:先根A,左子樹先根B,B無左子樹,其右子樹,先根D,在左子樹G,連起來是ABDG。 A的右子樹,先根C,C左子樹E,E無左子樹,有右子樹為H,C的右子樹只有F,連起來是CEHF。整個連起來是B答案 ABDGCEHF。



例3:已知二叉樹後序遍歷是DABEC,中序遍歷序列是DEBAC,它的前序遍歷序列是( ) 。


A)CEDBA B)ACBED C)DECAB D)DEABC

解析:由後序遍歷可知,C為根結點,由中序遍歷可知,C左邊的是左子樹含DEBA,C右邊無結點,知根結點無右子樹。先序遍歷先訪問根C,答案中只有A以C開頭,為正確答案。



例4: 如下二叉樹中序遍歷的結果是(  )。



A). ACBDFEG B). ACBDFGE C).ABDCGEF D).FCADBEG

解析:首先中序遍歷根F會把左右子樹分開,F不會在答案的開頭和結尾,排除C和D。在看F的右子樹,G是E的右子樹,中序遍歷先訪問E,再訪問G,E在G前面,排除B。答案為A。



例5:如下二叉樹後序遍歷的結果是(  )。



A) ABCDEF B) DBEAFC C)ABDECF D)DEBFCA

解析:後序的最後一個必須是二叉樹的根,快速判斷答案為D。