第十五周 專案一

2021-07-25 05:51:41 字數 2092 閱讀 2933

*計算機控制工程學院

*班級:計156-2

*姓名:陳飛

*問題及**:

1、認真閱讀並驗證雜湊表實施查詢的相關演算法,寫程式建立序列的雜湊表,裝填因子定為0.8,雜湊函式為h(k)=key%p,p=11,採用線性探查法解決衝突。測試中:

(1)輸出建立的雜湊表;

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

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

[cpp] view plain copy print?

#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) //建立雜湊表

for (i=0; iinsertht(ha,n1,x[i],p);

} int searchht(hashtable ha,int p,keytype k) //在雜湊表中查詢關鍵字k

if (ha[adr].key==k) //查詢成功

return adr;

else //查詢失敗

return -1;

} int deleteht(hashtable ha,int p,int k,int &n) //刪除雜湊表中關鍵字k

else //在雜湊表中未找到該關鍵字

return 0;

} void dispht(hashtable ha,int n,int m) //輸出雜湊表

int main()

; int n=11,m=13,p=13,i,k=29;

hashtable ha;

createht(ha,x,n,m,p);

printf("\n");

dispht(ha,n,m);

i=searchht(ha,p,k);

if (i!=-1)

printf(" ha[%d].key=%d\n",i,k);

else

printf(" 未找到%d\n",k);

k=77;

printf(" 刪除關鍵字%d\n",k);

deleteht(ha,p,k,n);

dispht(ha,n,m);

i=searchht(ha,p,k);

if (i!=-1)

printf(" ha[%d].key=%d\n",i,k);

else

printf(" 未找到%d\n",k);

printf(" 插入關鍵字%d\n",k);

insertht(ha,n,k,p);

dispht(ha,n,m);

printf("\n");

return 0;

}

第十五周 專案一 驗證演算法

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

第十五周專案一 驗證演算法

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

第十五周 專案一 驗證演算法

問題及描述 煙台大學計算機與控制工程學院 完成日期 2016年12月2號 的雜湊表,裝填因子定為0.8,雜湊函式為h k key p,p 11,採用線性探查法解決衝突。測試中 1 輸出建立的雜湊表 2 完成關鍵字為29的元素的查詢 3 在上述雜湊表中刪除關鍵字為77的元素,再顯示雜湊表。includ...