第十四周專案一

2021-08-13 18:45:27 字數 2460 閱讀 8636

/* 

煙台大學計算機學院 

檔名稱:1.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;  

}  

執行結果:

學習心得:

學會了雜湊表的應用。

第十四周專案一

煙台大學計算機學院 問題描述 認真閱讀並驗證雜湊表實施查詢的相關演算法,寫程式建立序列的雜湊表,裝填因子定為0.8,雜湊函式為h k key p,p 11,採用線性探查法解決衝突。測試中 1 輸出建立的雜湊表 2 完成關鍵字為29的元素的查詢 3 在上述雜湊表中刪除關鍵字為77的元素,再顯示雜湊表。...

第十四周專案三

問題及 all right reserved.檔名稱 是否二叉排序樹.cpp 版本號 v1.0 問題描述 設計乙個演算法,判斷給定的二叉樹是否是二叉排序樹。輸入描述 用二叉樹的形式輸入數字 程式輸出 判斷結果 include include define maxsize 100 typedef in...

第十四周 專案1(2)

問題描述及 ifndef btree h included define btree h included 煙台大學計控學院 作 者 王力源 完成日期 2016年12月8日 問題描述 請用 共n 25據,每塊資料個數s 5作為資料表,自行構造索引表,分別對查詢85測試。endif btree h i...