1.已知先序和中序求後序
先序遍歷的節點順序是:adcefghb,中序遍歷是cdfeghab,則後序遍歷的結果是 cfhgedba
解:1)根據先序遍歷結果可知a是根節點,根據中序遍歷知道a的左子樹是(cdfegh),右子樹是(b)
2)左邊中d是根節點,由中序遍歷的順序cd知道,c是d的左子樹;
e是d的右子樹,由中序遍歷的順序fe知道,f是e的左子樹;
g是e的右子樹,由中序遍歷的順序gh知道,h是g的右子樹
3)故二叉樹的圖為 a
/ \
d b
/ \
c e
/ \
f g \
h4)由圖知道後序遍歷的結果是cfhgedba
2. 已知後序和中序求先序
後序遍歷是dabec,中序遍歷是debac,則先序遍歷是cedba
解:1)根據後序遍歷結果知道c是根節點,根據中序遍歷知道c的左子樹是deba,沒有右子樹
2)左邊e是根節點,由中序遍歷de知道,d是e的左子樹
b是e的右子樹,a是b的右子樹
3)故二叉樹的圖為 c
/ \ e
/ \
d b \
a4)由圖知道先序遍歷的結果是cedba
根據兩種二叉樹遍歷方式,求二叉樹方法
如何根據已知兩種遍歷的序列,求原始的二叉樹?並不是已知道任意兩個序列都可以還原二叉樹,只有知道先序中序以及中序和後序兩種型別的遍歷順序才能還原二叉樹。只知道先序和後序是還原不了原始的二叉樹的。1 已知道先序和中序遍歷,還原二叉樹。已知道二叉樹的先序遍歷為abcdefgh,中序遍歷為bdceafhg,...
二叉樹的兩種遍歷方法
二叉樹的遍歷有兩種方式,一種是遞迴遍歷,另一種是非遞迴遍歷。前一種方法從形式上很好理解,在這裡不再過多的談論,直接上 二叉樹的建立 定義並通過層序生成一棵二叉樹 typedef struct bitreebitree bitree creatbitree bitree con max int idx...
二叉樹的三種遍歷方法
定義二叉樹 鏈式儲存 struct binarytreenode 順序儲存 struct binarytreenode 遞迴實現 先序遍歷 int preordertreewalk binarytreenode pnode 中序遍歷 int inordertreewalk binarytreenod...