资源简介
大学课程、数据结构、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) { //创建哈希表
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
评论
共有 条评论