7 4 樹的遍歷 20分

2021-10-25 11:20:04 字數 1232 閱讀 2582

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

輸入格式:

輸入第一行給出乙個正整數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
思路:

本來我想直接遞迴幾次,按照我所想的直接給他輸出出來。

但是我本是不太夠,寫了兩三次沒寫好。

所以只好老老實實的構建一棵樹(buildtree)

構建的方式是剛開始學樹的時候直接在樊m的部落格裡學的

見:4-15 根據後序和中序遍歷輸出先序遍歷 (15分)

佇列輸出的方式是從浙大資料結構看的

b站浙大資料結構

然後再用佇列的方式進行層序遍歷。(printkuntree)

我的**:

#include

#include

#include

using

namespace std;

int n;

int post[30]

,in[30]

;typedef

struct nodenode,

*tree;

queue w;

tree buildtree

(int n,

int*post,

int*in)

void

printkuntree

(tree kun)

int flag=0;

while

(!w.

empty()

)}intmain()

for(

int i=

0;i) tree kun=

buildtree

(n,post,in)

;printkuntree

(kun)

;}

7 4 樹的遍歷 20 分

給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。輸入第一行給出乙個正整數n 30 是二叉樹中結點的個數。第二行給出其後序遍歷序列。第三行給出其中序遍歷序列。數字間以空格分隔。在一行中輸出該樹的層序遍歷的序列。數字間以1個空格分隔,行首尾不得有多餘空格。...

7 4 樹的遍歷 20 分

給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。輸入格式 輸入第一行給出乙個正整數n 30 是二叉樹中結點的個數。第二行給出其後序遍歷序列。第三行給出其中序遍歷序列。數字間以空格分隔。輸出格式 在一行中輸出該樹的層序遍歷的序列。數字間以1個空格分隔,行...

7 4 樹的遍歷 20分

給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。輸入第一行給出乙個正整數n 30 是二叉樹中結點的個數。第二行給出其後序遍歷序列。第三行給出其中序遍歷序列。數字間以空格分隔。在一行中輸出該樹的層序遍歷的序列。數字間以1個空格分隔,行首尾不得有多餘空格。...