已知二叉樹的中序和先序遍歷可以唯一確定後序遍歷、已知中序和後序遍歷可以唯一確定先序遍歷,但已知先序和後序,卻不一定能唯一確定中序遍歷。現要求根據輸入的中序遍歷結果及後序遍歷結果,要求輸出其先序遍歷結果。
輸入
第一行為中序序列 第二行為後續序列輸出
輸出為遍歷二叉樹得到的先序序列
樣例輸入
bfdaegc
fdbgeca樣例輸出
abdfceg
已知一棵二叉樹的後序序列和中序序列,構造該二叉樹的過程如下:#include1. 根據後序序列的最後乙個元素建立根結點;
2. 在中序序列中找到該元素,確定根結點的左右子樹的中序序列;
3. 在後序序列中確定左右子樹的後序序列;
4. 由左子樹的後序序列和中序序列建立左子樹;
5. 由右子樹的後序序列和中序序列建立右子樹。
#include
#include
#include
usingnamespace
std;
structbtree
;btree
* build(
char
*fina,
char
*mid,
long
n)//後序,中序,二叉樹節點個數
k = p - mid;//剩餘結點個數
b->left = build(fina, mid, k);
b->right = build(fina+k,p + 1, n - 1 - k);
return
b;//返回根節點
}void printf(btree *root)//先序遍歷
cout
<< root->st;
printf(root->left);
printf(root->right);
}int main()
利用二叉樹中序及後序遍歷確定該二叉樹的先序序列
已知二叉樹的中序和先序遍歷可以唯一確定後序遍歷 已知中序和後序遍歷可以唯一確定先序遍歷,但已知先序和後序,卻不一定能唯一確定中序遍歷。現要求根據輸入的中序遍歷結果及後序遍歷結果,要求輸出其先序遍歷結果。輸入第一行為中序序列 第二行為後續序列輸出輸出為遍歷二叉樹得到的先序序列 樣例輸入bfdaegc ...
利用二叉樹中序及後序遍歷確定該二叉樹的先序序列
利用二叉樹中序及後序遍歷確定該二叉樹的先序序列 1000 ms 10000 kb 3046 6121 已知二叉樹的中序和先序遍歷可以唯一確定後序遍歷 已知中序和後序遍歷可以唯一確定先序遍歷,但已知先序和後序,卻不一定能唯一確定中序遍歷。現要求根據輸入的中序遍歷結果及後序遍歷結果,要求輸出其先序遍歷結...
利用二叉樹中序及先序遍歷確定該二叉樹的後序序列
已知二叉樹的中序和先序遍歷可以唯一確定後序遍歷 已知中序和後序遍歷可以唯一確定先序遍歷,但已知先序和後序,卻不一定能唯一確定中序遍歷。現要求根據輸入的中序遍歷結果及先序遍歷結果,要求輸出其後序遍歷結果。輸入輸入資料佔2行,其中第一行表示中序遍歷結果,第二行為先序遍歷結果。輸出對測試資料,輸出後序遍歷...