二叉樹的遍歷有三種方式,如下:
(1)前序遍歷(DLR),首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。簡(jiǎn)記根-左-右。
(2)中序遍歷(LDR),首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。簡(jiǎn)記左-根-右。
(3)后序遍歷(LRD),首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。簡(jiǎn)記左-右-根。
例1:如上圖所示的二叉樹,若按前序遍歷,則其輸出序列為 。若按中序遍歷,則其輸出序列為 。若按后序遍歷,則其輸出序列為 。
前序:根A,A的左子樹B,B的左子樹沒有,看右子樹,為D,所以A-B-D。再來看A的右子樹,根C,左子樹E,E的左子樹F,E的右子樹G,G的左子樹為H,沒有了結(jié)束。連起來為C-E-F-G-H,最后結(jié)果為ABDCEFGH
中序:先訪問根的左子樹,B沒有左子樹,其有右子樹D,D無左子樹,下面訪問樹的根A,連起來是BDA。
再訪問根的右子樹,C的左子樹的左子樹是F,F(xiàn)的根E,E的右子樹有左子樹是H,再從H出發(fā)找到G,到此C的左子樹結(jié)束,找到根C,無右子樹,結(jié)束。連起來是FEHGC, 中序結(jié)果連起來是BDAFEHGC
后序:B無左子樹,有右子樹D,再到根B。再看右子樹,最下面的左子樹是F,其根的右子樹的左子樹是H,再到H的根G,再到G的根E,E的根C無右子樹了,直接到C,這時(shí)再和B找它們其有的根A,所以連起來是DBFHGECA
例2:有下列二叉樹,對(duì)此二叉樹前序遍歷的結(jié)果為( )。

A)ACBEDGFH B)ABDGCEHF
C)HGFEDCBA D)ABCDEFGH
解析:先根A,左子樹先根B,B無左子樹,其右子樹,先根D,在左子樹G,連起來是ABDG。 A的右子樹,先根C,C左子樹E,E無左子樹,有右子樹為H,C的右子樹只有F,連起來是CEHF。整個(gè)連起來是B答案 ABDGCEHF。
例3:已知二叉樹后序遍歷是DABEC,中序遍歷序列是DEBAC,它的前序遍歷序列是( ) 。
A)CEDBA B)ACBED C)DECAB D)DEABC
解析:由后序遍歷可知,C為根結(jié)點(diǎn),由中序遍歷可知,C左邊的是左子樹含DEBA,C右邊無結(jié)點(diǎn),知根結(jié)點(diǎn)無右子樹。先序遍歷先訪問根C,答案中只有A以C開頭,為正確答案。
例4: 如下二叉樹中序遍歷的結(jié)果是( )。
A). ACBDFEG B). ACBDFGE C).ABDCGEF D).FCADBEG
解析:首先中序遍歷根F會(huì)把左右子樹分開,F(xiàn)不會(huì)在答案的開頭和結(jié)尾,排除C和D。在看F的右子樹,G是E的右子樹,中序遍歷先訪問E,再訪問G,E在G前面,排除B。答案為A。
例5:如下二叉樹后序遍歷的結(jié)果是( )。

A) ABCDEF B) DBEAFC C)ABDECF D)DEBFCA
解析:后序的最后一個(gè)必須是二叉樹的根,快速判斷答案為D。