L2 006 樹的遍歷

2021-10-10 03:28:47 字數 1948 閱讀 4360

二叉樹的遍歷

二叉樹遍歷分為四種:前序、中序、後序,層序

前序遍歷:根結點 —> 左子樹 —> 右子樹

中序遍歷:左子樹—> 根結點 —> 右子樹

後序遍歷:左子樹 —> 右子樹 —> 根結點

層次遍歷:只需按層次遍歷即可

前序遍歷為為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個空格分隔,行首尾不得有多餘空格。...