- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Hash表的班級成员管理数据结构课程设计稿29595982
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:数据结构课程设计
课程设计题目: 基于Hash表的班级成员管理
目 录
1 题目介绍和功能要求 1
1.1 题目介绍 1
1.2 功能要求 1
1.3 基本功能 1
2 系统功能模块结构图 2
2.1 系统功能结构框图 2
2.2 系统主要模块的功能说明 2
3 使用的数据结构的描述 4
3.1 数据结构设计 4
3.2 数据结构用法说明 4
4 函数的描述 5
4.1 主要函数设计 5
4.2 主要函数流程图 5
5程序测试和运行的结果 8
5.1 程序测试 8
5.2 运行结果 9
6参考文献 11
附 录(关键部分程序清单) 12
1 题目介绍和功能要求
1.1 题目介绍
针对本班成员以姓名为关键字设计一个Hash表,使得平均查找长度不超过R。
要求:
自行设计至少3中Hash函数;
每种Hash函数采用线性探测再散列和伪随机数探测再散列进行冲突处理;
针对本班成员给出每种Hash函数的平均查找长度。
建立一个确定的对应关系f,使每个关键字和结构中的一个唯一的存储位置相对应。在查找时,只要根据这个对应关系f找到给定值K的像f(K)所建立的表即为哈希表。
1.2 功能要求
1. 用三种方法创建哈希函数,分别为除留取余法,随机数法和分割法。
2. 当哈希地址产生冲突时,利用线性探测再散列和伪随机数探测再散列进行冲突处理得到新的哈希地址,并存入哈希表中。
3. 给出每个用户名的查找长度和该函数的平均查找长度,并比较哪种方法最好。
1.3 基本功能
CreateHashList() 建立Hash函数,并采用两种冲突处理方法进行操作。
SearchHash() 查找Hash表,将用户所输入的信息从Hash表中调出,并给出查找长度
2 系统功能模块结构图
2.1 系统功能结构框图
图2.1 系统功能结构框图
2.2 系统主要模块的功能说明
哈希模块
CreateHashList();(adr为哈希地址)
初始化Hash表,并创建Hash函数,并将用户姓名添加至Hash表中。
除留取余法:adr=(DATALIST[i].k)%M;(将DATALIST[i].k所存的ASCII码除以M取余所得的哈希地址赋给adr)
随机函数法: srand(DATALIST[i].k);
int adr=rand()%L;(将DATALIST[i].k所存的ASCII码作为种子传入至srand函数中,并用rand函数产生L以内的随机值为哈希地址赋给adr)
分割法: change(DATALIST,A,i);
int adr=A[1]*10+A[2];( DATALIST[i].k所存的ASCII码利用change()函数分割开,并去第二个数字和第三个数字作为哈希地址赋给adr)
冲突处理模块
srand(姓名ASCII码);
d=(d+rand()%L)%M;
伪随机探测再散列
d=d+1;
线性探测再散列
查找模块
SearchHash();
查找用户输入姓名是否在Hash表中;
给出该姓名的查找长度和该Hash函数的平均查找长度。
3 使用的数据结构的描述
3.1 数据结构设计
建立一个确定的对应关系f,使每个关键字和结构中的一个唯一的存储位置相对应。在查找时,只要根据这个对应关系f找到给定值K的像f(K)为存储地址的结构体数组即为哈希表。
哈希表举例(平方取中法):
A B C …… Z 0 1 2 …… 9
01 02 03 32 60 61 62 71
记录 关键字 (关键字)2 哈希地址(217-29) A
I
J
I0
P1
P2
Q1
Q2
Q3 0100
1100
1200
1160
2061
2062
2161
2162
2163 0010000
1210000
1440000
1370400
4310541
4314704
4734741
4741304
4745651 010
210
440
370
310
314
734
741
745 表3.1 哈希表
3.2 数据结构用法说明
取关键字平方后的中间几位为哈希地址。这是一种比较常用的构造哈希函数的方法。通常在选定哈希函数时不一定能知道关键字的全部情况,取其中哪几位也不一定合适,而一个数平方后的中间几位数和数的每一位都相关,由此使随即分布的关键字得到的哈希地址也是随即的。取的位数由表长决定。如表3.1列出了一些标识符及它们的哈希地址。
4 函数的描述
主要函数设计
Input ();
作用:将用户姓名换算成ASCII
您可能关注的文档
- 基于DSP帶同步锁相的逆变器控制系统设计稿毕业设计稿.doc
- 基于DSP的IIR數字滤波器的设计稿毕业设计稿.doc
- 基于DSP永磁同步電机控制毕业设计稿专业论文.doc
- 基于DSP和AD9857的數字上变频设计稿硕士学位专业论文.doc
- 基于DSP的三相交流電机变频调速控制器的设计稿毕业设计稿专业论文.doc
- 基于DSP控制的感應电机变频调速系统上位机程序使用说明毕业设计稿专业论文.doc
- 基于DSP的交流電机VVVF控制器的设计稿毕业设计稿.doc
- 基于DSP無刷直流电机控制系统的设计稿与仿真硕士学位专业论文27245754.doc
- 基于DSP的多通道數据采集电路毕业设计稿.doc
- 基于DSP的光伏并網逆变器硬件电路的设计稿毕业设计稿专业论文.doc
- 2025至2030中国婴儿拉式蚊帐行业发展现状及发展趋势与投资风险报告.docx
- 2025至2030中国半导体陶瓷靶行业项目调研及市场前景预测评估报告.docx
- 2025至2030中国果汁行业供需趋势及投资风险报告.docx
- 2025至2030中国双节距滚子链行业项目调研及市场前景预测评估报告.docx
- 2025至2030全球及中国电子电气中的cPDM行业项目调研及市场前景预测评估报告.docx
- 2025至2030工业风幕行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至20305G技术行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030钛合金行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国冶金工程施工总承包行业运营态势与投资前景调查研究报告.docx
- 2025至2030铁路IT支出行业产业运行态势及投资规划深度研究报告.docx
文档评论(0)