給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。
輸入格式:
輸入首先給出正整數n(≤50),為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母(區別大小寫)的字串。
輸出格式:
輸出為乙個整數,即該二叉樹的高度。
輸入樣例:
9abdfghiec
fdhgibeac
輸出樣例:
5
#include
#define pb push_back
#define mem(a,b) memset(a,b,sizeof a)
using
namespace std;
typedef
long
long ll;
const
int inf=
0x3f3f3f3f
;char pre[55]
,in[55]
;int n;
typedef
struct node
node,
*tree;
tree create
(char
*in,
char
*pre,
int len));
int i=0;
while
(in[i]
!=pre[0]
) i++
; t-
>l=
create
(in,pre+
1,i)
; t-
>r=
create
(in+i+
1,pre+i+
1,len-i-1)
;return t;
}int
height
(tree t)
return th;
}int
main()
還原二叉樹(25 分)
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出為乙個整數,即該二叉樹的高度。9 abdfghiec fdhgibeac5 輸入 前序遍歷,中...
還原二叉樹(25 分)
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出為乙個整數,即該二叉樹的高度。9 abdfghiec fdhgibeac5 include i...
還原二叉樹 25 分
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出為乙個整數,即該二叉樹的高度。9abdfghiec fdhgibeac include inc...