课程设计试验报告材料-哈希表地设计与实现

课程设计试验报告材料-哈希表地设计与实现

ID:36743038

大小:204.31 KB

页数:34页

时间:2019-05-14

课程设计试验报告材料-哈希表地设计与实现_第1页
课程设计试验报告材料-哈希表地设计与实现_第2页
课程设计试验报告材料-哈希表地设计与实现_第3页
课程设计试验报告材料-哈希表地设计与实现_第4页
课程设计试验报告材料-哈希表地设计与实现_第5页
资源描述:

《课程设计试验报告材料-哈希表地设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实用标准数据结构课程设计题目哈希表的设计与实现作者院系信息工程学院专业信息管理与信息系统学号1514210117指导老师张慧文案大全实用标准答辩时间2016年12月18日目录数据结构课程设计01系统需求分析21.1用户需求分析31.2功能需求分析31.3数据需求分析31.4小结42系统设计42.1设计内容及要求42.2总体设计思路42.3程序详细设计流程图52.31以姓名为关键字的Hash()函数流程图52.32添加结点信息流程图:72.33按姓名查找流程图:72.34按号码查找流程图82.35主程序流程图9文案大全实用

2、标准2.4详细设计编码112.41建立节点112.42对哈希函数的定义112.43哈希查找122.44主函数123系统测试133.1上机调试133.2调试结果与分析144总结185附录181系统需求分析在信息化时代的今天,计算机技术已经是发展到一个很可观的地步了,特别是面向窗口的操作系统的出现,使得程序设计更加的容易了。在过去计算机内存容量小,CPU计算速度慢,关于程序设计中的数据结构也因此提出来很多的关于解决这方面的问题。哈希表就是其中之一,哈希表是一个由关键字与值组成的特殊的一种数据结构。它的出现主要是为了解决在结构

3、中查找记录时需要进行一系列和关键字的比较,这一类查找方法是建立在“比较”的基础上的,在顺序等的查找中,查找的效率是依赖于查找过程中所比较的次数。文案大全实用标准理想的情况是希望不经过任何的比较一次存取便能得到所查记录,那就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系,使得每个关键字和结构中一个唯一的存储位置相对应。因而在查找时只要根据这个对应关系找到给定的值的像。若结构中存在关键字和该值相等的记录,则所要查找的数就必定就是这个所查找到的记录。哈希函数是建立哈希表的一个重要的成员,它的构造方法分为以下几种:直

4、接定址法、数字分析法、平方取中法、折叠法、除留余数法、随机数法。本程序中主要用的是除余取留法,除留取余法主要是取关键字被某个不大于哈希表表长m的数p出后所得余数为哈希地址即:H(key)=keyMODp,p<=m,这是一种最简单,也是一种最常用的构造函数的方法,它不仅可以对关键字直接取模,也可在折叠、平方中等运算之后取模。在哈希表的建立中,很容易出现同义词,这些同义词的出现也导致了建立哈希表时冲突的出现,如果不解决这些冲突那么建立好的哈希表与预料的哈希表不同。关于处理冲突的方法主要有:开放定址法、再哈希法、链地址法。本程

5、序中主要用的就是链地址法莱解决冲突的。1.1用户需求分析设计一个程序能够使用哈希表实现电话号码查询系统。该系统能够从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表,能够从输入记录中查找并显示给定用户的记录,最后并且能够进行清除记录和退出功能。1.2功能需求分析(1)设计一个结点使该结点包括电话号码、用户名、地址。(2)利用用户名和电话号码为关键字建立哈希表,哈希函数用除留余数法构照。(3)利用链表法处理冲突问题。文案大全实用标准(4)查找并显示给定用户名,地址,电话号码的记录。(5)显示哈希表中的给定用户的记录

6、。(6)当完成操作后,可以退出系统。1.3数据需求分析由问题分析知,本设计主要要求分别以电话号码和用户名为关键字建立哈希表,并实现查找功能。所以本设计的核心问题是如何解决散列的问题,亦即设计一个良好的哈希表。由于结点的个数无法确认,并且如果采用线性探测法散列算法,删除结点会引起“信息丢失”的问题。所以采用链地址法散列算法。采用链地址法,当出现同义词冲突时,使用链表结构把同义词链接在一起,即同义词的存储地址不是散列表中其他的空地址。首先,解决的是定义链表结点,在链地址法中,每个结点对应一个链表结点,它由三个域组成,而由于该

7、程序需要分别用电话号码和用户名为关键字建立哈希表,所以该链表结点它是由四个域组成.name[8]、num[11]和address[20]都是char浮点型,输入输出都只能是浮点型的。采用链地址法,其中的所有同义词构成一个单链表,再由一个表头结点指向这个单链表的第一个结点。这些表头结点组成一个一维数组,即哈希表。数组元素的下标对应由散列函数求出的散列地址。1.4小结通过以上需求分析,知道了设计一个哈希表的目的和能够“实现什么功能”,为接下来的操作明确方向,罗列了需要运用到的知识,自己应该在接下来的程序设计和实现应该怎么做。

8、文案大全实用标准2系统设计2.1设计内容及要求本设计主要要求分别以电话号码和用户名为关键字建立哈希表,并实现查找功能。本程序的要求是设计散列函数,亦即设计一个良好的哈希表。本程序需要设计两个散列函数才能解决问题,程序需要分别为以电话号码和用户名为关键字建立哈希表。所以要分别以用户名、号码为关键字建立两个散列函数,要添

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。