二叉樹前序、中序、後序遍歷相互求法(實例)


1.已知先序和中序求後序
     先序遍歷的節點順序是:ADCEFGHB,中序遍歷是CDFEGHAB,則後序遍歷的結果是  CFHGEDBA
解:1)根據先序遍歷結果可知A是根節點,根據中序遍歷知道A的左子樹是(CDFEGH),右子樹是(B)
      2)左邊中D是根節點,由中序遍歷的順序CD知道,C是D的左子樹;
           E是D的右子樹,由中序遍歷的順序FE知道,F是E的左子樹;
           G是E的右子樹,由中序遍歷的順序GH知道,H是G的右子樹
      3)故二叉樹的圖爲 
                                         A
                                       /    \
                                     D       B    
                                    /   \ 
                                  C     E
                                       /   \
                                      F    G
                                              \
                                               H
     4)由圖知道後序遍歷的結果是CFHGEDBA
2. 已知後序和中序求先序
       後序遍歷是DABEC,中序遍歷是DEBAC,則先序遍歷是CEDBA
解:1)根據後序遍歷結果知道C是根節點,根據中序遍歷知道C的左子樹是DEBA,沒有右子樹
       2)左邊E是根節點,由中序遍歷DE知道,D是E的左子樹
            B是E的右子樹,A是B的右子樹
       3)故二叉樹的圖爲 
                                       C
                                     /    \
                                   E
                                 /   \
                                D    B
                                        \
                                         A
      4)由圖知道先序遍歷的結果是CEDBA

發佈了2 篇原創文章 · 獲贊 20 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章