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

2021-09-24 04:43:24 字數 1076 閱讀 9593

如有不對,不吝賜教

進入正題:

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

輸入格式:

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

輸出格式:

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

輸入樣例:

9abdfghiec

fdhgibeac

輸出樣例:

5做著道題目的正常方法就是用這兩個遍歷的序列構造一棵樹,我們可以通過先序節點的到每兩棵子樹的根節點,然後在遞迴呼叫對子樹進行處理。

但是我們也可以不用構造出一棵樹,反正求的是樹的高度,沒找到一次根節點就把樹的高度增加以,那麼樹的高度就是子樹中更高的那棵的高度+1,這樣就很好辦了。

給**:

#include

#define max

(a,b)

((a)

>

(b)?

(a):

(b))

char preorder[51]

;//先序遍歷

char inorder[51]

;//中序遍歷

short

getheight

(char father,

short inleft,

short inright,

short preleft)

;int

main

(void

)short

getheight

(char father,

short inleft,

short inright,

short preleft)

測試結果:

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

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

PTA 資料結構與演算法 堆疊

1.棧底元素是不能刪除的元素。1分 tf 2.對順序棧進行進棧 出棧操作不涉及元素的前 後移動問題。1分 tf 3.若用data 1 m 表示順序棧的儲存空間,則對棧的進棧 出棧操作最多只能進行m次。1分 tf 4.通過對堆疊s操作 push s,1 push s,2 pop s push s,3 ...

PTA 資料結構與演算法 佇列

1.在用陣列表示的迴圈佇列中,front值一定小於等於rear值。1分 tf 2.迴圈佇列執行出隊操作時會引起大量元素的移動。1分 tf 3.棧是插入和刪除只能在一端進行的線性表 佇列是插入在一端進行,刪除在另一端進行的線性表。1分 tf 4.n個元素進隊的順序和出隊的順序總是一致的。1分 tf 1...