二叉樹的先序、中序、后序遍歷


先(根)序遍歷(根左右):A B D H E I C F J K G
中(根)序遍歷(左根右):D H B E I A J F K C G
后(根)序遍歷(左右根):H D I E B J K F G C A

例子1:已知二叉樹的后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是(cedba)
(1)中序遍歷:debac
后序遍歷:dabec
后序遍歷序列的最后一個結點是根結點,所以可知c為根結點。
中序遍歷序列的根結點在中間,其左邊是左子樹,右邊是右子樹。所以從中序遍歷序列中可看出,根結點c只有左子樹,沒有右子樹。

(2)中序遍歷:deba
后序遍歷:dabe
后序遍歷序列的最后一個結點是根結點,所以可知e為c的左子樹的根結點。
中序遍歷序列的根結點在中間,其左邊是左子樹,右邊是右子樹。所以從中序遍歷序列中可看出,根結點e的左子結點是d,右子樹是ba。

(3)中序遍歷:ba
后序遍歷:ab
由后序遍歷序列可知b為e的右子樹的根結點。由中序遍歷序列中可看出,a為根結點b的右子結點。

例子2:已知二叉樹的前序遍歷序列是abdgcefh,中序遍歷序列是dgbaechf,它的后序遍歷序列是(gdbehfca)。
(1)先序遍歷:abdgcefh
中序遍歷:dgbaechf
先序遍歷序列的第一個結點是根結點,所以可知a為根結點。
中序遍歷序列的根結點在中間,其左邊是左子樹,右邊是右子樹。所以從中序遍歷序列中可看出,根結點a的左子樹是dgb,右子樹是echf。

a的左子樹:
(2)先序遍歷:bdg
中序遍歷:dgb
先序遍歷序列的第一個結點是根結點,所以可知b為a的左子樹的根結點。
中序遍歷序列的根結點在中間,其左邊是左子樹,右邊是右子樹。所以從中序遍歷序列中可看出,根結點b的左子樹是dg,沒有右子樹。

b的左子樹:
(3)先序遍歷:dg
中序遍歷:dg
由先序遍歷序列可知d為b的左子樹的根結點。
中序遍歷序列的根結點在中間,其左邊是左子樹,右邊是右子樹。所以從中序遍歷序列中可看出,根結點d的右子結點是g。

a的右子樹:
(4)先序遍歷:cefh
中序遍歷:echf
由先序遍歷序列可知c為a的右子樹的根結點。
從中序遍歷序列中可看出,根結點c的左子結點是e,右子樹是hf。

c的右子樹:
(5)先序遍歷:fh
中序遍歷:hf
由先序遍歷序列可知f為c的右子樹的根結點。
從中序遍歷序列中可看出,根結點f的左子結點是h,沒有右子樹。

https://blog.csdn.net/qq_34840129/article/details/80619761


免責聲明!

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



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