已知後序遍歷是dabec,中序遍歷是debac,它的前序遍歷的序列是什麼?
1.由後序遍歷,得知C肯定爲根結點
2.由中序遍歷可知,c的左邊是左子樹(c右邊是右子樹)
3.先從後序入樹 dabec ,由遍歷規則(先訪問根節點,在訪問左子樹和右子樹)得知,e 爲第二層節點 ,於是有
c
e
4.結合中序遍歷debac觀察節點,由於 e爲第二層節點,又d先於e被訪問,所以d 是e的左孩子,ab未知
c
e
d a b
5.接下來看e的子孫節點a,b的部分
後序遍歷爲:ab
中序遍歷爲: ba(b先被訪問有可能是b是左孩子,或者是根節點)即:
eg 1. b
a
eg2.
a
b
再結合節點後序遍歷,不難分析出a,b的位置是 eg2
於是最終的樹爲
c
e
d b
a
先序遍歷: cedba
來源: www.21lxj.com