浙大資料結構 還原二叉樹

2021-09-26 20:10:16 字數 923 閱讀 3121

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

輸入格式:

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