利用二叉樹中序及先序遍歷確定該二叉樹的後序序列

2021-08-18 22:14:50 字數 655 閱讀 5992

已知二叉樹的中序和先序遍歷可以唯一確定後序遍歷、已知中序和後序遍歷可以唯一確定先序遍歷,但已知先序和後序,卻不一定能唯一確定中序遍歷。現要求根據輸入的中序遍歷結果及先序遍歷結果,要求輸出其後序遍歷結果。

輸入

輸入資料佔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 ...