7 2 樹的遍歷 30分 HBU DS 月測

2021-10-12 07:23:06 字數 852 閱讀 9198

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

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

#include

using

namespace std;

typedef

struct node *tree;

struct node

;int n;

int post[31]

,in[31]

;void

rebintree

(int a,

int b,

int i,

int j,tree &t)

;void

ceng

(tree t)

;void

inprint

(tree t)

intmain()

void

rebintree

(int a,

int b,

int i,

int j,tree &t)

void

ceng

(tree t)

}

7 2 二叉樹的遍歷 10分

根據輸入構造二叉樹,輸出該二叉樹的先序序列。二叉樹共有n個節點,節點編號是1到n。約定1號節點是根節點。第一行輸入整數n。接下來有n行,依次給出1到n節點的左孩子和右孩子。對於這n行中的每一行,有兩個整數。第i i 1,2,n 行中,第乙個整數指出左孩子的編號,第二個整數指出右孩子的編號。如果整數值...

7 2 是否完全二叉搜尋樹 (30 分)

將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。輸入第一行給出乙個不超過20的正整數n 第二行給出n個互不相同的正整數,其間以空格分隔。將輸入的n個正整數順序插入乙個初始為空的二叉搜尋樹。在第一行中輸...

7 2 樹的同構 (25 分)

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