第十五周專案1 雜湊表

2021-07-09 01:18:12 字數 1250 閱讀 7535

/*

* 檔名稱:專案1.cbp

* 作 者:朱希康

* 完成日期:2023年12月18日

* 版 本 號:v1.0

* 問題描述:建立雜湊表;查詢關鍵字29;刪除關鍵字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) //建立雜湊表

{ int i,n1=0;

for (i=0; i

執行結果:

知識點總結:

在建立雜湊表中,利用雜湊函式計算每個關鍵字的存放位置,若存在雜湊衝突,則按照解決衝突的方法(此例中利用線性探查法)重新得到儲存位置,並同時計算出探查次數。

在查詢過程中,查詢關鍵字k,計算k的存放位置,若對應雜湊表中關鍵字與其不同,則按照建表時設定的處理衝突的方法找到下乙個存放位置,如此反覆直到某個單元為空或者關鍵字與其相等為止。

第十五周 專案1 驗證演算法 (1)雜湊表

問題及 煙台大學計算機與控制工程學院 作 者 張曉彤 完成日期 2016年12月3日 問題描述 認真閱讀並驗證雜湊表實施查詢的相關演算法,寫程式建立序列的雜湊表,裝填因子定為0.8,雜湊函式為h k key p,p 11,採用線性探查法解決衝突。測試中 1 輸出建立的雜湊表 2 完成關鍵字為29的元...

第十五周專案1 雜湊表及其運算實現

檔名稱 專案1.cbp 作 者 田藝 完成日期 2016年12月8日 版 本 號 v1.0 的雜湊表,裝填因子定為0.8,雜湊函式為h k key p,p 11,採用線性探查法解決衝突。測試中 1 輸出建立的雜湊表 2 完成關鍵字為29的元素的查詢 3 在上述雜湊表中刪除關鍵字為77的元素,再顯示雜...

第十五周專案1 雜湊表及其運算的實現

include define maxsize 100 定義最大雜湊表長度 define nullkey 1 定義空關鍵字值 define delkey 2 定義被刪關鍵字值 typedef int keytype 關鍵字型別 typedef char infotype 其他資料型別 typedef ...