《数据结构》课程设计说明书-hash表的建立和查找.doc

《数据结构》课程设计说明书-hash表的建立和查找.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构》课程设计说明书-hash表的建立和查找

课程设计任务书 学生姓名: xxx 专业班级: 计算机0502 指导教师: xxx 工作单位:计算机科学与技术学院 题 目: Hash表的建立和查找 初始条件: 理论:学习了《数据结构》课程,掌握了基本的数据结构和常用的算法; 实践:计算机技术系实验室提供计算机及软件开发环境。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1、系统应具备的功能: (1)设计哈希函数和哈希表; (2)设计解决冲突的方法; (3)输入一组数据建立哈希表,并实现在哈希表中进行查找。 2、数据结构设计; 3、主要算法设计; 4、编程及上机实现; 5、撰写课程设计报告,包括: (1)设计题目; (2)摘要和关键字; (3)正文,包括引言、需求分析、数据结构设计、算法设计、程序实现及测试、结果分析、设计体会等; (4)结束语; (5)参考文献。 时间安排: 2007年7月2日-7日 18周) 7月2日 查阅资料 7月3日 系统设计,数据结构设计,算法设计 7月4日-5日 编程并上机调试 7月6日 撰写报告 7月7日 验收程序,提交设计报告书。 指导教师签名: 2007年7月2日 系主任(或责任教师)签名: 2007年7月2日 Hash表的建立和查找 摘要: 本人设计了一个Hash表的建立和查找系统,其主要功能是,用户可以手工输入Hash表元素个数和各个元素的数据内容,系统便相应地建立一个Hash表,(输入错误时,系统会显示输入错误,并提示重新输入);可对已建立的Hash表进行多次查找,系统打印查找到的信息,用户可以按提示信息退出系统。Hash表采用结构体数组进行存储,Hash函数由除留余数法建立,冲突的解决采用线性探测。 关键字: Hash表,结构体数组,除留余数法,线性探测 0.引言 随着时代的进步,科技的发展,信息时代已经来临,在这样的时代背景之下,人们迫切需要对信息进行存储和查找,而数据结构成为了信息技术中极为重要的一门学科,发挥着关键作用。信息资料之多﹑之杂﹑之广,使如何存储和高效查找信息成为了一个很严肃的问题。本次课程设计中,我设计了一个小程序对用户输入的数据利用Hash表进行存储。存储完成后,用户可利用Hash表查找数据,速度十分快,可多次查找,也可按提示信息退出。 1.需求分析 本次课程设计需要实现Hash表的建立和查找,具体内容如下: 1.1 Hash 表的建立 建立Hash函数,从而根据用户输入的数据元素个数和各元素的值建立Hash 表,即数据的添加和存储。如果输入的元素个数超出规定范围,则打印出错信息,并提示重新输入信息。 1.2 Hash 表的查找 Hash表建立好之后,用户可以输入想要查找的值,屏幕显示相应信息。如果存在此值,屏幕显示该值信息;如果不存在,则显示该值不存在;如果想退出系统,则按提示输入命令。 2.数据结构设计 2.1定义结构体 typedef struct { int key; //定义关键字 int cn; //定义查找次数cn }hashtable; //定义哈希表类型 2.2定义结构体数组 hashtable ht[hm]; //定义哈希表空间 3.算法设计 3.1 Hash函数 该函数利用除留余数法实现“Hash 函数” #define m 19 //不大于表长的最大质数 Status h(keytype key){ //哈希函数 return(key%m); //除留余数法 }//h 3.2信息查找函数 这个函数能查找信息,它既能用于查找所输入信息,又能在建立Hash的时候被建立Hash表的函数调用。用户可以输入想要查找的值,屏幕显示相应信息。如果存在此值,屏幕显示该值信息;如果不存在,则显示该值不存在;如果想退出系统,则按提示输入命令。 Status HashSearch(hashtable ht[],keytype key){ //哈希表查找函数 int d,i; i=0; d=h(key); //求哈希地址 ht[d].cn=0; //记录元素被查找的次数 while((ht[d].key!=key)(ht[d].key!=free)(ihm)){ //元素位置冲突时,进

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档