通過先序和中序,或者中序和後序的結果,可以還原一顆二叉樹。中序為必要的,先序和後序有乙個即可。
步驟為:
(1)確定根結點:先序第乙個,或後序最後乙個為根結點;
(2)確定左右子樹:在中序的根節點左邊的為左子樹序列,右邊的為右子樹序列;
(3)確定左右子樹中的孩子結點:其孩子為先序中先出現的,或後序中後出現的;
迴圈(2)(3)即可完成。
例:
先序為:1,2,4,5,10,11,3,6,7
中序為:4,2,10,5,11,1,6,3,7
圖示還原過程:
第一步,先序的第乙個,即1為根節點,在中序的1左邊為左子樹,右邊為右子樹,且左子樹中的2在先序中先出現,為1的左孩子,右子樹中的3在先序中先出現,為1的右孩子。
第二步,對於2,4為其左子樹(即左孩子),10、5、11為其右子樹,其中5在先序中先出現,為2的右孩子。
第三步,對於5,10為其左子樹(左孩子),11為其右子樹(右孩子)
還原二叉樹
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入 1個正整數 n 1 n 50 為樹中結點總數,隨後 2行先後給出先序和中序遍歷序列,均是長度為 n的不包含重複英文本母 區分大小寫 的字串。輸出乙個整數,即該二叉樹的高度。9 abdfghiec ...
還原二叉樹
資料結構實驗之二叉樹四 還原二叉樹 time limit 1000ms memory limit 65536k 有疑問?點這裡 題目描述 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入輸入資料有多組,每組資料第一行輸入1個正整數n 1 n 50 為樹中結點總數,隨後2行先後...
還原二叉樹
5 9 還原二叉樹 25分 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入首先給出正整數n le 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出為乙個整數,即該二叉樹的高度。9 abdfghiec fdh...