7 28 搜尋樹判斷 25分

2021-10-09 09:37:55 字數 1230 閱讀 5400

對於二叉搜尋樹,我們規定任一結點的左子樹僅包含嚴格小於該結點的鍵值,而其右子樹包含大於或等於該結點的鍵值。如果我們交換每個節點的左子樹和右子樹,得到的樹叫做映象二叉搜尋樹。

現在我們給出乙個整數鍵值序列,請編寫程式判斷該序列是否為某棵二叉搜尋樹或某映象二叉搜尋樹的前序遍歷序列,如果是,則輸出對應二叉樹的後序遍歷序列。

輸入格式:

輸入的第一行包含乙個正整數n(≤1000),第二行包含n個整數,為給出的整數鍵值序列,數字間以空格分隔。

輸出格式:

輸出的第一行首先給出判斷結果,如果輸入的序列是某棵二叉搜尋樹或某映象二叉搜尋樹的前序遍歷序列,則輸出yes,否側輸出no。如果判斷結果是yes,下一行輸出對應二叉樹的後序遍歷序列。數字間以空格分隔,但行尾不能有多餘的空格。

輸入樣例1:

786

57108

11

輸出樣例1:

yes57

681110

8

輸入樣例2:

786

85109

11

輸出樣例2:

no
#include

#include

using

namespace std;

int n, a[

1005];

vector<

int>t[2]

;int

build

(int low,

int high,

int mirror)

else

if(i - j !=1)

return0;

build

(low +

1, j, mirror)

;build

(i, high, mirror)

; t[mirror]

.push_back

(a[low]);

return1;

}int

main()

cout <<

"no"

;return0;

}

7 28 搜尋樹判斷

7 28 搜尋樹判斷 25 分 對於二叉搜尋樹,我們規定任一結點的左子樹僅包含嚴格小於該結點的鍵值,而其右子樹包含大於或等於該結點的鍵值。如果我們交換每個節點的左子樹和右子樹,得到的樹叫做映象二叉搜尋樹。現在我們給出乙個整數鍵值序列,請編寫程式判斷該序列是否為某棵二叉搜尋樹或某映象二叉搜尋樹的前序遍...

7 10 搜尋樹判斷 (25 分

對於二叉搜尋樹,我們規定任一結點的左子樹僅包含嚴格小於該結點的鍵值,而其右子樹包含大於或等於該結點的鍵值。如果我們交換每個節點的左子樹和右子樹,得到的樹叫做映象二叉搜尋樹。現在我們給出乙個整數鍵值序列,請編寫程式判斷該序列是否為某棵二叉搜尋樹或某映象二叉搜尋樹的前序遍歷序列,如果是,則輸出對應二叉樹...

3 搜尋樹判斷 25分

對於二叉搜尋樹,我們規定任一結點的左子樹僅包含嚴格小於該結點的鍵值,而其右子樹包含大於或等於該結點的鍵值。如果我們交換每個節點的左子樹和右子樹,得到的樹叫做映象二叉搜尋樹。現在我們給出乙個整數鍵值序列,請編寫程式判斷該序列是否為某棵二叉搜尋樹或某映象二叉搜尋樹的前序遍歷序列,如果是,則輸出對應二叉樹...