給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。
輸入格式:
輸入第一行給出乙個正整數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個空格分隔,行首尾不得有多餘空格。...