如有不對,不吝賜教
進入正題:
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。
輸入格式:
輸入首先給出正整數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...