5-9 還原二叉樹 (25分)
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。
輸入首先給出正整數n(\le
≤50),為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母(區別大小寫)的字串。
輸出為乙個整數,即該二叉樹的高度。
9
abdfghiec
fdhgibeac
5
//遞迴實現
#include #include #include #include using namespace std;
//char tree[100000];
int max=0;
void deal(char preorder,char inorder,int prestart,int preend,int instart,int inend,int treenow)
if(inorder[inend]==preorder[prestart])//處理右子樹 判斷是為了處理右子樹為空情況
return;
nextinend=inend;
for(nextinstart=instart;nextinstart<=inend&&inorder[nextinstart]!=preorder[prestart];nextinstart++);
nextinstart++;
nextprestart=prestart+count+1;
nextpreend=preend;
deal(preorder,inorder,nextprestart,nextpreend,nextinstart,nextinend,treenow*2+1);
return;
}int main()
coutstruct treenode
; treenode*findtree(char*in,char*pre,int length)
int length(treenode *node)
int main()
for(int i=0;i>c;
in[i]=c;
} treenode* node=new treenode;
node=findtree(in,pre,n);
cout<
還原二叉樹
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入 1個正整數 n 1 n 50 為樹中結點總數,隨後 2行先後給出先序和中序遍歷序列,均是長度為 n的不包含重複英文本母 區分大小寫 的字串。輸出乙個整數,即該二叉樹的高度。9 abdfghiec ...
還原二叉樹
資料結構實驗之二叉樹四 還原二叉樹 time limit 1000ms memory limit 65536k 有疑問?點這裡 題目描述 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入輸入資料有多組,每組資料第一行輸入1個正整數n 1 n 50 為樹中結點總數,隨後2行先後...
二叉樹還原
已經前序遍歷 與 中序遍歷 的 結果,還原出二叉樹 1.前序遍歷的第乙個節點一定是二叉樹根節點 2.中序遍歷的結果中,根節點左側的資料一定是 根節點左子樹相關資料,右側一定是根節點右子樹相關資料 private static string pre private static string in 所...