1樓:匿名使用者
舉個例子
中序:dgbaechf //左根右後序:gdbehfca //左右根(版1)確定根
由後序得權
中序:(dgb)a(echf) 後序:(gdb)(ehfc)a(2)確定左節點
由上已知,左節點沒有有節點
(3)確定右節點
中序【(e)c(hf)】 後序:【(e)(hf)c】確定整棵樹為
---------a--------
------b-----c-----
---d-----e----f---
------g-----h-----
2樓:匿名使用者
很簡單。這也是個襲遞迴過程。
知道後序,就能找到「根」,是最後一個節點。
知道「根」節點,就好辦了,從中序中把根結點找到,它左邊是左子樹的中序,
右邊是右子樹的中序,知道這兩子樹的中序,就能從後序中,把左子序、右子樹
找出來(據中序的左、右子樹的結點數)。
這樣,根節點找出來了,左子數的後序、中序就分離出來了,右子數也分離出來了,
這個問題,就化成兩個新樹的問題。同樣的辦法如此,就是遞迴成兩個子樹的新問題。
如果用程式,一樣用遞迴就做出來了。
資料結構二叉樹怎麼遍歷啊,資料結構二叉樹已知中序遍歷,後序遍歷,求先序遍歷???
拿先序遍歷舉例 先序遍歷 是根左 右先遍歷根a,然後遍歷a的左子樹 是版左面那一群 然後遍歷a的右子權樹 為空 在a的左子樹中,先遍歷根也就是b,在遍歷b的左子樹也就是c,在遍歷b的右子樹,是右邊的一群。在b的右子樹中繼續 資料結構二叉樹已知中序遍歷,後序遍歷,求先序遍歷?通過分段來解決,找到根節點...
先序和中序建立二叉樹,然後輸出後序遍歷,用C語言的
include include include 二叉樹資料結構定義 typedef struct binodebitnode,bitree 遞迴法建立二叉樹 void createbitree bitree bt else 遞迴法先序遍歷二叉樹 void preordertree bitree ro...
資料結構樹轉換為二叉樹時,樹有分左右子樹嗎
樹也分,左邊的是第一個孩子,其他的各個孩子順次接在結點的右子樹 資料結構樹和二叉樹轉換時,樹有分左右子樹嗎?樹中一個結點只有一個孩子,這個孩子不分左右,是第一棵子樹 資料結構與演算法 二叉樹交換左右子樹演算法 傳入樹的根結點即可 exchangelr root root為樹的根節點 void exc...