問題及**:
/*
* 檔名稱:cpp1.
* 作 者:薛瑞琪
* 完成日期:2017 年 12 月 3 日
* 版 本 號:v1.0
*
寫程式建立序列的雜湊表,裝填因子定為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) //建立雜湊表
知識點總結:
學習心得:
根據老師講解此**中有一定的錯誤,我嘗試在相關函式中加入m的引數,但是最後結果就與現在的結果不同表示有錯誤。希望有大神幫忙詳細講解一下。
錯誤一:
main函式中p修改為11,雜湊函式改為h(k)=k%11,裝填因子選0.8
錯誤二:
解決衝突中重新定址的adr=(adr+1)%p應該是adr=(adr+1)%m,應該以儲存單元數m為依據,決定是否將下標返回到0。
第14周專案1 驗證演算法
問題及 檔名稱 lulu.cpp 完成日期 2015年11月30日 版本號 v1.o 作為測試序列,分別對查詢90 47 100進行測試。include define maxl 100 typedef int keytype typedef char infotype 10 typedef stru...
第14周專案1 驗證演算法
問題及 檔名稱 main.cbp 作 者 王效傑 完成日期 2017年11月30日 版 本 號 v1.0 的雜湊表,裝填因子定為0.8,雜湊函式為h k key p,p 11,採用線性探查法解決衝突。測試中 1 輸出建立的雜湊表 2 完成關鍵字為29的元素的查詢 3 在上述雜湊表中刪除關鍵字為77的...
第14周 專案1 驗證演算法 (1)
問題及 檔名稱 test.cpp 作 者 焦夢真 完成日期 2015年11月30日 版 本 號 v1.0 分別對查詢90 47 100進行測試。輸入描述 程式輸出 include define maxl 100 typedef int keytype typedef char infotype 10...