查詢表 二叉排序樹

2021-08-22 13:38:47 字數 1176 閱讀 3120

資料結構實驗之查詢一:二叉排序樹

time limit: 400 ms memory limit: 65536 kib

problem description

對應給定的乙個序列可以唯一確定一棵二叉排序樹。然而,一棵給定的二叉排序樹卻可以由多種不同的序列得到。例如分別按照序列和插入初始為空的二叉排序樹,都得到一樣的結果。你的任務書對於輸入的各種序列,判斷它們是否能生成一樣的二叉排序樹。

input

輸入包含若干組測試資料。每組資料的第1行給出兩個正整數n (n < = 10)和l,分別是輸入序列的元素個數和需要比較的序列個數。第2行給出n個以空格分隔的正整數,作為初始插入序列生成一顆二叉排序樹。隨後l行,每行給出n個元素,屬於l個需要檢查的序列。

簡單起見,我們保證每個插入序列都是1到n的乙個排列。當讀到n為0時,標誌輸入結束,這組資料不要處理。

output

對每一組需要檢查的序列,如果其生成的二叉排序樹跟初始序列生成的二叉排序樹一樣,則輸出"yes",否則輸出"no"。

sample input

4 23 1 4 2

3 4 1 2

3 2 4 1

2 12 1

1 20

sample output

yesno

noac**:

#include#include#includeint n,m,x,f;

using namespace std;

typedef struct tree

tr;void cp(tr *root)//建立查詢二叉樹

else root=root->r;

}else//左子樹

else root=root->l;}}

}}void ap(tr *root,tr *root)//對比二叉樹是否一樣

ap(root->l,root->l);

ap(root->r,root->r);

}}int main()

}return 0;

}

餘生還請多多指教!

動態查詢表(二叉排序樹)

動態查詢表的特點是 表結構在查詢過程中動態生成的,即對於給定值key,若表中存在等於key的記錄,則查詢成功,否則插入關鍵字key的記錄。1 二叉排序樹 1 可以是空樹 2 滿足下列條件 若左子樹不空,則所有的左子樹值小於根節點值。若右子樹不空,則所有的右子樹值大於根節點值。他的左右子樹也分別是二叉...

查詢 二叉排序樹

順序查詢 順序查詢又叫線性查詢,是最基本的查詢技術,它的查詢過程是 從表中第乙個記錄開始,逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄 如果知道最後乙個記錄,其關鍵字和給定值比較都不等時,則表中沒有所查的記錄,查詢不成功。順序查詢演算法實現 如下 順序...

查詢 二叉排序樹

動態查詢表 表結構本身是在查詢過程中動態生成的,即對於給定值key,若表中存在其關鍵值等於key的記錄,則查詢成功返回,否則插入關鍵字等於key的記錄。二叉排序樹或者是一顆空樹,或者是具有下列性質的二叉樹 1 若他的左子樹不為空,則左子樹上所有結點的值均小於它的根結點的值。2 若它的右子樹不空,則右...