已知後序遍歷是dabec,中序遍歷是debac,它的前序遍歷的序列是什麼?

已知後序遍歷是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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章