1樓:匿名使用者
這個問題我答了幾次,搜一下就有答案了:
很簡單。這也是個遞迴過程。
知道後序,就能找到「根」,是最後一個節點。
知道「根」節點,就好辦了,從中序中把根結點找到,它左邊是左子樹的中序,
右邊是右子樹的中序,知道這兩子樹的中序,就能從後序中,把左子序、右子樹
找出來(據中序的左、右子樹的結點數)。
這樣,根節點找出來了,左子數的後序、中序就分離出來了,右子數也分離出來了,
這個問題,就化成兩個新樹的問題。同樣的辦法如此,就是遞迴成兩個子樹的新問題。
如果用程式,一樣用遞迴就做出來了。
如:後序中最後一個a就是根,從中序就能分出左右子樹:
c b及 e d h g j i f 這是中序;
就可從後序分出左右子樹:
cb 及 e h j i g f d
這個問題就變成了兩個樹的同樣問題了。
左子樹的中序c b,後序 c b
右子樹的中序e d h g j i f 後序 e h j i g f d
就可推算出一顆整樹 .
你就可用遞迴的辦法寫出程式。
已知某二叉樹的先序遍歷序列為:a,b,d,e,g,c,f,h,i,j,中序序列為:d,b,g,e,a,h,f,i,j,c
2樓:匿名使用者
先序序列是a,b,d,e,g,c,f,h,i,j
後序序列是d,g,e,b,h,j,i,f,c,a
已知一棵二叉樹的中序序列和後序序列分別為bdceafhg和decbhgfa,畫出這棵二叉樹。
3樓:匿名使用者
||中序序列 bdceafhg
後序bai序列 decbhgfa
1、bdceafhg在後序序列中最後du出現zhi的元素dao為a,bdce|專a|fhg
2、bdce在後序序列中最後出現的元素為b,|b|dce|a|fhg3、fhg在後序序列中最後出現的元素為f,|b|dce|a||屬f|hg
4、dce在後序序列中最後出現的元素為c,|b|d|c|e|a||f|hg
5、hg在後序序列中最後出現的元素為g,|b|d|c|e|a||f|h|g|
6、所有元素都已經定位,二叉樹求解完成。如上圖
4樓:匿名使用者
a/ \
b f
\ \
c g
/\ /
d e h
我的理解是這樣的版。權
設一棵二叉樹的先序序列abdfcegh,中序序列bfdagehc畫出這棵二叉樹的後序遍歷
5樓:喲喲喲來咯啦咯
1、由先來
序遍歷特徵,根節
自點必在先序序列首部,可知根節點是a;由中序遍歷特徵,根節點必在中間,可以得到左子樹子孫(bfd),右子樹子孫(gehc);
2、繼續可得子樹b(先序bdf中序bfd)3、c(先序cegh中序gehc);
4、重複上述步驟,即可唯一地確定一棵二叉樹
已知二叉樹後序遍歷序列是dabec,中序遍歷序列是debac
cedba 方法很簡單 dabec是後序遍歷 則c是根節點 將中序遍歷以c為中心分為兩邊 如此操作即可得到一棵樹 dabec debac dabe c deba c dab e c d e ba c d a b e c d e b a c 這樣就把樹給構造了出來 前序遍因序列是cedba。二又樹的遍...
已知二叉樹後序遍歷序列是dabec,中序遍歷序列是debac
選d首先看後續遍歷,最後的c是二叉樹的根節點,然後看中序遍歷,最後一個又是c,所以這個二叉樹根節點沒有右子樹。c的位置得到後,再看後續遍歷,e在c前面,所以e是c的左孩子節點,e的位置得到。然後再看中序遍歷,e前面只有一個d,所以d是e的左孩子節點,d的位置得到 剩下的b和a就在e的右子樹。然後再看...
已知一棵二叉樹的前序和中序遍歷結果,輸出後序遍歷結果。哪位同學能寫一下程序註釋,尤其是引數的意義
只有先序遍歷,其它的可以在這個基礎上改。如果有不懂的可以hi我 include include typedef struct tnode tnode tnode tree creat tnode t return t void preorder tnode t void main 如果有不懂的可以h...