參考部落格鏈結
遞迴思想:
先序遍中的x節點,當它出現在中序遍歷中時,以中序遍歷中x為分界點,它的左邊部分為x的左子樹,右邊部分為x的右子樹,然後依次規則遞迴處理它的左右子樹。
核心**:
用兩個陣列分別儲存前序、中序遍歷結果。s1為前序遍歷陣列中要處理的樹的下標起點,e1為終點。同理s2為中序遍歷陣列中待處理的樹的起點,e2為終點。
1 tptr build(int s1, int e1, int s2, inte2) 211
return
head;
12 }
完整ac**:
1 #include 2 #include3 #include 4
using
namespace
std;
56 typedef struct btnode*tptr;
7char r1[100], r2[100];8
9struct
btnode10;
14tptr create()
1520 tptr build(int s1, int e1, int s2, int
e2)2132}
33return
head;34}
35int
geth(tptr t)
3642
intmain()
43
7 23 還原二叉樹 (25 分)
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出為乙個整數,即該二叉樹的高度。9 abdfghiec fdhgibeac5根據前序序列和中序序...
7 23 還原二叉樹 25分
7 23 還原二叉樹 25分 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入格式 輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出格式 輸出為乙個整數,即該二叉樹的高度。輸入樣例 9a...
7 23 還原二叉樹 25分
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入格式 輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出格式 輸出為乙個整數,即該二叉樹的高度。輸入樣例 9abdfghiec fdhgib...