資料結構期末報告 實驗四

2021-10-06 08:00:38 字數 1582 閱讀 4731

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

第二組資料:自擬

#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;

}

2.設計出在二叉排序樹中插入結點的演算法,在此基礎上實現構建二叉排序樹的演算法,並給出其中序遍歷序列。

實驗測試資料:

構建二叉排序樹的輸入序列如下: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 應用二叉樹的遍歷操作來實現判斷兩棵二叉樹是否相等的操作 ...