7 23 還原二叉樹 25分

2022-06-10 13:27:06 字數 797 閱讀 8579

參考部落格鏈結

遞迴思想:

先序遍中的x節點,當它出現在中序遍歷中時,以中序遍歷中x為分界點,它的左邊部分為x的左子樹,右邊部分為x的右子樹,然後依次規則遞迴處理它的左右子樹。

核心**:

用兩個陣列分別儲存前序、中序遍歷結果。s1為前序遍歷陣列中要處理的樹的下標起點,e1為終點。同理s2為中序遍歷陣列中待處理的樹的起點,e2為終點。

1 tptr build(int s1, int e1, int s2, int

e2) 211

return

head;

12 }

完整ac**:

1 #include 2 #include 

3 #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...