回覆列表
-
1 # 使用者52510796211
-
2 # 答題小天才哈哈
從前序的第一個結點開始確定根,中序決定左子樹和右子樹,如第一個結點A,根據中序可知,A的左子樹是DBE,右子樹是FC,再從前序中確定第二個根B,根據中序可知B的左子樹是D,右子樹為E,依次重複執行,直到遍歷完所有結點。
所以後序遍歷DEBFCA
從前序的第一個結點開始確定根,中序決定左子樹和右子樹,如第一個結點A,根據中序可知,A的左子樹是DBE,右子樹是FC,再從前序中確定第二個根B,根據中序可知B的左子樹是D,右子樹為E,依次重複執行,直到遍歷完所有結點。
所以後序遍歷DEBFCA
分析過程:以下面的例題為例進行講解:已知一棵二叉樹的先序遍歷序列和中序遍歷序列分別是abdgcefh、dgbaechf,求二叉樹及後序遍歷序列。分析:先序遍歷序列的第一個字元為根結點。對於中序遍歷,根結點在中序遍歷序列的中間,左邊部分是根結點的左子樹的中序遍歷序列,右邊部分是根結點的右子樹的中序遍歷序列。先序:abdgcefh-->abdgcefh中序:dgbaechf-->dgbaechf得出結論:a是樹根,a有左子樹和右子樹,左子樹有bdg結點,右子樹有cefh結點。先序:bdg-->bdg中序:dgb-->dgb得出結論:b是左子樹的根結點,b無右子樹,有左子樹。先序:dg-->dg中序:dg-->dg得出結論:d是b的左子樹的根結點,d無左子樹,有右子樹。先序:cefh-->cefh中序:echf-->echf得出結論:c是右子樹的根結點,c有左子樹(只有e結點),有右子樹(有fh結點)。先序:fh-->fh中序:hf-->hf得出結論:f是c的左子樹的根結點,f有左子樹(只有h結點),無右子樹。還原二叉樹為:abcdefgh後序遍歷序列:gdbehfca