1.對下列資料表,分別採用二分查詢演算法實現查詢,給出查詢過程依次所比較的元素(的下標),並以二分查詢的判定樹來解釋。
實驗測試資料:
第一組資料:
資料表為 (1,2,3,4,6,7,8,9,10,11,12,13,17,18,19,20,24,25,26,30,35,40,45,50,100)
查詢的元素分別為: 2,8,20, 30,50,5,15,33,110
第二組資料:自擬
2.設計出在二叉排序樹中插入結點的演算法,在此基礎上實現構建二叉排序樹的演算法,並給出其中序遍歷序列。#include#include#include<__msvc_all_public_headers.hpp>
using namespace std;
int a[10000];
int bin_search(int a, int n,int x)
return -1; //返回查詢失敗的標誌
}int main()
c2:cout << "請輸入要查詢的數字:" << endl;
cin >> key;
if (bin_search(a, n, key) == -1)cout << "not found!" << endl;
else
cout << endl;
cout << "是否繼續查詢?1.繼續查詢 2.更換數列 其他數字退出" << endl;
cin >> choice;
if (choice == 1)goto c2;
else if (choice == 2)goto c1;
else return 0;
}
實驗測試資料:
構建二叉排序樹的輸入序列如下:100,150,120,50,70,60,80,170,180,160,110,30,40,35,175
3.設計演算法在二叉排序樹中查詢指定值的結點。
在任務2所建立的二叉排序樹中分別查詢下列元素:
150,70,160,190,10,55,175
#include<__msvc_all_public_headers.hpp>
#include #include #include using namespace std;
int endkey = 1000;
int a[3000];
typedef struct node
node, * bin_tree;
node* root;
node* get_root()
void insert(node*& t, node* s)
void create_bst(node*& t)
}void inorder(bin_tree t)
}bin_tree searchbst(bin_tree bst, int data)
/*在根指標bst所指二叉排序樹bst上,查詢關鍵字等於key的結點,若查詢成功,返回指向該元素結點指標,否則返回空指標*/
return null; //查詢失敗
}int main()
資料結構實驗報告 資料結構實驗報告
使用c語言中的陣列,實現線性表中的順序結構儲存的查詢 刪除操作。1 初始線性表通過陣列 迴圈 scanf語句實現輸入任意個整數。2 刪除操作的實現,任意輸入乙個要刪除的整數,找到這個元素,將此元素之後的所有元素逐個前移一位,實現刪除操作。3 要求以上2步操作可以重複執行。4 例如 刪除操作執行結果大...
資料結構實驗報告
1 掌握佇列儲存結構的表示和實現方法。2 掌握佇列的入隊和出隊等基本操作的演算法實現。3 了解佇列在解決實際問題中的簡單應用。1 建立順序迴圈佇列,並在順序迴圈佇列上實現入隊 出隊基本操作 驗證性內容 2 建立迴圈鏈佇列,並在迴圈鏈佇列上實現入隊 出隊基本操作 設計性內容 3 實現鍵盤輸入迴圈緩衝區...
資料結構實驗報告
1 理解二叉樹的型別定義與性質。2 掌握二叉樹的二叉鍊錶儲存結構的表示和實現方法。3 掌握二叉樹遍歷操作的演算法實現。4 熟悉二叉樹遍歷操作的應用。1 建立二叉樹的二叉鍊錶儲存結構。2 實現二叉樹的先序 中序和後序三種遍歷操作 驗證性內容 3 應用二叉樹的遍歷操作來實現判斷兩棵二叉樹是否相等的操作 ...