- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:数据结构课程设计
课程设计题目: 基于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 函数的描述
您可能关注的文档
- 古建修缮工程施工-组织设计.doc
- 古龙地区复杂储层流体识别方法研究-论文.doc
- 固定垫板冲裁模具设计本科毕业设计(论文).doc
- 固定式多头自动螺丝装配设备的设计本科毕业设计(论文).doc
- 固体物处理与资源化实习报告-昆明市盘龙区垃圾收运路线固废实习.doc
- 固原压气站工艺设计本科生毕业(设计)论文.doc
- 刮板输送机(本科)毕业论文.doc
- 关于校园超市的-商业计划书.doc
- 关于中国社会福利的调查研究报告-暑期社会实践论文.doc
- 观山公园工程施工-组织设计.doc
- 基于ir2167的电子镇流器的设计本科毕业(设计)论文.doc
- 基于j2ee的酒店预订系统设计与开发(本科)毕业论文设计.doc
- 基于j2ee平台电子商务系统本科毕业设计(论文).doc
- 基于java的餐饮管理系统本科毕业设计(论文)论文.doc
- 基于jsp仓库管理系统的设计与实现(本科)毕业论文.doc
- 基于labview的图像测量分析系统设计本科毕业设计(论文).doc
- 基于matlab的2ask通信系统设计与仿真本科毕业(设计)论文.doc
- 基于matlab的fir滤波器语音信号去噪本科毕业设计(论文).doc
- 基于matlab的车牌分割及数字识别系统本科毕业设计(论文).doc
- 基于matlab的车牌识别系统设计(本科)毕业论文.doc
最近下载
- 七年级下学期体育与健康教案全集(54课时).doc VIP
- 2025年绿色矿山建设技术挑战与机遇报告.docx
- 住房公积金贷款全权代理委托书范本.docx VIP
- 2024-2025学年人美版(2024)美术小学一年级上册教学设计(附教材目录).docx VIP
- 【北师大版】二年级《劳动实践指导手册》第1课《清洗我的小水杯》课件.pptx VIP
- 高中通用技术作品实验报告.doc VIP
- 急性有机磷农药中毒诊治.ppt VIP
- JB_T 7334-2016 手拉葫芦.pdf VIP
- 燃气管道施工方案.doc VIP
- DB15T 3962.3-2025绿色矿山建设规范 第3部分:黄金行业.pdf VIP
文档评论(0)