L3 016 二叉搜尋樹的結構 30分

2021-10-10 08:55:00 字數 1551 閱讀 9761

給定一系列互不相等的整數,將它們順次插入一棵初始為空的二叉搜尋樹,然後對結果樹的結構進行描述。你需要能判斷給定的描述是否正確。例如將插入後,得到一棵二叉搜尋樹,則陳述句如「2是樹的根」、「1和4是兄弟結點」、「3和0在同一層上」(指自頂向下的深度相同)、「2是4的雙親結點」、「3是4的左孩子」都是正確的;而「4是2的左孩子」、「1和3是兄弟結點」都是不正確的。

輸入格式:

輸入在第一行給出乙個正整數n(≤100),隨後一行給出n個互不相同的整數,數字間以空格分隔,要求將之順次插入一棵初始為空的二叉搜尋樹。之後給出乙個正整數m(≤100),隨後m行,每行給出一句待判斷的陳述句。陳述句有以下6種:

題目保證所有給定的整數都在整型範圍內。

輸出格式:

對每句陳述,如果正確則輸出yes,否則輸出no,每句佔一行。

輸入樣例:

524

1308

2 is the root

1and

4 are siblings

3and

0 are on the same level

2 is the parent of 4

3 is the left child of 4

1 is the right child of 2

4and

0 are on the same level

100 is the right child of 3

輸出樣例:

yes

yesyes

yesyes

nono

no

#include

#include

#include

using

namespace std;

struct node

;map<

int, node>mp;

int n, m, root, x, a, b, ship;

string str;

bool

judge

(int a,

int b,

int ship)

void

insert

(int root,

int x,

int deep);}

else

insert

(tmp, x, deep +1)

;}}int

main()

cin >> m;

for(

int i =

0; i < m;

++i)

else

else

} cout <<

(judge

(a, b, ship)

?"yes"

:"no"

)<< endl;

}return0;

}

L3 016 二叉搜尋樹的結構 (30 分

l3 016 二叉搜尋樹的結構 30 分 給定一系列互不相等的整數,將它們順次插入一棵初始為空的二叉搜尋樹,然後對結果樹的結構進行描述。你需要能判斷給定的描述是否正確。例如將插入後,得到一棵二叉搜尋樹,則陳述句如 2是樹的根 1和4是兄弟結點 3和0在同一層上 指自頂向下的深度相同 2是4的雙親結點...

L3 016 二叉搜尋樹的結構

輸出樣例 yesyes yesyes yesno nono 題解 寫的 極醜。先離散化,建樹的時候儲存下來這個節點對應到陣列上的下標,a id i x,i是x的對映。上次有乙個題目也是這樣的查詢,但是那個是通過每次把所有的點for迴圈直至a i x,找到對應的陣列下標,時間複雜度較高。下面的 是錯誤...

天梯賽L3 016 二叉搜尋樹的結構 (建樹)

題目鏈結 l3 016 二叉搜尋樹的結構 30 分 給定一系列互不相等的整數,將它們順次插入一棵初始為空的二叉搜尋樹,然後對結果樹的結構進行描述。你需要能判斷給定的描述是否正確。例如將插入後,得到一棵二叉搜尋樹,則陳述句如 2是樹的根 1和4是兄弟結點 3和0在同一層上 指自頂向下的深度相同 2是4...