乙個二叉樹,樹中每個節點的權值互不相同。
現在給出它的後序遍歷和中序遍歷,請你輸出它的層序遍歷。
輸入格式
第一行包含整數 nn,表示二叉樹的節點數。
第二行包含 nn 個整數,表示二叉樹的後序遍歷。
第三行包含 nn 個整數,表示二叉樹的中序遍歷。
輸出格式
輸出一行 nn 個整數,表示二叉樹的層序遍歷。
資料範圍
1≤n≤301≤n≤30
輸入樣例:
72 3 1 5 7 6 4
1 2 3 4 5 6 7
輸出樣例:
4 1 6 3 5 7 2
#include
#include
#include
#include
#include
using
namespace std;
const
int n=30+
10;//記錄中序遍歷的點
vector<
int>
inorder
(n,0);
//記錄後序遍歷的點
vector<
int>
postorder
(n,0);
//記錄中序遍歷序列每個點的相應位置 第一維表示值 第二維其在中序序列中的具體位置
unordered_map<
int,
int>pos;
//記錄原本的樹的資訊 第一維為表示樹結點的值 第二維表示樹節點指向的節點
unordered_map<
int,
int>l,r;
//返回值為當前所在節點區間的根
intbuild
(int il,
int ir,
int pl,
int pr)
void
bfs(
int root)
}int
main()
int root=
build(0
,n-1,0
,n-1);
bfs(root)
;return0;
}
PAT甲級 1020 樹的遍歷
用了乙個hash表方便後續的查詢工作。pos的作用是記錄中序遍歷中 的該值所在的陣列下標編號 int q n 模擬乙個佇列,用於輸出層序遍歷 intbuild int il,int ir,int pl,int pr void bfs int root 輸出個層序遍歷 int main int roo...
PAT甲級真題1138 後序遍歷
假設二叉樹上各結點的權值互不相同且都為正整數。給定二叉樹的前序遍歷和中序遍歷,請你輸出二叉樹的後序遍歷的第乙個數字。輸入格式 第一行包含整數 nn,表示二叉樹結點總數。第二行給出二叉樹的前序遍歷序列。第三行給出二叉樹的中序遍歷序列。輸出格式 輸出二叉樹的後序遍歷的第乙個數字。資料範圍 1 n 500...
PAT甲級真題1153
pat 准考證號由 44 部分組成 第 11 位是級別,即 t 代表頂級 a 代表甲級 b 代表乙級 第 2 42 4 位是考場編號,範圍從 101101 到 999999 第 5 105 10 位是考試日期,格式為年 月 日順次各佔 22 位 最後 11 1311 13 位是考生編號,範圍從 00...