DS二叉排序樹之查詢

2021-10-01 15:33:28 字數 1226 閱讀 7265

題目描述

給出乙個資料序列,建立二叉排序樹,並實現查詢功能

對二叉排序樹進行中序遍歷,可以得到有序的資料序列

輸入第一行輸入t,表示有t個資料序列

第二行輸入n,表示首個序列包含n個資料

第三行輸入n個資料,都是自然數且互不相同,資料之間用空格隔開

第四行輸入m,表示要查詢m個資料

從第五行起,輸入m行,每行乙個要查詢的資料,都是自然數

以此類推輸入下乙個示例

輸出第一行輸出有序的資料序列,對二叉排序樹進行中序遍歷可以得到

從第二行起,輸出查詢結果,如果查詢成功輸出查詢次數,如果查詢失敗輸出-1

以此類推輸出下乙個示例的結果

樣例輸入

1

622 33 55 66 11 44711

2233

4455

6677

樣例輸出
11 22 33 44 55 6621

2434

-1

#include using namespace std;

class binode

binode(int e):data(e),lchild(null),rchild(null){}

friend class bitree;

};class bitree

void insert(int key);

void midorder();

void search(int key);

};void bitree::insertnode(int data,binode *&r)

else if(datadata && !r->lchild)

}void bitree::insert(int key)

void bitree::midorder(binode *t)

}void bitree::midorder()

else if(key data && t->lchild)

else if(key == t->data)

count++;

return false;

}void bitree::search(int key)

mytree.midorder();

int m;

cin>>m;

while (m--)

}}

DS二叉排序樹之查詢

題目描述 給出乙個資料序列,建立二叉排序樹,並實現查詢功能 對二叉排序樹進行中序遍歷,可以得到有序的資料序列 輸入 第一行輸入t,表示有t個資料序列 第二行輸入n,表示首個序列包含n個資料 第三行輸入n個資料,都是自然數且互不相同,資料之間用空格隔開 第四行輸入m,表示要查詢m個資料 從第五行起,輸...

DS二叉排序樹之刪除

給出乙個資料序列,建立二叉排序樹,並實現刪除功能 對二叉排序樹進行中序遍歷,可以得到有序的資料序列 第一行輸入t,表示有t個資料序列 第二行輸入n,表示首個序列包含n個資料 第三行輸入n個資料,都是自然數且互不相同,資料之間用空格隔開 第四行輸入m,表示要刪除m個資料 從第五行起,輸入m行,每行乙個...

查詢 二叉排序樹

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