time limit: 1000ms
memory limit: 65536kb
submit
statistic
problem description
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。
input
輸入資料有多組,每組資料第一行輸入
1個正整數
n(1 <= n <= 50)
為樹中結點總數,隨後
2行先後給出先序和中序遍歷序列,均是長度為
n的不包含重複英文本母
(區分大小寫
)的字串。
output
輸出乙個整數,即該二叉樹的高度。
example input
9abdfghiec
fdhgibeac
example output
5
hint
author
xam求二叉樹深度,高度的三種演算法:
#include using namespace std;
struct btree
;char pre[10010];//前序序列
char mid[10010];//中序序列
int ans;
struct btree* creat(int len, char *pre, char *mid)//二叉樹的重建
root = new btree;
root -> data = pre[0];//找到根節點(前序遍歷的第一位)
for(i = 0; i < len; i++)//在中序序列中找到根節點的位置
root -> lc = creat(i, pre + 1, mid);//遞迴遍歷(左子樹的長度,左子樹在pre中開始位置的位址,左子樹在mid中開始位置的位址)
root -> rc = creat(len-i-1, pre+i+1, mid+i+1);//(右子樹的長度,右子樹在pre中開始位置的位址,右子樹在mid中開始位置的位址)
return root;
};int height(struct btree *root)//遞迴求樹的高度
else
return 0;
}int main()
return 0;
}
資料結構實驗之二叉樹四 還原二叉樹
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 ...