題目描述:
輸入: 兩個字串,其長度n均小於等於26。
第一行為前序遍歷,第二行為中序遍歷。二叉樹中的結點名稱以大寫字母表示:最多26個結點
輸出: 輸入樣例可能有多組,對於每組測試樣例,輸出一行,為後序遍歷的字串。
樣例輸入:
abc
bacfdxeag
xdefag
樣例輸出:bca
xedgaf
演算法分析:
先根據先序遍歷與中序遍歷可以唯一確定一棵二叉樹,運用遞迴的演算法構造出二叉樹。然後在後序遍歷即可。
源**如下:
#include
#include
#include
using namespace std;
struct tnodetree[50]
;char str1[30]
;char str2[30]
;int loc;
tnode *
create()
tnode*
build
(int s1,
int e1,
int s2,
int e2)}if
(rootidx != s2)
// 有左子樹
ret->lchild =
build
(s1+
1,s1+
(rootidx-s2)
,s2,rootidx-1)
;if(rootidx != e2)
ret->rchild =
build
(s1+1+
(rootidx-s2)
,e1,rootidx+
1,e2)
;return ret;
}void
postorder
(tnode* root)
}int
main()
return0;
}
執行結果: 資料結構 考研筆記(二) 二叉樹的應用
計算二叉樹所有結點數 int n 0 void count btnode p 計算葉結點數 int n 0 void count 0 btnode p 利用右孩子指標連線葉結點 採用先序遍歷模板 void link ntnode p,btnode head,btnode tail else link...
資料結構 二叉樹 二 二叉樹的性質
滿二叉樹是每層的節點個數都達到了最多的二叉樹,如下圖所示 完全二叉樹是節點的編號順序與滿二叉樹一致,但最後一層的節點可能會在末尾連續得少一些,如下圖所示 從上往下數,第i層上最多有2 i 1 個節點。深度為k得二叉樹至多有2 k 1個節點 對任意一顆二叉樹,其終端節點 葉子節點 數為n0,度為2的節...
資料結構之樹 二 二叉樹 6 遍歷演算法的應用
建立二叉樹 按先序遍歷序列建立二叉樹的二叉鍊錶 例如,已知先序序列為abcdegf,建立二叉樹。因為只知道二叉樹的先序序列,所以二叉樹結構不唯一,可能有如下圖的兩種結構,那麼,怎麼區分這兩棵樹 補充空結點,如下圖,如果要構造上圖中左圖所示的二叉樹,則因按照abc de g f 空結點的字元以 代替 ...