哈希表实习报告

哈希表实习报告

ID:39473715

大小:73.50 KB

页数:7页

时间:2019-07-04

哈希表实习报告_第1页
哈希表实习报告_第2页
哈希表实习报告_第3页
哈希表实习报告_第4页
哈希表实习报告_第5页
资源描述:

《哈希表实习报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实习7哈希表设计【设计思想】一般的线性表、树中,记录在结构中的相对位置是随机的即和记录的关键字之间不存在确定的关系,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较”的基础上,查找的效率与比较次数密切相关。理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。因而查找时,只需根据这个对应关系f找到给定值K的像f(K)。若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上,由此不需要进行比较便可直接取得所查记录。在此,称这个对应关系f为哈希函数,按这个思想建立哈希

2、表(又称为杂凑法或散列表)。【主要算法】typedefstructNAME{char*py;//名字的拼音intk;//拼音所对应的整数NAMENameList[HASH_LEN];typedefstructhterm//哈希表{char*py;//名字的拼音intk;//拼音所对应的整数intsi;//查找长度}HASH;voidInitNameList(){NameList[0].py="baifang";//自定义30个姓名NameList[1].py="bufei";NameList[2].py="cenze";NameList[3].py="chenyan";NameLis

3、t[4].py="chenglingqiu";NameList[5].py="dingyucheng";NameList[6].py="fengyuyu";NameList[7].py="fanzhenchao";NameList[8].py="jiangchengchang";NameList[9].py="lizechen";NameList[10].py="liangshirui";NameList[11].py="liangbiao";NameList[12].py="lianzheng";NameList[13].py="liuxiang";NameList[14].py=

4、"songfan";NameList[15].py="shangxuezhi";NameList[16].py="tangzhigang";NameList[17].py="wukaiyu";NameList[18].py="zhongyang";NameList[19].py="kongrongping";NameList[20].py="wuxiaomei";NameList[21].py="liuwei";NameList[22].py="lujunming";NameList[23].py="zhangjun";NameList[24].py="zhangwei";NameL

5、ist[25].py="dengchangsong";NameList[26].py="huangyuan";NameList[27].py="zhouyanping";NameList[28].py="shanbaocai";NameList[29].py="shengyingying";char*f;intr,s0;for(inti=0;i

6、r].si==0)//如果不冲突{HashList[adr].k=NameList[i].k;HashList[adr].py=NameList[i].py;HashList[adr].si=1;}else//冲突{do{d=(d+((NameList[i].k))%10+1)%M;//伪散列sum=sum+1;//查找次数加一}while(HashList[d].k!=0);HashList[d].k=NameList[i].k;HashList[d].py=NameList[i].py;HashList[d].si=sum+1;}}}voidFindList(){charname

7、[20]={0};scanf("%s",name);ints0=0;for(intr=0;r<20;r++)//求出拼音所对应的整数s0+=name[r];intsum=1;intadr=s0%M;//使用哈希函数intd=adr;if(HashList[adr].k==s0)//分3种情况进行判断elseif(HashList[adr].k==0)else{intg=0;do{d=(d+s0%10+1)%M;//伪散列sum=sum+1;if(HashL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。