数据结构课程设计报告-哈希表设计汇.doc

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

数据结构课程设计报告 题 目: 哈希表设计 院 (系): 专 业: 班 级: 指导教师: 年 月 一、设计目的 1 二、设计内容 1 三、程序设计步骤 2 四、调试分析 11 五、测试结果 11 六、课程设计小结 16 一、设计目的 1、学会根据实际问题建立哈希表,并实现其查找功能。 2、理解哈希表的思想就是以借点的关键字K为变量,通过一个确定的函数关系f,计算出对应的函数值f(k),把这个函数值解释为结点的存储地址,将该结点存入f(k)所指示的存储位置上,这样建立的表称为哈希表。 3、学会使用除留余数法获得哈希地址。 4、学会使用再地址方法解决哈希冲突问题。 5、学会查阅书籍,自我思考,解决实际问题。 二、设计内容 1、系统名称:哈希表设计 针对自己班集体中的“人名”设计一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序。 2、要求: (1)设计一个哈希表,用来存放30个人名。 (2)要求人名为中国姓名的汉语拼音形式。 (3)要求用除留余数法构造哈希函数,用线性探查法解决哈希冲突。 (4)本设计实现的功能: ①建立哈希表并且将其显示出来。 ②通过要查找的关键字用哈希函数计算出相应的地址来查找人名。 三、程序设计步骤 1)查找功能分析说明: 本实验最关键的是实现哈希表的查找功能,因为元素的地址可能存在同义词,所以便会存在查找冲突,关键的就是解决这种冲突问题。哈希中解决冲突的方法有很多种,这里采用线性探查法解决冲突。通过构造函数d=(d+Hash(key))%p,若数据元素在存储地址d发生冲突,则放到存储地址(d1+k)%m;若又发生冲突则放到存储地址(d2+k)%m;若再发生冲突则放到存储地址(d3+k)%m;……;直到碰到第一个为空的存储地址(di+k)%m,则将数据元素存放在该存储空间。 查找的功能分析说明图如下: 2)代码分析: #include stdio.h #define HASH_LEN 50 /* 哈希表长度 */ #define M 47 /* 定义P值 */ #define NAME_NO 30 /* 人名个数 */ typedef struct NAME { char *py; /* 名字拼音 */ int k; /* 拼音所对应的整数 */ }NAME; NAME NameList[HASH_LEN]; typedef struct hterm /* 哈希表 */ { char *py; /* 名字的拼音 */ int k; /* 拼音所对应的整数 */ int si; /* 查找长度 */ }HASH; HASH HashList[HASH_LEN]; /*-----------------姓名(结构体数组)初始化----------------*/ void InitNameList() { int i; char *f; int r,s0; NameList[0].py=bianshan; NameList[1].py=dengtao; NameList[2].py=dingjun; NameList[3].py=fanyongliang; NameList[4].py=wangchen; NameList[5].py=wangrong; NameList[6].py=zhouyu; NameList[7].py=liuyuanlong; NameList[8].py=wuliang; NameList[9].py=wulingjie; NameList[10].py=wangzhaocai; NameList[11].py=yujia; NameList[12].py=zhangzhefu; NameList[13].py=zhangnannan; NameList[14].py=zhoujie; NameList[15].py=yuanhunan; NameList[16].py=lichunfeng; NameList[17].py=lishiyan; NameList[18].py=zhouxiaoqing; NameList[19].py=liuwei; NameList[20].py

文档评论(0)

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

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

1亿VIP精品文档

相关文档