給一棵二叉樹的層序遍歷序列和中序遍歷序列,求這棵二叉樹的先序遍歷序列和後序遍歷序列。
每個輸入檔案中一組資料。
第一行乙個正整數n(1<=n<=30),代表二叉樹的結點個數(結點編號為1n)。接下來兩行,每行n個正整數,分別代表二叉樹的層序遍歷序列和中序遍歷序列。資料保證序列中1n的每個數出現且只出現一次。
輸出兩行,每行n個正整數,分別代表二叉樹的先序遍歷序列和後序遍歷序列。每行末尾不輸出額外的空格。
7
3 5 4 2 6 7 1
2 5 3 6 4 7 1
3 5 2 4 6 7 1
2 5 6 1 7 4 3
注意通過層序和中序重建二叉樹有點不同,具體看**:
#include
using namespace std;
typedef
long
long ll;
#define maxn 100
struct node
;char pre[maxn]
,in[maxn]
,layer[maxn]
;int n;
node*
create
(int layerl,
int layerr,
int inl,
int inr)
node* root=new node;
int i,j,flag;
for(i=
0;i<=
(layerr-layerl)
;i++)}
if(flag)
break;}
root->data=in[inl+j]
; root->lchild=
create
(layerl+i+
1,layerr,inl,inl+j-1)
; root->rchild=
create
(layerl+i+
1,layerr,inl+j+
1,inr)
;return root;
}void
preorder
(node*root)
void
postorder
(node*root)
intmain()
還原二叉樹
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入 1個正整數 n 1 n 50 為樹中結點總數,隨後 2行先後給出先序和中序遍歷序列,均是長度為 n的不包含重複英文本母 區分大小寫 的字串。輸出乙個整數,即該二叉樹的高度。9 abdfghiec ...
還原二叉樹
資料結構實驗之二叉樹四 還原二叉樹 time limit 1000ms memory limit 65536k 有疑問?點這裡 題目描述 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入輸入資料有多組,每組資料第一行輸入1個正整數n 1 n 50 為樹中結點總數,隨後2行先後...
還原二叉樹
5 9 還原二叉樹 25分 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入首先給出正整數n le 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出為乙個整數,即該二叉樹的高度。9 abdfghiec fdh...