已知二叉树先序和中序遍历结果,求后序遍历结果
生活随笔
收集整理的這篇文章主要介紹了
已知二叉树先序和中序遍历结果,求后序遍历结果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以下面的例題為例進行講解:
已知一棵二叉樹的先序遍歷序列和中序遍歷序列分別是ABDCEF、BDAECF,求二叉樹及后序遍歷序列。
分析:先序遍歷序列的第一個字符為根結點。
對于中序遍歷,根結點在中序遍歷序列的中間,左邊部分是根結點的左子樹的中序遍歷序列,右邊部分是根結點的右子樹的中序遍歷序列。
先序:ABDCEF --> A BD CEF
中序:BDAECF --> BD A ECF
得出結論:A是樹根,A有左子樹和右子樹,左子樹有BD結點,右子樹有CEF結點。
先序:BD --> B D
中序:BD --> B D
得出結論:B是左子樹的根結點,B無左子樹,有右子樹(只有D結點)。
先序:CEF --> C E F
中序:ECF --> E C F
得出結論:C是右子樹的根結點,C有左子樹(只有E結點),有右子樹(只有F結點)。
還原二叉樹為: A
B C
D E F
后序遍歷序列:DBEFCA
(如果已知中序和后序序列,同樣可以推斷出先序序列,其方法是從后序序列入手,后序序列的最后一個節點是根節點,然后按照上述方法的逆方法即可以求得)
已知一棵二叉樹的先序遍歷序列和中序遍歷序列分別是ABDCEF、BDAECF,求二叉樹及后序遍歷序列。
分析:先序遍歷序列的第一個字符為根結點。
對于中序遍歷,根結點在中序遍歷序列的中間,左邊部分是根結點的左子樹的中序遍歷序列,右邊部分是根結點的右子樹的中序遍歷序列。
先序:ABDCEF --> A BD CEF
中序:BDAECF --> BD A ECF
得出結論:A是樹根,A有左子樹和右子樹,左子樹有BD結點,右子樹有CEF結點。
先序:BD --> B D
中序:BD --> B D
得出結論:B是左子樹的根結點,B無左子樹,有右子樹(只有D結點)。
先序:CEF --> C E F
中序:ECF --> E C F
得出結論:C是右子樹的根結點,C有左子樹(只有E結點),有右子樹(只有F結點)。
還原二叉樹為: A
B C
D E F
后序遍歷序列:DBEFCA
(如果已知中序和后序序列,同樣可以推斷出先序序列,其方法是從后序序列入手,后序序列的最后一個節點是根節點,然后按照上述方法的逆方法即可以求得)
轉載于:https://www.cnblogs.com/hewenwu/articles/3630795.html
總結
以上是生活随笔為你收集整理的已知二叉树先序和中序遍历结果,求后序遍历结果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下配置安装PHP环境
- 下一篇: 关于async与await的FAQ 转