給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。
輸入格式:
輸入首先給出正整數n(≤50),為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母(區別大小寫)的字串。
輸出格式:
輸出為乙個整數,即該二叉樹的高度。
輸入樣例:
9abdfghiec
fdhgibeac
輸出樣例:
5
#include#define maxsize 50
using namespace std;
typedef char elementtype;
typedef char str[maxsize];
typedef struct treenode* tree;
struct treenode
};tree rebuildtree(str s1, str s2,int l1,int r1,int l2,int r2)
tree t = new treenode;
t->data = s1[l1];
char ch = s1[l1];
int pos;
for (pos = l2;pos <=r1 &&s2[pos] != ch; pos++) {}
int num = pos - l2+1;//l2到pos有多少個數
t->left = rebuildtree(s1, s2, l1+1,l1+num-1,l2,pos-1);
t->right = rebuildtree(s1, s2, l1+num,r1,pos+1,r2);
return t;
}int maxhight(tree t)
int main()
資料結構實驗之二叉樹四 還原二叉樹
time limit 1000ms memory limit 65536k 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入1個正整數n 1 n 50 為樹中結點總數,隨後2行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區分大小...
資料結構實驗之二叉樹四 還原二叉樹
time limit 1000ms memory limit 65536k 有疑問?點這裡 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入 1個正整數 n 1 n 50 為樹中結點總數,隨後 2行先後給出先序和中序遍歷序列,均是長度為 n的不包...
資料結構實驗之二叉樹四 還原二叉樹
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入 1個正整數 n 1 n 50 為樹中結點總數,隨後 2行先後給出先序和中序遍歷序列,均是長度為 n的不包含重複英文本母 區分大小寫 的字串。輸出乙個整數,即該二叉樹的高度。9 abdfghiec ...