1 / 27
文档名称:

2021年课程设计试验报告哈希表的设计与实现.doc

格式:doc   大小:284KB   页数:27页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2021年课程设计试验报告哈希表的设计与实现.doc

上传人:业精于勤 2020/11/3 文件大小:284 KB

下载得到文件列表

2021年课程设计试验报告哈希表的设计与实现.doc

文档介绍

文档介绍:数据结构课程设计题目哈希表设计和实现作者院系信息工程学院专业信息管理和信息系统学号指导老师张慧答辩时间12月18日目录数据结构课程设计 01系统需求分析 42系统设计 ()函数步骤图 : : 123系统测试 144总结 185附录 181系统需求分析在信息化时代今天,计算机技术已经是发展到一个很可观地步了,尤其是面向窗口操作系统出现,使得程序设计愈加轻易了。在过去计算机内存容量小,CPU计算速度慢,相关程序设计中数据结构也所以提出来很多相关处理这方面问题。哈希表就是其中之一,哈希表是一个由关键字和值组成特殊一个数据结构。它出现关键是为了处理在结构中查找统计时需要进行一系列和关键字比较,这一类查找方法是建立在“比较”基础上,在次序等查找中,查找效率是依靠于查找过程中所比较次数。理想情况是期望不经过任何比较一次存取便能得到所查统计,那就必需在统计存放位置和它关键字之间建立一个确定对应关系,使得每个关键字和结构中一个唯一存放位置相对应。所以在查找时只要依据这个对应关系找到给定值像。若结构中存在关键字和该值相等统计,则所要查找数就肯定就是这个所查找到统计。哈希函数是建立哈希表一个关键组员,它结构方法分为以下多个:直接定址法、数字分析法、平方取中法、折叠法、除留余数法、随机数法。本程序中关键用是除余取留法,除留取余法关键是取关键字被某个小于哈希表表长m数p出后所得余数为哈希地址即:H(key)=keyMODp,p<=m,这是一个最简单,也是一个最常见结构函数方法,它不仅能够对关键字直接取模,也可在折叠、平方中等运算以后取模。在哈希表建立中,很轻易出现同义词,这些同义词出现也造成了建立哈希表时冲突出现,假如不处理这些冲突那么建立好哈希表和预料哈希表不一样。相关处理冲突方法关键有:开放定址法、再哈希法、链地址法。本程序中关键用就是链地址法莱处理冲突。。该系统能够从键盘输入各统计,分别以电话号码和用户名为关键字建立哈希表,能够从输入统计中查找并显示给定用户统计,最终而且能够进行清除统计和退出功效。(1)设计一个结点使该结点包含电话号码、用户名、地址。(2)利用用户名和电话号码为关键字建立哈希表,哈希函数用除留余数法构照。(3)利用链表法处理冲突问题。(4)查找并显示给定用户名,地址,电话号码统计。(5)显示哈希表中给定用户统计。(6)当完成操作后,能够退出系统。,本设计关键要求分别以电话号码和用户名为关键字建立哈希表,并实现查找功效。所以本设计关键问题是怎样处理散列问题,亦即设计一个良好哈希表。因为结点个数无法确定,而且假如采取线性探测法散列算法,删除结点会引发“信息丢失”问题。所以采取链地址法散列算法。采取链地址法,当出现同义词冲突时,使用链表结构把同义词链接在一起,即同义词存放地址不是散列表中其它空地址。首先,处理是定义链表结点,在链地址法中,每个结点对应一个链表结点,它由三个域组成,而因为该程序需要分别用电话号码和用户名为关键字建立哈希表,[8]、num[11]和address[20]全部是char浮点型,输入输出全部只能是浮点型。采取链地址法,其中全部同义词组成一个单链表,再由一个表头结点指向这个单链表第一个结点。这些表头结点组成一个一维数组,即哈希表。数组元素下标对应由散列函数求出散列地址。,知道了设计一个哈希表目标和能够“实现什么功效”,为接下来操作明确方向,罗列了需要利用到知识,自己应该在接下来程序设计和实现应该怎么做。,并实现查找功效。本程序要求是设计散列函数,亦即设计一个良好哈希表。本程序需要设计两个散列函数才能处理问题,程序需要分别为以电话号码和用户名为关键字建立哈希表。所以要分别以用户名、号码为关键字建立两个散列函数,要添加用户信息,即要有实现添加结点功效函数,所以要设计一个必需包含一个输入结点信息、添加结点函数;要实现查找函数,则必需包含一个查找结点函数;另外还有一个必不可少就是运行以后要有一个主菜单,即要设计一个主函