1樓:第六位面壁者
選d首先看後續遍歷,最後的c是二叉樹的根節點,然後看中序遍歷,最後一個又是c,所以這個二叉樹根節點沒有右子樹。
c的位置得到後,再看後續遍歷,e在c前面,所以e是c的左孩子節點,e的位置得到。
然後再看中序遍歷,e前面只有一個d,所以d是e的左孩子節點,d的位置得到;剩下的b和a就在e的右子樹。
然後再看後序遍歷,dabec,d是一個葉子節點,那麼就還有一個葉子節點,那麼這個節點就一定是a,那麼b就是e的右孩子節點,最後再結合中序遍歷就可得出所表示得二叉樹。(如果這步沒看懂,可以在前面得基礎上一個一個的試,也不麻煩,就四種可能,最後只有一個是符合的)
2樓:仙戈雅
中序遍歷:debac
後序遍歷:dabec
推導如下:
1、從後序可知樹根為c,因為最後的節點是樹根。
2、從中序的規則可知樹根在中間,樹根的左邊是左孩子,右邊是右孩子。很明顯樹根c是沒有右孩子,只有左孩子deba。
中序遍歷:deba
後序遍歷:dabe
推出e是左子樹的根結點,並且存在左子樹d,右子樹ba,因為從中序遍歷可知e的左邊是d,右邊是ba
中序遍歷:ba
後序遍歷:ab
推出b是右子樹的根結點,並且存在右子樹,但沒有左子樹,因為從中序遍歷可知b只有右子樹,沒有左子樹。
還原二叉樹如下圖:
前序為:cedba
推導的方法只需記住下面的規則即可,然後逐步分割法,就像我上面那樣推導。拿到左右子樹反覆套用下面的遍歷規則,很快就可以還原一棵完整的樹。
1.先序遍歷:根、左、右
2.中序遍歷:左、根、右
3.後序遍歷: 左、右、根
3樓:軍弘秋梵
dbacde,就是這樣的,雖然我不會,但是瞎寫誰不會啊,??
4樓:
這種題,主要考慮個節點的邏輯關係,先序遍歷就是:根左右後序遍歷就是:左右根,中序遍歷就是:左根右。
抓住一個關鍵,例如本題中後序和中序第一個節點都是d,那麼可以確定:d沒有右子樹,d本身是一個節點的左子樹。中序遍歷,d後面是e,說明d父節點是e,在草稿上畫出來這個關係。
在看中序遍歷e後面是b,說明b是e的右子樹,這樣我們確定了3個節點了。再看中序的遍歷b後的是a,但我們無法確定是左還是右,先放著,繼續看後序遍歷e後面是c,通過這個條件,說明c可能是e的父節點的右子樹,也可能就是e的父節點,但是本題一共只有5個節點,所以c肯定是e的父節點。這樣,我們可以確定4個節點了,這剩下a節點。
要區分a是左還是右,我們看後序遍歷,a是在d之後,b之前,這個條件也只能說a是b子節點,但仍然不能說明左右。所以我覺得:這道題有2個解:
a在左在右,都是正確的。a是左是右,都符合後序和中序的遍歷,都為正確。所以,只畫這個圖是不完整的,應該把a分別為左右節點的圖都畫出來,作為答案,a的位置不同,雖然先序遍歷的結果都一樣,但是圖是不一樣的。
不知你看懂沒有。
5樓:黑道人
前序: 根左右
中序: 左根右
後序: 左右根
```````````````````c/e/ \
d b\a
前序: cedba
已知二叉樹後序遍歷序列是dabec,中序遍歷序列debac,它的前序遍歷的序列是
6樓:左清安賽辛
中序遍歷:debac
後序遍歷:dabec
推導如下:
1、從後序可知樹根為c,因為最後的節點是樹根。
2、從中序的規則可知樹根在中間,樹根的左邊是左孩子,右邊是右孩子。很明顯樹根c是沒有右孩子,只有左孩子deba。
中序遍歷:deba
後序遍歷:dabe
推出e是左子樹的根結點,並且存在左子樹d,右子樹ba,因為從中序遍歷可知e的左邊是d,右邊是ba
中序遍歷:ba
後序遍歷:ab
推出b是右子樹的根結點,並且存在右子樹,但沒有左子樹,因為從中序遍歷可知b只有右子樹,沒有左子樹。
還原二叉樹如下圖:
前序為:cedba
推導的方法只需記住下面的規則即可,然後逐步分割法,就像我上面那樣推導。拿到左右子樹反覆套用下面的遍歷規則,很快就可以還原一棵完整的樹。
1.先序遍歷:根、左、右
2.中序遍歷:左、根、右
3.後序遍歷:
左、右、根
7樓:解蕊慎水
選d首先看後續遍歷,最後的c是二叉樹的根節點,然後看中序遍歷,最後一個又是c,所以這個二叉樹根節點沒有右子樹。
c的位置得到後,再看後續遍歷,e在c前面,所以e是c的左孩子節點,e的位置得到。
然後再看中序遍歷,e前面只有一個d,所以d是e的左孩子節點,d的位置得到;剩下的b和a就在e的右子樹。
然後再看後序遍歷,dabec,d是一個葉子節點,那麼就還有一個葉子節點,那麼這個節點就一定是a,那麼b就是e的右孩子節點,最後再結合中序遍歷就可得出所表示得二叉樹。(如果這步沒看懂,可以在前面得基礎上一個一個的試,也不麻煩,就四種可能,最後只有一個是符合的)
8樓:匿名使用者
cedba,過程我要想一想,反正除了知道前序和後序,求中序,都是唯一解
9樓:
由後序(左子樹,右子樹,根節點)dabec知道根節點為c,再通過中序(左子樹,根節點,右子樹)知道右子樹為空
接著由dabe知道其根節點為e,所以在中序deba中左子樹為d右子樹為ba
再來,後序ab,中序ba,b為節點,a為右子樹前序遍歷序列為cedba
----c
---/
--e-/--\
d ----b
-------\
---------a
10樓:詹靖連依辰
前序:根左右
中序:左根右
後序:左右根
```````````````````c/e/\db
\a前序:cedba
已知二叉樹後序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍因序列是多少,請詳解(**)
11樓:匿名使用者
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)這樣就把樹給構造了出來
12樓:李希欠
前序遍因序列是cedba。
二又樹的遍歷有3種:前序、中序和後序。
①前序首先遍歷訪問根結點,然後按左右順序遍歷子結點。
②中序遍歷首先訪問左子樹,然後訪問根結點,最後遍歷右子樹。
③後序遍歷首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。本題根據後序和中序遍歷的結果可以得出二叉樹的結構,然後再對其進行前序遍歷。
二叉樹在電腦科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree)。二叉樹常被用於實現二叉查詢樹和二叉堆。
二叉樹的每個結點至多隻有二棵子樹(不存在度大於2的結點),二叉樹的子樹有左右之分,次序不能顛倒。二叉樹的第i層至多有2^個結點。
深度為k的二叉樹至多有2^k-1個結點;對任何一棵二叉樹t,如果其終端結點數為n_0,度為2的結點數為n_2,則n_0=n_2+1。
一棵深度為k,且有2^k-1個節點稱之為滿二叉樹;深度為k,有n個節點的二叉樹,當且僅當其每一個節點都與深度為k的滿二叉樹中,序號為1至n的節點對應時,稱之為完全二叉樹。
13樓:匿名使用者
這種簡單的遞迴演算法不知被問了多少次了。搜一下就有方法,很簡單
已知二叉樹後序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是? a acbed
14樓:萢萢
選d。由後序遍歷可知c是根結點,符合條件的只有d。
已知二叉樹後序遍歷序列是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。二又樹的遍...
某二叉樹的中序遍歷為CBADE,後序遍歷序列為CBEDA,則前序遍歷序列為
某二叉樹的中序遍歷為cbade,後序遍歷序列為cbeda,則前序遍歷序列為abcde。中序遍歷 訪問根節點在左右子樹之間,即左 根 右。後序遍歷 訪問根結點在源左右子樹之後,即左 右 根。由定義可以知道 後序遍歷中最後一個就是樹根結點,即a結點。中序遍歷的根節點前面的節點均為左子樹的節點,所以左子樹...
已知一棵二叉樹的中序序列和後序序列分別為c,b,a,e,d
這個問題我答了幾次,搜一下就有答案了 很簡單。這也是個遞迴過程。知道後序,就能找到 根 是最後一個節點。知道 根 節點,就好辦了,從中序中把根結點找到,它左邊是左子樹的中序,右邊是右子樹的中序,知道這兩子樹的中序,就能從後序中,把左子序 右子樹 找出來 據中序的左 右子樹的結點數 這樣,根節點找出來...