某二叉樹的前序遍歷是abdgcefh,中序遍歷是dgbaechf,則起後序遍歷的結點訪問順序是什麼,為什麼

2021-06-13 06:36:59 字數 2864 閱讀 1322

1樓:匿名使用者

不太記得了,應該是

g d b a e h f c

二叉樹的3中遍歷,知道任何其中2種,就可以建立這個二叉樹。

自然就可以得到第3中的遍歷了。

具體方法可以翻書或網上查詢相關資料。

2樓:匿名使用者

前序是"根左右",由此可判斷a為根節點,再看中序:由於a為根,所以在中序中根據"左根右"原則a前的即為a的左子樹(dgb),右邊的即為右子樹(echf).再看左子樹:

由前序知b為左子樹的根節點,結合中序中dgb知,下級根節點只能為d,而g為最終d的右子樹,即左面的情況為(自下而上)g(右節)-d(根)-b(根)-a(根),這是用排除法得出的.再看右子樹:由相同的方法(根左右)知,右子樹的根為c,前序中為ce,中序為ec很明顯知e為c的左子樹而fh為c的右子樹,同樣根據fh與hf在前序和中序的情況可知,f為根而h為左子樹,即右子樹的情況為(自下而上):

h(左)-f(右根)-e(左根)-c(根)-a(總根).你要在題目中總結經驗和方法,找到這個規律就很簡單了.後序的正確順序應該是(左右根):

gdbhefca明白?行的話幫分.謝謝!!!

3樓:匿名使用者

gdbehfca

-----a

----/-\

---b---c

--/---/-\

-d---e---f

--\-----/

---g---h

若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其後續遍歷的結點訪問順序是?

4樓:匿名使用者

嗯,你第一步的劃分是正確的

a為根,dgb為左子樹,echf為右子樹

接下來看左子樹的前序版遍歷為bdg

b首先被訪問

可以權知道b為左子樹的根,與a相連

再看左子樹的中序遍歷dgb

d和g都在b之前就被訪問

所以b和g應該在b的左子樹上

形狀如下

---a

--/--b

-/dg

而dg的確定再根據前序遍歷

d先被訪問

則d為根

再看中序遍歷也是d先被訪問

可以確定g為d的右子樹

左邊就可以確定出來了

如果上面看懂了

右邊就很簡單,一樣的道理

前序遍歷cefh

確定c為右子樹的根

再看中序遍歷echf

e為c的左子樹,hf為c的右子樹

hf的確定在看前序遍歷f先被訪問

f為根中序遍歷h先被訪問

h為f的左子樹

整棵樹就出來了

如下圖在做後序就是小菜一碟了

5樓:

依據前序抄遍歷的順序,得出a為根節bai點通過中序遍歷的順du

序確定a的左右子樹zhi

分別為bdg和cefh

再依次通過前序遍歷的順序和中

dao序遍歷的順序確定各子樹的分支,得原二叉樹為a/ \

b c

/ / \

d e f

\ /

g h

則其後序遍歷為gdbehfca選a

6樓:匿名使用者

給你個程式吧

知道 前序遍歷 和 中序遍歷 求 後續遍歷。

#include

using namespace std;

char a[20],b[20];

void work(char a,char b,int l)關鍵就是找到每專顆子樹的根節點屬,遞迴。

7樓:匿名使用者

做這種bai題目最好畫出圖

du形。

其實這題你把圖zhi畫出來就很容dao易懂了,這是根據前序,內中序遍容歷得出的圖。

a/ \

b c

/ / \

d e f/g

某二叉樹的前序遍歷節點訪問順序是abdgcefh 中序遍歷節點訪問順序是dgbaechf 則其後序遍歷的節點訪問順序

8樓:oo灰原oo哀

依據前序遍

bai歷的順序,得du

出a為根節點

通過中序zhi遍歷的順序確定a的左右子dao樹分別版為bdg和cefh

再依次通過前權序遍歷的順序和中序遍歷的順序確定各子樹的分支,得原二叉樹為

a/ \

b c

/ / \

d e f

\ /

g h

則其後序遍歷為gdbehfca選a

某二叉樹前序遍歷結點訪問順序abdgcefh,終序遍歷的順序為dgbaechf,則後序遍歷的訪問順序是什麼啊?

9樓:匿名使用者

----------- a------------ b-------c----------- d----- e----f

----------- ----g h----

後續遍歷: gdbehfca

思路:根據前

序確定a是根,根據中序確定dgb是左節點,echf是右節點。

根據前序確定左邊第二級b是根,根據中序確定dg是左節點;右邊同理。

根據前序確定左邊第**d是根,根據中序確定g是右節點;其他同理。

一顆二叉樹的前序遍歷序列是ABCDEFG後序遍歷序列是CB

首先前序遍歷順序是 根節點 左子樹 右子樹而後序遍歷順序是 左子樹 右子樹 根節點首先知a是根節點 又由後序遍歷知d必然是右子樹的根節點d前面的abc中a是根節點 剩下的bc倆個節點必然是左子樹的答案是2個 如果一顆二叉樹的先序遍歷序列是abdfceg,中序遍歷序列是dfbaceg,則它的後序遍歷序...

二叉樹的問題,二叉樹問題

二叉樹就是僅有兩個分支,而且左右分支位置不能交換的樹型結構。a b c d e 這就是一個簡單的二叉樹。所謂中序遍歷就是指訪問二叉樹時先訪問左孩子,接著訪問它的雙親,最後訪問右孩子的一種遍歷方法。有一個資料結構的學習網頁,不錯。還有動畫配合理解。二叉樹問題 50 二叉樹問題 先解釋為什麼d對,因為二...

寫出先序遍歷的二叉樹的遍歷演算法,怎樣實現二叉樹的前序遍歷的非遞迴演算法

遞迴方式 include typedef struct nodebitnode,bittree void createtree bittree bt void visit char ch void preorder bittree bt void main include include defin...