第14周專案1 1

2021-08-13 19:22:07 字數 2435 閱讀 2139

/* 

煙台大學計算機學院 

檔名稱:xiangmu.cpp 

完成日期:2023年12月19日 

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

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

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

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

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

輸入描述:無

輸出描述:處理後的雜湊表

%m改過後

*/#include 

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

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

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

typedef

intkeytype;        

//關鍵字型別

typedef

char

* infotype;    

//其他資料型別

typedef

struct

hashdata;  

typedef

hashdata hashtable[maxsize];        

//雜湊表型別

void

insertht(hashtable ha,

int&n,

intm,keytype k,

intp)  

//將關鍵字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,

intn,

intm,

intp)  

//建立雜湊表

for(i=0; i

insertht(ha,n1,m,x[i],p);  

}  int

searchht(hashtable ha,

intp,

intm,keytype k)      

//在雜湊表中查詢關鍵字k

if(ha[adr].key==k)     

//查詢成功

return

adr;  

else

//查詢失敗

return

-1;  

}  int

deleteht(hashtable ha,

intp,

intk,

int&n,

intm)   

//刪除雜湊表中關鍵字k

else

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

return

0;  

}  void

dispht(hashtable ha,

intn,

intm)    

//輸出雜湊表

intmain()  

;  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,m,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,m);  

dispht(ha,n,m);  

i=searchht(ha,p,m,k);  

if(i!=-1)  

printf(" ha[%d].key=%d\n"

,i,k);  

else

printf(" 未找到%d\n"

,k);  

printf(" 插入關鍵字%d\n"

,k);  

insertht(ha,n,m,k,p);  

dispht(ha,n,m);  

printf("\n"

);  

return

0;  

}  

執行結果:

第14周 專案1 1 驗證演算法

輸入描述 1.折半查詢 include define maxl 100 typedef int keytype typedef char infotype 10 typedef struct nodetype typedef nodetype seqlist maxl 順序表型別 int binse...

第14周專案1 1 驗證演算法

檔名稱 專案1 驗證演算法 作 者 zangyunpeng 完成日期 2017年11月30日 版 本 號 v1.0 問題 折半查詢,遞迴的折半查詢演算法的驗證。折半查詢 include define maxl 100 typedef int keytype typedef char infotype...

第14周專案1 (1)驗證折半演算法

問題及 檔名稱 1.cpp 作 者 王修文 完成日期 2016年12月1日 版 本 號 v1.0 輸入描述 無 程式輸出 測試資料 1.折半查詢 include define maxl 100 typedef int keytype typedef char infotype 10 typedef ...