給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。
輸入首先給出正整數n(≤
50)
n(≤50)
n(≤50)
,為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n
nn的不包含重複英文本母(區別大小寫)的字串。
輸出為乙個整數,即該二叉樹的高度。
9
abdfghiec
fdhgibeac
5
my code:
#include
#include
#include
#define max 500
intsearch
(int
*a,int x,
int n)
return-1
;}void
buildtree
(int length,
int i,
int*pre,
int*in,
double
*max)
intmain
(void
)getchar()
;for
(int i=
0; i)double ans=1;
buildtree
(n,1
, pre, in,
&ans)
; ans =
log(ans)
/log(2
)+1;
printf
("%d\n",(
int)ans)
;return0;
}
注:嘗試用非遞迴寫但是最後發現想法不對,用遞迴寫很簡單。
參考:(
還原二叉樹
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入 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...