資源簡介
大學課程、數據結構、C代碼、設定哈希函數 H(key) = key MOD 11 ( 表長=11 ),輸入一組關鍵字序列,根據線性探測再散列解決沖突的方法建立哈希表的存儲結構,顯示哈希表,任意輸入關鍵字,判斷是否在哈希表中。

代碼片段和文件信息
//設定哈希函數?H(key)?=?key?MOD?11?(?表長=11?),輸入一組關鍵字序列,
//根據線性探測再散列解決沖突的方法建立哈希表的存儲結構,
//顯示哈希表,任意輸入關鍵字,判斷是否在哈希表中。
#include?
#include?
#include?
#define?MAX?11
typedef?struct?{
int?num;
//char?name[20];
}ElemType;//定義查找的結點元素
typedef?struct??{
ElemType?*elem;?//數據元素存儲基址
int?count;?//數據元素個數
int?sizeindex;
}HashTable;//定義哈希表
int?Hash(?int?num)???{
int?p;
p=num%11;
return?p;
}//定義哈希函數
void?InitHash(HashTable?*H) { //創(chuàng)建哈希表
int?i;
????H->elem=(ElemType?*)malloc(MAX*sizeof(ElemType));
H->count=0;
H->sizeindex=MAX;
for(i=0;i H->elem[i].num=0;//初始化,使SearHash函數能判斷到底有沒有元素在里面
}
int?SearHash(HashTable?Hint?keyint?*p) { //查找函數
*p=Hash(key);
while(H.elem[*p].num!=key&&H.elem[*p].num!=0)?{
*p=*p+1;
}
if(H.elem[*p].num==key)
return?1;
else
return?0;
}
void?InsertHash(HashTable?*HElemType?e)?{ //如果查找不到就插入元素
int?p;
SearHash(*He.num&p);?//查找
H->elem[p]=e;
++H->count;
}
void?show(HashTable?*H)?{
int?i;
printf(“本哈希表為:\n“);
for(i=0;i<11;i++)?{
if(H->elem[i].num?==?0)?{
printf(“本哈希表中第%d個位置的關鍵字為:空\n“i);
}
else
printf(“本哈希表中第%d個位置的關鍵字為:%d\n“iH->elem[i].num);
}
}
void?main() { //主函數
HashTable?H;
int?pkeyin;
ElemType?e;
InitHash(&H);
printf(“輸入個數(個數要小于11):“);
scanf(“%d“&n);
for(i=0;i printf(“輸入關鍵字(每兩個關鍵字之間轉行輸入):“);
scanf(“%d“&e.num);
InsertHash(&He);//插入元素
}
show(&H);
printf(“輸入欲查找的關鍵字:“);
scanf(“%d“&key);
if(SearHash(Hkey&p))//能查找成功
{
printf(“所查關鍵字為:%d\n“H.elem[p].num);
printf(“關鍵字所在的位置:%d\n“p);//輸出位置
}
else
printf(“?不存在“);
getch();
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1944??2014-06-16?22:09??7哈希表\d.c
?????文件???????3339??2014-06-17?16:13??7哈希表\d.dsp
?????文件????????510??2014-06-17?16:14??7哈希表\d.dsw
?????文件??????50176??2014-06-17?16:14??7哈希表\d.ncb
?????文件??????48640??2014-06-17?16:14??7哈希表\d.opt
?????文件????????236??2014-06-17?16:13??7哈希表\d.plg
?????文件?????188500??2014-06-16?22:09??7哈希表\Debug\d.exe
?????文件?????231388??2014-06-16?22:09??7哈希表\Debug\d.ilk
?????文件???????8013??2014-06-16?22:09??7哈希表\Debug\d.obj
?????文件?????186360??2014-06-16?22:08??7哈希表\Debug\d.pch
?????文件?????467968??2014-06-16?22:09??7哈希表\Debug\d.pdb
?????文件??????33792??2014-06-17?16:14??7哈希表\Debug\vc60.idb
?????文件??????53248??2014-06-16?22:09??7哈希表\Debug\vc60.pdb
?????目錄??????????0??2012-07-02?19:24??7哈希表\Debug
?????目錄??????????0??2012-07-02?19:24??7哈希表
-----------?---------??----------?-----??----
??????????????1274114????????????????????15
評論
共有 條評論