已知一棵二叉樹的中序序列和後序序列分別為c,b,a,e,d

2021-03-04 04:15:35 字數 1588 閱讀 7282

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...