先(根)序遍歷(根左右):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,沒有右子樹。