pat 二叉樹的遍歷 浙大的PAT

2021-08-02 21:57:16 字數 2080 閱讀 6666

給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。

輸入格式:

輸入第一行給出乙個正整數

n(n≤30)是二叉樹中結點的個數。第二行給出其後序遍歷序列。第三行給出其中序遍歷序列。數字間以空格分隔。

輸出格式:

在一行中輸出該樹的層序遍歷的序列。數字間以1個空格分隔,行首尾不得有多餘空格。

輸入樣例:

7 2 3 1 5 7 6 4

1 2 3 4 5 6 7

輸出樣例:

4 1 6 3 5 7 2

思路就是先建樹,然後遍歷找出對應序即可.

(通過三種遍歷順序的特點,對應先找出根節點,然後判斷左右子樹的結點個數有好多,且分別在那些位置.然後跟著建樹就可以了.)

具體看**注釋:

#include

#include

#include

using

namespace

std;

int mid[50],hou[50];

int n;

struct nodea[50]; //存樹!.

int build(int la,int ra,int lb,int rb)

//其實只有把第一層建立左右子樹關係弄清楚就可以了,剩下的模仿著來寫就可以了,如果非要弄清楚每一步怎麼來的,就只有把每一步都退出來看了.!

void bfs(int x)

if(a[w].r != 0)

}}int main()

再附上如果是前序和中序的話:(只需要改點地方就是了,思路不要混亂!)

#include

#include

#include

using

namespace

std;

int mid[50],qian[50];

int n;

struct nodea[50]; //存樹!.

int build(int la,int ra,int lb,int rb)

//其實只有把第一層建立左右子樹關係弄清楚就可以了,剩下的模仿著來寫就可以了,如果非要弄清楚每一步怎麼來的,就只有把每一步都退出來看了.!

void bfs(int x)

if(a[w].r != 0)

}}int main()//前序加中序.

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define clr(x) memset(x,0,sizeof(x))

#define ll long long int

#define pi acos(-1.0)

#define db double

using

namespace

std;

const

int maxn=1e6;

const

int eps=1e-6;

const

int inf=1e9;

const ll inf=1e15;

int qian[1005];

int mid[1005];

int n;

struct tree

s[1005];

int bulid(int la,int ra,int lb,int rb) //其他序類似.

int cnt; //用於控制輸出格式

void bianli(int t)

}int main()

for(int i=0;iscanf("%d",&mid[i]);

}int rt=bulid(0,n-1,0,n-1);

cnt=0;

bianli(rt);

}}

浙大PAT 樹的同構

7 3 樹的同構 25分 給定兩棵樹t1和t2。如果t1可以通過若干次左右孩子互換就變成t2,則我們稱兩棵樹是 同構 的。例如圖1給出的兩棵樹就是同構的,因為我們把其中一棵樹的結點a b g的左右孩子互換後,就得到另外一棵樹。而圖2就不是同構的。圖1 圖2現給定兩棵樹,請你判斷它們是否是同構的。輸入...

PAT 1064 完全二叉樹和平衡二叉樹

給定乙個序列,要求將其構造成完全平衡二叉樹,然後輸出其中序遍歷結果 完全二叉樹指的是任乙個有右子樹的結點必須有左子樹,從層序遍歷的角度來說,他不會在遍歷過程中遇到空節點 若用陣列存放,可知,乙個下標為root的結點,他的左子樹下標一定是2 root,右子樹下標一定是2 root 1 陣列存放節點的順...

二叉樹的遍歷 二叉樹遍歷與儲存

在資料結構中,二叉樹是非常重要的結構。例如 資料庫中經常用到b 樹結構。那麼資料庫是如何去單個查詢或者範圍查詢?首先得理解二叉樹的幾種遍歷順序 先序 中序 後序 層次遍歷。先序 根節點 左子樹 右子樹 中序 左子樹 根節點 右子樹 後序 左子樹 右子樹 根節點 按層級 class node if c...