題目描述
給出乙個資料序列,建立二叉排序樹,並實現查詢功能
對二叉排序樹進行中序遍歷,可以得到有序的資料序列
輸入第一行輸入t,表示有t個資料序列
第二行輸入n,表示首個序列包含n個資料
第三行輸入n個資料,都是自然數且互不相同,資料之間用空格隔開
第四行輸入m,表示要查詢m個資料
從第五行起,輸入m行,每行乙個要查詢的資料,都是自然數
以此類推輸入下乙個示例
輸出第一行輸出有序的資料序列,對二叉排序樹進行中序遍歷可以得到
從第二行起,輸出查詢結果,如果查詢成功輸出查詢次數,如果查詢失敗輸出-1
以此類推輸出下乙個示例的結果
樣例輸入
1樣例輸出622 33 55 66 11 44711
2233
4455
6677
11 22 33 44 55 66212434
-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行,每行乙個...
查詢 二叉排序樹
順序查詢 順序查詢又叫線性查詢,是最基本的查詢技術,它的查詢過程是 從表中第乙個記錄開始,逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄 如果知道最後乙個記錄,其關鍵字和給定值比較都不等時,則表中沒有所查的記錄,查詢不成功。順序查詢演算法實現 如下 順序...