資料結構與演算法 7 23 還原二叉樹 25分

2021-10-08 12:03:22 字數 702 閱讀 8645

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

輸入格式:

輸入首先給出正整數n(≤50),為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母(區別大小寫)的字串。

輸出格式:

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

思路:根據前序遍歷和中序遍歷來確定左右子樹,先找到樹根即前序遍歷第一位,中序序列的樹根前面的字串是其左子樹,後面是右子樹。再將左子樹和右子樹的序列分別作為一棵樹進入遞迴,對其重複找出樹根和左右子樹的處理,每次記錄下當前左右子樹的深度,最後返回最大深度。

#include

using

namespace std;

intdfs

(string a,string b,

int num)

int x=

dfs(a.

substr(1

),b,i)+1

;//求左子樹的深度

int y=

dfs(a.

substr

(i+1

),b.

substr

(i+1

),num-i-1)

+1;//求右子樹的深度

return x>y?x:y;

}int

main()

PTA 資料結構與演算法 7 23 還原二叉樹

如有不對,不吝賜教 進入正題 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入格式 輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出格式 輸出為乙個整數,即該二叉樹的高度。輸入樣例 9a...

7 23 還原二叉樹

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

7 23 還原二叉樹 (25 分)

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