数据结构 6-副本.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告 有关操作130405324 实验室号: 信息220 实验组号: 24 实验时间: 2015.6.5 批阅时间: 指导教师: 王宏生 成 绩: 沈阳工业大学实验报告 (适用计算机程序设计类) 专业班级: 计算机1303班 学号: 130405324 姓名: 宁相如 实验名称:查找的有关操作 1.实验目的 (1)掌握散列存储结构的思想; (2)熟悉处理散列冲突的线性探测法; (3)熟悉实现散列表的查找、建立的算法。 2.实验内容 (1)随机产生一组关键字,已知散列函数为H(key)=key%p(p为自定的常数),冲突处理方法为线性探测法实现散列表的建立(利用插入算法实现); (2)编写从散列表中查找一个元素的算法。 3.实验方案(程序设计说明) 各种关键字数据输入可利用随机函数自动产生,以便节省上机时间。 4.实验程序(见附件A) 附件A 沈阳工业大学实验报告 (适用计算机程序设计类) 专业班级: 计算机1303班 学号: 130405324 姓名: 宁相如 实验程序: #includeiostream.h #includestdio.h class HashTable { private: int *hash; int m; int p; public: HashTable(int mt,int pt); ~HashTable(){delete []hash;}; void createHT(); //建立散列表 void htOut(); //输出散列表 int searchHT(int x); //查找不成功,返回-1;查找成功,返回下标值 }; HashTable::HashTable(int mt,int pt) { int i; m=mt; p=pt; hash=new int[m]; for(i=0;im;i++) //散列表清空 hash[i]=-99; } void HashTable::createHT() { int j,k; cout请输入查找表元素(整数),用空格分开,以-1结束:endl; cinj; while(j!=-1) { k=j%p; //散列函数:H(key)=key MOD p if(hash[k]==-99) hash[k]=j; else { k=(k+1)%m; //发生冲突,用线性探测法解决 while(hash[k]!=-99) k=(k+1)%m; hash[k]=j; } cinj; //输入闭散列表元素值 } } void HashTable::htOut() //显示闭散列表 { int i; for(i=0;im;i++) printf(%5d,i); // cout i; coutendlendl; for(i=0;im;i++) if(hash[i]!=-99) printf(%5d,hash[i]); // cout hash[i]; else printf(%5c, ); // cout ; coutendlendl; } int HashTable::searchHT(int k) //闭散列表中查找元素 { int i,j; i=0; j=k%p; //散列函数:H(key)=key MOD p while(im hash[j]!=k hash[j]!=-99) { i++; j=(j+1)%m; } //发生冲突,用线性探测表解决 if(hash[j]!=k) return -1; //查找不成功,返回-1 else return j; //查找成功,返回下标值 } void main() { int i,j; HashTable h(11,11); h.createHT(); h.htOut(); cout输

文档评论(0)

daijun + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档