哈希表设计实验报告Word下载.docx
- 文档编号:18784630
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:9
- 大小:38.62KB
哈希表设计实验报告Word下载.docx
《哈希表设计实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《哈希表设计实验报告Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
//关键字
structkeyNum*next;
};
voidmain()
inti,k,m,n,num,flag,l,j;
inta[]={280,700,603,430,641,907,640};
structkeyNum*head=NULL;
num=sizeof(a)/sizeof(int);
for(i=0;
i<
sizeof(a)/sizeof(int);
i++)
{
k=a[i];
m=k%(num+1);
//计算得到关键字的哈希值
hash[m]=insertHash(hash[m],k);
//将关键字k插入到哈希值为m的链表中
}
printf("
采用链地址法得到的哈希表为:
\n"
);
num+1;
printf("
第%d行:
"
i);
print(hash[i]);
}
请输入要查找的整数值:
scanf("
%d"
&
n);
l=searchHash(hash[i],n);
if(l==1)
j=i;
break;
if(l==1)printf("
整数值%d在哈希表中,位置为链表%d\n"
n,j);
}
structkeyNum*insertHash(structkeyNum*head,intm)
structkeyNum*p0,*p1,*p2,*temp;
temp=(structkeyNum*)malloc(sizeof(structkeyNum));
temp->
key=m;
p1=head;
p0=temp;
//要插入的节点(值为m);
if(head==NULL)//1,原来的链表为空,插入到head后
head=p0;
p0->
next=NULL;
else//原来的链表不为空
while((p0->
key>
p1->
key)&
&
(p1->
next!
=NULL))//移动到适当位置
p2=p1;
p1=p1->
next;
if(p0->
key<
=p1->
key)
if(head==p1)head=p0;
//2,插入到第一个节点之前
elsep2->
next=p0;
//3,插入到p2指向的节点之后
next=p1;
else//4,插入到结尾处
p1->
return(head);
intsearchHash(structkeyNum*head,intm)//查找链表head中是否存在m
intk=0;
structkeyNum*p;
p=head;
if(head!
=NULL)
do
if(p->
key==m)//存在m
k=1;
p=p->
}while(p!
=NULL);
return(k);
//存在m值则返回1,否则返回0;
voidprint(structkeyNum*head)//打印链表head
->
%d"
p->
key);
else
null"
头文件HashTable.h
typedefstructKeyNum
structKeyNum*next;
}keyNum;
//插入
keyNum*insertHash(keyNum*head,intm)
keyNum*p0,*p1,*p2,*temp;
temp=(keyNum*)malloc(sizeof(keyNum));
//查找
intsearchHash(keyNum*head,intm)//查找链表head中是否存在m
keyNum*p;
voidprint(keyNum*head)//打印链表head
p=head;
测试程序Main.c
#definemSize100//数组最大个数
#include"
HashTable.h"
inti,k,m,n,num,l,j;
inta[]={180,750,600,430,541,900,640};
keyNum*hash[mSize];
keyNum*head=NULL;
hash[i]=NULL;
for(i=0;
num;
hash[m]=insertHash(hash[m],k);
当前哈希表如下:
print(hash[i]);
请输入要查找的元素:
}
\n整数值%d在哈希表中,位置为链表%d\n"
elseprintf("
\n整数值%d不在哈希表中!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈希表 设计 实验 报告