已知二叉樹後序遍歷序列是dabec,中序遍歷序列是debac

2021-07-15 02:18:57 字數 4106 閱讀 6751

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

這個問題我答了幾次,搜一下就有答案了 很簡單。這也是個遞迴過程。知道後序,就能找到 根 是最後一個節點。知道 根 節點,就好辦了,從中序中把根結點找到,它左邊是左子樹的中序,右邊是右子樹的中序,知道這兩子樹的中序,就能從後序中,把左子序 右子樹 找出來 據中序的左 右子樹的結點數 這樣,根節點找出來...