第十四周專案一 驗證演算法之線性探查法

2021-08-11 13:20:34 字數 1313 閱讀 9270

【專案一 - 驗證演算法之線性探查法】

/*          

*煙台大學計算機與控制工程學院

*作 者:張雨萌

*完成日期:2023年11月30日

*/

問題描述:

認真閱讀並驗證雜湊表實施查詢的相關演算法,寫程式建立序列的雜湊                                       表,

裝填因子定為0.8,雜湊函式為h(k)=key%p,p=11,採用線性探查法解決衝突。

程式功能:(1)輸出建立的雜湊表;    

(2)完成關鍵字為29的元素的查詢;    

(3)在上述雜湊表中刪除關鍵字為77的元素,再顯示雜湊表。

程式及**:

#include #define maxsize 100         //定義最大雜湊表長度

#define nullkey -1 //定義空關鍵字值

#define delkey -2 //定義被刪關鍵字值

typedef int keytype; //關鍵字型別

typedef char * infotype; //其他資料型別

typedef struct

hashdata;

typedef hashdata hashtable[maxsize]; //雜湊表型別

void insertht(hashtable ha,int &n,keytype k,int p) //將關鍵字k插入到雜湊表中

else //發生衝突時採用線性探查法解決衝突

while (ha[adr].key!=nullkey && ha[adr].key!=delkey);

ha[adr].key=k;

ha[adr].count=i;

}n++;

}void createht(hashtable ha,keytype x,int n,int m,int p) //建立雜湊表

知識點總結:學習了雜湊表的建立演算法,學習了線性探查法的思路,及在雜湊表中刪除元素的演算法

心得體會:了解了線性探查法的過程,可以自主畫出流程圖,演算法的實現加深了對該法的理解程度。

第十四周 專案一 驗證演算法(2)

問題及 問題描述 驗證分塊查詢演算法。請用22,4,23,11,20,2,15,13,30,45,26,34,29,35,26,36,55,98,56,74,61,90,80,96,127,158,116,114,128,113,115,102,184,211,243,188,187,218,195...

第十四周 專案一 驗證演算法(3)

問題及 問題描述 驗證二叉排序樹相關演算法。1 由整數序列構造二叉排序樹 2 輸出用括號法表示的二叉排序樹 3 用遞迴演算法和非遞迴演算法查詢關鍵字55 4 分別刪除43和55,輸出刪除後用括號法表示的二叉排序樹。include include typedef int keytype typedef...

第十四周 專案一 驗證演算法(3)

問題及描述 煙台大學計算機與控制工程學院 完成日期 2016年12月2號 問題描述 驗證二叉排序樹相關演算法。include include typedef int keytype typedef char infotype 10 typedef struct node 記錄型別 bstnode 在...