還原二叉樹

2021-07-16 17:17:40 字數 1230 閱讀 7874

資料結構實驗之二叉樹四:還原二叉樹

time limit: 1000ms memory limit: 65536k 有疑問?點這裡^_^

題目描述

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

輸入輸入資料有多組,每組資料第一行輸入1個正整數n(1 <= n <= 50)為樹中結點總數,隨後2行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母(區分大小寫)的字串。

輸出輸出乙個整數,即該二叉樹的高度。

示例輸入

9 abdfghiec

fdhgibeac

示例輸出

思想:用歸納法來分析遞迴.

# include # include typedef struct node

node;

int n;

node * binarytreefromorderings(char *inorder,char *preorder,int length);

int depth(node*root);

int main()

return 0;

}node*binarytreefromorderings(char *inorder,char *preorder,int length)

node * root = (node*)malloc(sizeof(node));

root->data = *preorder;

int rootindex = 0;

for( ; rootindex < length; rootindex++)//在中序序列中找到根,來分開左右子樹

}root->l = binarytreefromorderings(inorder, preorder + 1, rootindex);

root->r = binarytreefromorderings(inorder+rootindex+1,preorder+rootindex + 1,length-(rootindex + 1));

return root;

}int depth(node*root)

int left = 1;

int right = 1;

left += depth(root->l);

right += depth(root->r);

return left > right ? left : right;

}

還原二叉樹

給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入 1個正整數 n 1 n 50 為樹中結點總數,隨後 2行先後給出先序和中序遍歷序列,均是長度為 n的不包含重複英文本母 區分大小寫 的字串。輸出乙個整數,即該二叉樹的高度。9 abdfghiec ...

還原二叉樹

5 9 還原二叉樹 25分 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入首先給出正整數n le 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出為乙個整數,即該二叉樹的高度。9 abdfghiec fdh...

二叉樹還原

已經前序遍歷 與 中序遍歷 的 結果,還原出二叉樹 1.前序遍歷的第乙個節點一定是二叉樹根節點 2.中序遍歷的結果中,根節點左側的資料一定是 根節點左子樹相關資料,右側一定是根節點右子樹相關資料 private static string pre private static string in 所...