還原二叉樹 2018秋DS mooc期末

2021-09-02 07:52:41 字數 958 閱讀 5475

給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。

輸入首先給出正整數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...