二叉樹的遍歷
二叉樹遍歷分為四種:前序、中序、後序,層序
前序遍歷:根結點 —> 左子樹 —> 右子樹
中序遍歷:左子樹—> 根結點 —> 右子樹
後序遍歷:左子樹 —> 右子樹 —> 根結點
層次遍歷:只需按層次遍歷即可
前序遍歷為為a->b->c,中序遍歷為b->a->c,後序遍歷為b->c->a,層序遍歷為a->b->c(按照每一層來遍歷與前序不同)
再舉個複雜點的例子
前序遍歷:abdegcf
中序遍歷:dbegacf
後序遍歷:dgebfca
層序遍歷:abcdefg
下面來看題
題目大意
主要思路
我們先建立二叉樹,然後再進行層序遍歷即可,具體看**
ac**
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
#define x first
#define y second
const
int n =35;
pair<
int,
int> tree[n]
;int post[n]
, in[n]
;int n;
intbuild
(int la,
int lb,
int ra,
int rb)
void
dfs(
int root)
//層序遍歷
for(
int i =
0; i < ans.
size()
; i++
)puts(""
);return;}
intmain
(void
)
**2
#include
#include
#include
#include
#include
#include
using
namespace std;
const
int n =
1010
;int in[n]
, post[n]
;int n;
unordered_map<
int,
int> l, r, pos;
intbuild
(int ia,
int ib,
int pa,
int pb)
void
bfs(
int root)
for(
int i =
0; i < ans.
size()
; i++
) cout << ans[i]
<<
' ';
}int
main
(void
)
L2 006 樹的遍歷
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。輸入格式 輸入第一行給出乙個正整數n 30 是二叉樹中結點的個數。第二行給出其後序遍歷...
L2 006 樹的遍歷
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。輸入格式 輸入第一行給出乙個正整數n 30 是二叉樹中結點的個數。第二行給出其後序遍歷...
L2 006 樹的遍歷
給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。輸入第一行給出乙個正整數n 30 是二叉樹中結點的個數。第二行給出其後序遍歷序列。第三行給出其中序遍歷序列。數字間以空格分隔。在一行中輸出該樹的層序遍歷的序列。數字間以1個空格分隔,行首尾不得有多餘空格。...