已知二叉樹的中序和先序遍歷可以唯一確定後序遍歷、已知中序和後序遍歷可以唯一確定先序遍歷,但已知先序和後序,卻不一定能唯一確定中序遍歷。現要求根據輸入的中序遍歷結果及先序遍歷結果,要求輸出其後序遍歷結果。
輸入
輸入資料佔2行,其中第一行表示中序遍歷結果,第二行為先序遍歷結果。輸出
對測試資料,輸出後序遍歷結果。
樣例輸入
bfdaegc樣例輸出abdfceg
fdbgeca
#include#include#includeusing namespace std;
typedef struct node
bittree;
void create(bittree *&t, char *pre, char *in, int n)
t = new bittree;
t->data = *pre;
for (p = in; pleft, pre + 1, in, k);
create(t->right, pre + k + 1, p + 1, n - k - 1);
return;
}void disp(bittree *t)
}int main()
利用二叉樹中序及先序遍歷確定該二叉樹的後序序列
利用二叉樹中序及先序遍歷確定該二叉樹的後序序列 與上一題不同的是,先序序列中第乙個元素為當前根節點,在中序中找到該元素後,確定左子樹個數n和右子樹節點個數m,那麼先序序列中根節點後n個為其左子樹,接下來m個位其右子樹,然後遞迴處理 中序 bfda egc先序 abdf ceg include inc...
利用二叉樹中序及先序遍歷確定該二叉樹的後序序列問題
中序遍歷 bfdaegc 前序遍歷 abdfceg 根據中序遍歷和前序遍歷的性質 1.前序遍歷,從左到右依次為根節點 2.中序遍歷,若我們找到乙個根節點,那麼在乙個範圍內,根節點的左邊為左子樹的節點,右邊為右子樹的節點。大體過程 根據前序遍歷的節點確定根節點,再通過根節點在中序遍歷中確定該節點的左右...
利用二叉樹中序及後序遍歷確定該二叉樹的先序序列
已知二叉樹的中序和先序遍歷可以唯一確定後序遍歷 已知中序和後序遍歷可以唯一確定先序遍歷,但已知先序和後序,卻不一定能唯一確定中序遍歷。現要求根據輸入的中序遍歷結果及後序遍歷結果,要求輸出其先序遍歷結果。輸入第一行為中序序列 第二行為後續序列輸出輸出為遍歷二叉樹得到的先序序列 樣例輸入bfdaegc ...