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

2021-08-19 06:11:02 字數 603 閱讀 9724

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

與上一題不同的是,先序序列中第乙個元素為當前根節點,在中序中找到該元素後,確定左子樹個數n和右子樹節點個數m,那麼先序序列中根節點後n個為其左子樹,接下來m個位其右子樹,然後遞迴處理

中序:

bfda

egc

先序:

abdf

ceg

#include#includeusing namespace std;

typedef struct tree

tree;

tree *creat(char *zhong,char *xian,int n)

int num_zuo=p-zhong;

int num_you=n-num_zuo-1;

b->left =creat(zhong,xian+1,num_zuo);

b->right =creat(zhong+num_zuo+1,xian+num_zuo+1,num_you);

return b;

}void print(tree *p)

}int main()

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

已知二叉樹的中序和先序遍歷可以唯一確定後序遍歷 已知中序和後序遍歷可以唯一確定先序遍歷,但已知先序和後序,卻不一定能唯一確定中序遍歷。現要求根據輸入的中序遍歷結果及先序遍歷結果,要求輸出其後序遍歷結果。輸入輸入資料佔2行,其中第一行表示中序遍歷結果,第二行為先序遍歷結果。輸出對測試資料,輸出後序遍歷...

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

中序遍歷 bfdaegc 前序遍歷 abdfceg 根據中序遍歷和前序遍歷的性質 1.前序遍歷,從左到右依次為根節點 2.中序遍歷,若我們找到乙個根節點,那麼在乙個範圍內,根節點的左邊為左子樹的節點,右邊為右子樹的節點。大體過程 根據前序遍歷的節點確定根節點,再通過根節點在中序遍歷中確定該節點的左右...

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

已知二叉樹的中序和先序遍歷可以唯一確定後序遍歷 已知中序和後序遍歷可以唯一確定先序遍歷,但已知先序和後序,卻不一定能唯一確定中序遍歷。現要求根據輸入的中序遍歷結果及後序遍歷結果,要求輸出其先序遍歷結果。輸入第一行為中序序列 第二行為後續序列輸出輸出為遍歷二叉樹得到的先序序列 樣例輸入bfdaegc ...