实验六 哈希查找.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文档。上传文档
查看更多
实验六 哈希查找

韶 关 学 院 学 生 实 验 报 告 册 实验课程名称:数据结构与算法 实验项目名称:实验六 哈希查找 实验类型(打√ ):(基础 、综合 、设计√ ) 院 系:计算机科学学院 专 业:计算机科学技术 姓 名:*** 学 号:***** 指导老师:陈正铭 韶关学院教务处编制 一、实验预习报告内容 预习日期:2011年 9 月 18 日 【实验目的】 (1)复习顺序查找、二分查找、分块查找的基本算法及适用场合。 (2)掌握哈希查找的基本方法和适用场合,并能在解决实际问题时灵活应用。 (3)巩固在哈希查找时解决冲突的方法和特点。 【实验内容】 (1)哈希表查找的实现(用线性探测法解决冲突)。 (2)能对哈希表进行插入和查找。 【实验要求】 (1)利用C或C++语言完成算法设计和程序设计。 (2)上机调试通过实验程序。 (3)输入数据,进行哈希查找和插入。 (4)用实验结果与理论分析的结果进行对照比较。 (5)给出具体的算法分析,包括时间复杂度和空间复杂度等。 (6)撰写实验报告。 【软件平台】 Windows 2000,Visual C++ 6.0 【程序组成】 由一个哈希表结构hashtable, 一个main()主函数(完成数据输入和函数调用)、 五个功能函数: Initialhash()//初始化哈希表 Printhash()//输出哈希表的所有元素及其位置 Searchhash()//查找哈希表 inserthash()//查找哈希表 deletehash()//查找哈希表 构成如下图所示: 调用 【设计思想】 选取某个函数,依该函数按关键字计算元素的存储位置,并按此存放;查找时,由同一个函数对给定值kx计算地址,将kx与地址单元中元素关键字进行比较,确定查找是否成功,这就是哈希方法。哈希方法中使用的转换函数称为哈希函数。程序首先通过插入操作建立哈希表,接着显示数据,然后运用哈希查找找到数据,如没有找到则显示查找错误,找到则显示查找成功。 【疑问】 怎么实现其他类型的哈希函数算法? (这部分内容因人而异,也可不写) 实验预习评分: 二、实验原始(数据)记录 实 验 时 间: 2011 年 9 月 21 日(星期 三 第 7,8 节) 实验同组人 : 【程序运行结果】建表和显示: 查找: 插入: 删除: 通过分析输入数据和运行结果,证明程序顺利完成实验内容和要求。 指导教师 批阅及签名 签名: 年 月 日 三、实验报告内容 2011年 9 月 21 日 【实验程序主要代码】: #define MAXSIZE 12 //哈希表的最大容量,与所采用的哈希函数有关 enum BOOL{False,True}; enum HAVEORNOT{NULLKEY,HAVEKEY,DELKEY}; //哈希表元素的三种状态,没有记录、有记录、有过记录但已被删除 typedef struct //定义哈希表的结构 { int elem[MAXSIZE]; //数据元素体 HAVEORNOT elemflag[MAXSIZE];//元素状态,没有记录、有记录、有过记录但已被删除 int count; // 哈希表中当前元素的个数 }HashTable; typedef struct { int keynum; // 记录的数据域,只有关键字一项 }Record; void InitialHash(HashTable); // 初始化哈希表 void PrintHash(HashTable); // 显示哈希表中的所有元素 BOOL SearchHash(HashTable,int,int); // 在哈希表中查找元素 BOOL InsertHash(HashTabl

文档评论(0)

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

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

1亿VIP精品文档

相关文档