前序列中序列后序列 知道先序中序遍歷序列怎么求后序遍歷序列?
知道先序中序遍歷序列怎么求后序遍歷序列?中間順序遍歷是ABCD,前順序遍歷序列是CABD前順序遍歷首先訪問根,所以C是根。在中間順序遍歷中,首先訪問左子樹,然后訪問根,最后訪問右子樹。因此,在中間順序
知道先序中序遍歷序列怎么求后序遍歷序列?
中間順序遍歷是ABCD,前順序遍歷序列是CABD
前順序遍歷首先訪問根,所以C是根。在中間順序遍歷中,首先訪問左子樹,然后訪問根,最后訪問右子樹。因此,在中間順序中,左子樹在C前面,左子樹的根在第二位。A等等,我們可以得到這樣一個二叉樹:
C
/
AD
b
在這個二叉樹之后,首先要明確前序、中序和后序的遍歷順序:前序:父節(jié)點、左子節(jié)點、右子節(jié)點;中序:左子節(jié)點、父節(jié)點、右子節(jié)點;后序:左子節(jié)點,右子節(jié)點;后序:左子節(jié)點,右子節(jié)點;后序:左子節(jié)點,右子節(jié)點;首先根據(jù)前序遍歷,確定整個二叉樹的根節(jié)點(前序的第一個節(jié)點);然后通過中間序遍歷,整個二叉樹可以根據(jù)根節(jié)點直接劃分為兩個子樹。
此時,按照預序和中間序一步一步地繪制整個二叉樹并不困難。然后我們可以編寫后序遍歷序列。例如:已知二叉樹的前序遍歷序列為bc D E F H,中序遍歷序列為bd C E a H F,寫后序遍歷序列。根據(jù)預排序,樹的根節(jié)點是a;根據(jù)中間順序和根節(jié)點,B、D、C、E在根節(jié)點的左子樹上,H、F在根節(jié)點的右子樹上;通過對每個子樹的逐步分析,樹是a/b f/C H/De二階是:decbhfa
分析過程:以下面的例子說明:已知二叉樹的一階遍歷序列和二階遍歷序列分別是abdgcefh和dgbaechf,求二叉樹和二階遍歷順序。分析:前序遍歷序列的第一個特征是根節(jié)點。對于中間順序遍歷,根節(jié)點位于中間順序遍歷序列的中間,左部分為根節(jié)點左子樹的中間順序遍歷序列,右部分為根節(jié)點右子樹的中間順序遍歷序列。一階:abdgcefh---> a BDG CEFH中間階:dgbaechf---> dgba echf得出結(jié)論:a是樹的根,a有左子樹和右子樹,左子樹有BDG節(jié)點,右子樹有CEFH節(jié)點。一階:BDG--> B DG中間階:DGB--> DG B得出結(jié)論:B是左子樹的根節(jié)點,B沒有右子樹,但有左子樹。一階:DG--> d g中間階:DG--> d g得出結(jié)論:d是B的左子樹的根,d沒有左子樹,但有右子樹。一階:CEFH--> c e FH中間階:echf--> e c HF得出結(jié)論:c是右子樹的根節(jié)點,c有左子樹(只有e節(jié)點)和右子樹(有FH節(jié)點)。一階:FH---> FH中間階:HF---> HF結(jié)論是f是C的左子樹的根,f有左子樹(只有h節(jié)點),沒有右子樹。將二叉樹還原為:a B C D E F G H后序遍歷序列:gdbehfca
首先了解概念:前序遍歷:訪問根節(jié)點的操作發(fā)生在遍歷其左右子樹之前。中間順序遍歷:訪問根節(jié)點的操作發(fā)生在遍歷其左右子樹時。后序遍歷:訪問根節(jié)點的操作發(fā)生在遍歷其左右子樹之后。例:遍歷dbcefgha后,為了遍歷edcbahfg,先查找前序遍歷(聯(lián)機示例)解決方案:遍歷dbcefgha后,先看a是總根節(jié)點,然后按順序遍歷edcbahfg找到a的位置,然后edcb在a的左分支,HFG在a的右分支。重復前兩步,查找從遍歷后的最后一個位置對應點,找到左、右分支依次遍歷,最后得到aecdbhgf,然后自己驗證……
數(shù)據(jù)結(jié)構(gòu)中已知前序序列和中序序列,怎么得出后序序列?
任意二叉樹的葉節(jié)點在前序、中序和后序遍歷序列中的相對順序不變,并給出了解釋如下:因為根據(jù)三種遍歷順序和特點:前序是左、右根,中序是左、右根,后序是左、右根,所以改變相對順序的是子樹的根,即分支節(jié)點。例如:對于一個完整的三級二叉樹,每一層都由一個自然數(shù)從左到右除以0(第一層,1;第二層,2,3;第三層,4,5,6,7),然后遍歷為1245367。對于1的根節(jié)點,245是左分支,367是右分支;對于2,4是左分支,5是右分支;對于3,245是左分支,367是右分支,6在左邊,7在右邊,所以前序遍歷是關(guān)于根的。同樣,中間的順序是左根右根,最后的順序是左根右根。前序、中序和后序都是先左后右。
知道先序中序遍歷序列怎么求后序遍歷序列?
找到根節(jié)點(通過post順序),然后將中間順序的序列分為兩段,左子樹和右子樹,然后遞歸地進行分割,可以用中間階左右子樹的節(jié)點數(shù)來確定后序序列Dbeca
1中每一段的節(jié)點數(shù)。最后一個節(jié)點必須是根節(jié)點,在本例中是a
2。中間順序?qū)母莂,所以a是根,BD是左子樹,CE是右子樹
3。左子樹中有兩個節(jié)點,右子樹中有兩個節(jié)點,因為后一順序遍歷是先左后右,所以后一順序被分成兩段,左dB,右EC
4。因此,左子樹的根被確定為B,右子樹的根被確定為C
按順序,左子樹部分BD(B是根)有右子樹部分D,左子樹部分C,右子樹部分e
具有前序ABCDE
前序的順序:根->左->右中序:左->根->右后序:左->右->根前序:A,B,D,F(xiàn),J,G,K,C,e,h,I,l,M中間序:J,F(xiàn),D,K,G,B,A,h,e,l,I,M,C,后跟J,F(xiàn),K,G,D,B,h,l,M,I、e、C、a