没有合适的资源?快使用搜索试试~ 我知道了~
课程设计报告试验报告-哈希表的设计实现分析.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 187 浏览量
2021-10-06
08:30:29
上传
评论
收藏 284KB DOC 举报
温馨提示
试读
25页
课程设计报告试验报告-哈希表的设计实现分析.doc
资源推荐
资源详情
资源评论
- -
数据构造课程设计
题目哈希表的设计与实现
作者
院系信息工程学院
专业信息管理与信息系统
学号 1514210117
指导教师慧
辩论时间 2016
年
12
月
18
日
- - word.zl-
- -
目录
数据构造课程设计...................................................................................................................................0
1 系统需求分析.........................................................................................................................................2
1.1 用户需求分析.............................................................................................................................3
1.2 功能需求分析.............................................................................................................................3
1.3 数据需求分析.............................................................................................................................3
1.4 小结.............................................................................................................................................4
2 系统设计.................................................................................................................................................4
2.1 设计容及要求.............................................................................................................................4
2.2 总体设计思路.............................................................................................................................4
2.3 程序详细设计流程图.................................................................................................................5
2.31 以为关键字的 Hash()函数流程图...................................................................................5
2.32 添加结点信息流程图:......................................................................................................7
1-2 添加结点信息流程图:........................................................................................................7
2.33 按查找流程图:..................................................................................................................8
2.34 按查找流程图...................................................................................................................9
2.35 主程序流程图...................................................................................................................9
2.4 详细设计编码............................................................................................................................11
2.41 建立节点..........................................................................................................................11
2.42 对哈希函数的定义.........................................................................................................11
2.43 哈希查找.........................................................................................................................12
2.44 主函数.............................................................................................................................12
3 系统测试...............................................................................................................................................13
3.1 上机调试....................................................................................................................................13
3.2 调试结果与分析.......................................................................................................................14
4 总结.......................................................................................................................................................18
5 附录.......................................................................................................................................................19
- - word.zl-
- -
1 系统需求分析
在信息化时代的今天,计算机技术已经是开展到一个很可观的地步了,特别是
面向窗口的操作系统的出现,使得程序设计更加的容易了。在过去计算机存容量小,
CPU 计算速度慢,关于程序设计中的数据构造也因此提出来很多的关于解决这方
面的问题。哈希表就是其中之一,哈希表是一个由关键字与值组成的特殊的一种数
据构造。它的出现主要是为了解决在构造中查找记录时需要进展一系列和关键字的
比拟,这一类查找方法是建立在“比拟〞的根底上的,在顺序等的查找中,查找的效
率是依赖于查找过程中所比拟的次数。
理想的情况是希望不经过任何的比拟一次存取便能得到所查记录,那就必须在
记录的存储位置和它的关键字之间建立一个确定的对应关系,使得每个关键字和构
造中一个唯一的存储位置相对应。因而在查找时只要根据这个对应关系找到给定的
值的像。假设构造中存在关键字和该值相等的记录,那么所要查找的数就必定就是
这个所查找到的记录。
哈希函数是建立哈希表的一个重要的成员,它的构造方法分为以下几种:
直接定址法、数字分析法、平方取中法、折叠法、除留余数法、随机数法。
本程序中主要用的是除余取留法,除留取余法主要是取关键字被某个不大于哈
希表表长 m 的数 p 出后所得余数为哈希地址即:H(key)=key MOD p, p<=m,
这是一种最简单,也是一种最常用的构造函数的方法,它不仅可以对关键字直接取
模,也可在折叠、平方中等运算之后取模。
在哈希表的建立中,很容易出现同义词,这些同义词的出现也导致了建立哈希表
时冲突的出现,如果不解决这些冲突那么建立好的哈希表与预料的哈希表不同。关
于处理冲突的方法主要有:开放定址法、再哈希法、链地址法。本程序中主要用的
就是链地址法莱解决冲突的。
- - word.zl-
- -
1.1 用户需求分析
设计一个程序能够使用哈希表实现查询系统。该系统能够从键盘输入各记录,
分别以和用户名为关键字建立哈希表,能够从输入记录中查找并显示给定用户的记
录,最后并且能够进展去除记录和退出功能。
1.2 功能需求分析
〔1〕设计一个结点使该结点包括、用户名、地址。
〔2〕利用用户名和为关键字建立哈希表,哈希函数用除留余数法构照。
〔3〕利用链表法处理冲突问题。
〔4〕查找并显示给定用户名,地址,的记录。
〔5〕显示哈希表中的给定用户的记录。
〔6〕当完成操作后,可以退出系统。
1.3 数据需求分析
由问题分析知,本设计主要要求分别以和用户名为关键字建立哈希表,并实现
查找功能。所以本设计的核心问题是如何解决散列的问题,亦即设计一个良好的哈
希表。由于结点的个数无法确认,并且如果采用线性探测法散列算法,删除结点会
引起“信息丧失〞的问题。所以采用链地址法散列算法。采用链地址法,当出现同
义词冲突时,使用链表构造把同义词在一起,即同义词的存储地址不是散列表中其
他的空地址。
首先,解决的是定义链表结点,在链地址法中,每个结点对应一个链表结点,
它由三个域组成,而由于该程序需要分别用和用户名为关键字建立哈希表,所以该
链表结点它是由四个域组成.name[8] 、num[11]和 address[20]都是 char 浮点
型,输入输出都只能是浮点型的。
采用链地址法,其中的所有同义词构成一个单链表,再由一个表头结点指向这
个单链表的第一个结点。这些表头结点组成一个一维数组,即哈希表。数组元素的
下标对应由散列函数求出的散列地址。
- - word.zl-
- -
1.4 小结
通过以上需求分析,知道了设计一个哈希表的目的和能够“实现什么功能〞,
为接下来的操作明确方向,罗列了需要运用到的知识,自己应该在接下来的程序设
计和实现应该怎么做。
2 系统设计
2.1 设计容及要求
本设计主要要求分别以和用户名为关键字建立哈希表,并实现查找功能。本程
序的要设计散列函数,亦即设计一个良好的哈希表。本程序需要设计两个散列函数
才能解决问题,程序需要分别为以和用户名为关键字建立哈希表。所以要分别以用
户名、为关键字建立两个散列函数,要添加用户信息,即要有实现添加结点的功能
的函数,所以要设计一个必须包括一个输入结点信息、添加结点的函数;
要实现查找函数,那么必须包括一个查找结点的函数;
另外还有一个必不可少的就是运行之后要有一个主菜单,即要设计一个主函数
〔main()〕。
2.2 总体设计思路
本设计涉及到的数据构造为:哈希表。要求输入、用户名、地址三个信息,并
要求分别以和用户名为关键字进展查找,所以本问题要用到两个哈希函数,进展哈
希查找。
在链地址法中,每个结点对应一个链表结点,它由三个域组成,而由于该程序需
要分别用和用户名为关键字建立哈希表,所以该链表结点它是由四个域组成,链地
址法结点构造如图:
- - word.zl-
name[
8]
num[11
]
address[20] next
剩余24页未读,继续阅读
资源评论
gjmm89
- 粉丝: 13
- 资源: 19万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功