PAT甲級真題1119 前序和後序遍歷 複雜遞迴)

2021-10-11 18:30:34 字數 1413 閱讀 9901

假設乙個二叉樹上所有結點的權值都互不相同。

我們可以通過後序遍歷和中序遍歷來確定唯一二叉樹。

也可以通過前序遍歷和中序遍歷來確定唯一二叉樹。

但是,如果只通過前序遍歷和後序遍歷,則有可能無法確定唯一二叉樹。

現在,給定一組前序遍歷和後序遍歷,請你輸出對應二叉樹的中序遍歷。

如果樹不是唯一的,則輸出任意一種可能樹的中序遍歷即可。

輸入格式

第一行包含整數 nn,表示結點數量。

第二行給出前序遍歷序列。

第三行給出後序遍歷序列。

一行中的數字都用空格隔開。

輸出格式

首先第一行,如果樹唯一,則輸出 yes,如果不唯一,則輸出 no。

然後在第二行,輸出樹的中序遍歷。

注意,如果樹不唯一,則輸出任意一種可能的情況均可。

資料範圍

1≤n≤301≤n≤30

輸入樣例1:

71 2 3 4 6 7 5

2 6 7 4 5 3 1

輸出樣例1:

yes2 1 6 4 7 3 5

輸入樣例2:

41 2 3 4

2 4 3 1

輸出樣例2:

no2 1 3 4

#include

using

namespace std;

const

int n =40;

int n;

int pre[n]

, post[n]

;int

dfs(

int l1,

int r1,

int l2,

int r2, string& in)

}return cnt;

}int

main()

#include

using

namespace std;

const

int n =40;

int n;

int pre[n]

, post[n]

;bool flag=

true

;vector<

int>v;

void

dfs(

int l1,

int r1,

int l2,

int r2)

if(pre[l1]

== post[r2]

)else

v.push_back

(post[r2]);

dfs(i,r1,l2+i-

1-l1,r2-1)

;}}int

main()

return0;

}

PAT甲級真題1153

pat 准考證號由 44 部分組成 第 11 位是級別,即 t 代表頂級 a 代表甲級 b 代表乙級 第 2 42 4 位是考場編號,範圍從 101101 到 999999 第 5 105 10 位是考試日期,格式為年 月 日順次各佔 22 位 最後 11 1311 13 位是考生編號,範圍從 00...

PAT甲級真題 1014 Wait In Line

一 題目 二 思路 題意 模擬排隊,但和實際排隊的區別在於 思路 模擬排隊,記錄消費者辦理結束所需的總時間 以分鐘為單位,最後轉換為時刻,由等待時間 辦理時間組成 若等待時間wt 540,則給予sorry 否則,根據總時間sum算出相應時刻 注意 當兩個視窗同樣長且均未滿時,要同時入隊消費者,使之隊...

PAT甲級真題1140 外觀數列

外觀數列是指具有以下特點的整數序列 d,d1,d111,d113,d11231,d112213111,其中 d 是乙個 0,9 0,9 範圍內的不等於 11 的整數。序列的第 n 1n 1 項是對第 nn 項的描述。比如第 22 項表示第 11 項有 11 個 d,所以就是 d1 第 22 項是 1...