



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈希表的建立和查找哈希表的建立和查找哈希表的建立和查找哈希表的建立和查找编制仅供参考审核批准生效日期地址:电话:传真:邮编:哈希表的建立和查找/*针对某个集体(比如所在班级)中的人名设计一个哈希表,使的平均查找的长度不超过2完成相应的建表和查表的程序题目要求:
假设人名为姓名的汉语拼音形式,待填入哈希表的人名工有30个,取平均查找长度的上限
为2。哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突。
测试数据
自定义。*/#include<>#include<>#defineHASH_LEN50
y="wanghui";NameList[1].py="mayuelong";NameList[2].py="chenzhicheng";NameList[3].py="sunpeng";NameList[4].py="zengqinghui";NameList[5].py="liqingbo";NameList[6].py="liujunpeng";NameList[7].py="jiangquanlei";NameList[8].py="xingzhengchuan";NameList[9].py="luzhaoqian";NameList[10].py="gaowenhu";NameList[11].py="zhuhaoyin";NameList[12].py="chenlili";NameList[13].py="wuyunyun";NameList[14].py="huangjuanxia";NameList[15].py="wangyan";NameList[16].py="zhoutao";NameList[17].py="jiangzhenyu";NameList[18].py="liuxiaolong";NameList[19].py="wangziming";NameList[20].py="fengjunbo";NameList[21].py="lilei";NameList[22].py="wangjia";NameList[23].py="zhangjianguo";NameList[24].py="zhuqingqing";NameList[25].py="huangmin";NameList[26].py="haoyuhan";NameList[27].py="zhoutao";NameList[28].py="zhujiang";NameList[29].py="lixiaojun";for(i=0;i<NAME_NO;i++){
s0=0;
f=NameList[i].py;
for(r=0;*(f+r)!='\0';r++)/*方法:将字符串的各个字符所对应的ASCII码相加,所得的整数做为哈希表的关键字*/
s0=*(f+r)+s0;
NameList[i].k=s0;}}voidCreateHashList()y="";
HashList[i].k=0;
HashList[i].si=0;
}
for(i=0;i<HASH_LEN;i++)
{
intsum=0;
intadr=(NameList[i].k)%M;
i==0)
=NameList[i].k;
HashList[adr].py=NameList[i].py;
HashList[adr].si=1;
}
else
%10+1)%M;
!=0);
HashList[d].k=NameList[i].k;
HashList[d].py=NameList[i].py;
HashList[d].si=sum+1;
}}}void
FindList()==s0)
y,s0);elseif(HashList[adr].k==0)
printf("无此记录!");else{
intg=0;
do
{
d=(d+s0%10+1)%M;
==0)
{
printf("无此记录!");
g=1;
}
if(HashList[d].k==s0)
{
printf("\n姓名:%s
关键字:%d
查找长度为:%d",HashList[d].py,s0,sum);
g=1;
}
}while(g==0);
}}void
Display();
printf("\t\t%d",HashList[i].si);
printf("\t\t%d",HashList[i].k%M);
printf("\t%s",HashList[i].py);
printf("\n");}for(i=0;i<HASH_LEN;i++)average+=HashList[i].si;average/=NAME_NO;printf("\n\n平均查找长度:ASL(%d)=%f\n\n",NAME_NO,average);}voidmain(){
charch1;printf("\n
哈希表的建立和查找\n");
printf("
*-------------------------------------------*\n");
printf("
|
D.显示哈希表
|\n");
printf("
|
F.查找
|\n");
printf("
|
Q.退出
|\n");
printf("
*-------------------------------------------*\n");InitNameList();
CreateHashList();
while(1){printf("\n
Option-:");fflush(stdin);
ch1=getchar();
if(ch1=='D'||ch1=='d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 综放工作面冲击地压综合防治安全技术措施
- 2025年安全文化建设培训考试题库全攻略
- 2025年注册会计师考试《会计》实战模拟试题集锦与答案点评
- 2025年消防执业资格考试题库(消防标准化建设)法规解读试题卷
- 2025年潜水教练资格考试模拟试卷:潜水教练学员行为观察与激励
- 2025年小学英语毕业考试模拟卷(听力专项)-历史文化篇
- 2025年成人高考《语文》文言文阅读重点难点解析试题
- 秋季树木施工方案
- 2025年危险化学品安全管理人员安全知识自测试卷及答案解析
- 2025年成人高考《语文》模拟冲刺题库:作文构思与提升技巧试题卷
- 水利水电工程质量监督工作标准
- 2024年云南省昆明市五华区小升初数学试卷
- 化工原理完整(天大版)课件
- 2025年全球创新生态系统的未来展望
- 2025年元明粉项目可行性研究报告
- 艺术色彩解读
- 冲压生产管理流程
- 体育业务知识培训课件
- DB32∕T 1670-2010 小麦纹枯病综合防治技术规程
- 《淞沪会战》课件
- 《社区共治共建共享研究的国内外文献综述》4300字
评论
0/150
提交评论