于基hash表的班级成员管理数据结构课程设计--毕业设计

上传人:夏** 文档编号:562218337 上传时间:2023-08-01 格式:DOC 页数:21 大小:301KB
返回 下载 相关 举报
于基hash表的班级成员管理数据结构课程设计--毕业设计_第1页
第1页 / 共21页
于基hash表的班级成员管理数据结构课程设计--毕业设计_第2页
第2页 / 共21页
于基hash表的班级成员管理数据结构课程设计--毕业设计_第3页
第3页 / 共21页
于基hash表的班级成员管理数据结构课程设计--毕业设计_第4页
第4页 / 共21页
于基hash表的班级成员管理数据结构课程设计--毕业设计_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《于基hash表的班级成员管理数据结构课程设计--毕业设计》由会员分享,可在线阅读,更多相关《于基hash表的班级成员管理数据结构课程设计--毕业设计(21页珍藏版)》请在金锄头文库上搜索。

1、沈阳航空航天大学课 程 设 计 报 告课程设计名称:数据结构课程设计课程设计题目: 基于Hash表的班级成员管理院(系):计算机学院专 业: 班 级:学 号: 姓 名: 指导教师: 沈阳航空航天大学课程设计报告 目 录1 题目介绍和功能要求11.1 题目介绍11.2 功能要求11.3 基本功能12 系统功能模块结构图22.1 系统功能结构框图22.2 系统主要模块的功能说明23 使用的数据结构的描述43.1 数据结构设计43.2 数据结构用法说明44 函数的描述54.1主要函数设计54.2 主要函数流程图55程序测试和运行的结果85.1 程序测试85.2 运行结果96参考文献11附 录(关键部

2、分程序清单)12 18 沈阳航空航天大学课程设计报告 1 题目介绍和功能要求1.1 题目介绍针对本班成员以姓名为关键字设计一个Hash表,使得平均查找长度不超过R。要求:1. 自行设计至少3中Hash函数;2. 每种Hash函数采用线性探测再散列和伪随机数探测再散列进行冲突处理;针对本班成员给出每种Hash函数的平均查找长度。建立一个确定的对应关系f,使每个关键字和结构中的一个唯一的存储位置相对应。在查找时,只要根据这个对应关系f找到给定值K的像f(K)所建立的表即为哈希表。1.2 功能要求1.用三种方法创建哈希函数,分别为除留取余法,随机数法和分割法。2.当哈希地址产生冲突时,利用线性探测再

3、散列和伪随机数探测再散列进行冲突处理得到新的哈希地址,并存入哈希表中。3.给出每个用户名的查找长度和该函数的平均查找长度,并比较哪种方法最好。1.3 基本功能1. CreateHashList()建立Hash函数,并采用两种冲突处理方法进行操作。2. SearchHash()查找Hash表,将用户所输入的信息从Hash表中调出,并给出查找长度沈阳航空航天大学课程设计报告 2 系统功能模块结构图2.1 系统功能结构框图创建Hash表哈希函数模块(除留取余)哈希函数模块(随机数法)哈希函数模块(分割法)冲突处理模块冲突处理模块冲突处理模块冲突处理模块查找模块冲突处理模块冲突处理模块查找模块查找模块

4、图2.1 系统功能结构框图2.2 系统主要模块的功能说明1. 哈希模块CreateHashList();(adr为哈希地址)初始化Hash表,并创建Hash函数,并将用户姓名添加至Hash表中。1) 除留取余法:adr=(DATALISTi.k)%M;(将DATALISTi.k所存的ASCII码除以M取余所得的哈希地址赋给adr)2) 随机函数法: srand(DATALISTi.k);int adr=rand()%L;(将DATALISTi.k所存的ASCII码作为种子传入至srand函数中,并用rand函数产生L以内的随机值为哈希地址赋给adr)3) 分割法: change(DATALIS

5、T,A,i);int adr=A1*10+A2;( DATALISTi.k所存的ASCII码利用change()函数分割开,并去第二个数字和第三个数字作为哈希地址赋给adr)2. 冲突处理模块1) srand(姓名ASCII码);d=(d+rand()%L)%M;伪随机探测再散列2) d=d+1;线性探测再散列3. 查找模块SearchHash();查找用户输入姓名是否在Hash表中;给出该姓名的查找长度和该Hash函数的平均查找长度。沈阳航空航天大学课程设计报告 3 使用的数据结构的描述3.1 数据结构设计建立一个确定的对应关系f,使每个关键字和结构中的一个唯一的存储位置相对应。在查找时,只

6、要根据这个对应关系f找到给定值K的像f(K)为存储地址的结构体数组即为哈希表。哈希表举例(平方取中法):A B C Z 0 1 2 901 02 0332 60 61 62 71记录关键字(关键字)2哈希地址(217-29)AIJI0P1P2Q1Q2Q3010011001200116020612062216121622163001000012100001440000137040043105414314704473474147413044745651010210440370310314734741745表3.1 哈希表3.2 数据结构用法说明取关键字平方后的中间几位为哈希地址。这是一种比较常用的

7、构造哈希函数的方法。通常在选定哈希函数时不一定能知道关键字的全部情况,取其中哪几位也不一定合适,而一个数平方后的中间几位数和数的每一位都相关,由此使随即分布的关键字得到的哈希地址也是随即的。取的位数由表长决定。如表3.1列出了一些标识符及它们的哈希地址。沈阳航空航天大学课程设计报告 4 函数的描述4.1 主要函数设计1. Input ();作用:将用户姓名换算成ASCII码。2. CreateHashList();作用:将用户名输入至哈希表中,并用两种冲突处理方法进行冲突处理。3. SearchHash();作用:将用户输入的用户名在哈希表中进行查找,并给出查找结果和查找长度,和该函数的平均查

8、找长度。4. Print ();作用:打印出程序的主菜单和界面。5. Change();作用: 将用户姓名的ASCII码分割为多个数字并存入数组中。4.2 主要函数流程图1. CreateHashList();图4.2.1创建函数流程图 2. SearchHash();图4.2.2查找函数流程图 5程序测试和运行的结果5.1 程序测试程序开始菜单:图5.1.1 一号菜单图 输入1或者2;图5.1.2 二号菜单图输入1;图5.1.3查找图输入2;图5.1.4平均查找图5.2 运行结果给出3组数据,每组数据29个用户名,分别用三种哈希函数和两种冲突处理方法进行操作,结果如图:1.数据1:1) 除留

9、取余法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2) 随机数法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3) 分割法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2.数据2:1) 除留取余法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2) 随机数法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3) 分割法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3.数据3:1) 除留取余法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2) 随机数法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3) 分割法:(一) 线性探测再散列:(

10、二) 伪随机数探测再散列:结论:经比较可知,分割法所建立的哈希函数平均查找长度最短。沈阳航空航天大学课程设计报告 6参考文献1 高富平,张楚 . 电子商务法M. 北京:北京大学出版社,20022 Huang S C,Huang Y M,Shieh S MVibration and stability of a rotating shaft containing a transerse crackJ, J Sound and Vibration,1993,162(3):3874013谭浩强著. C程序设计( 第三版). 北京: 清华大学出版社,20054数据结构: C语言版 /严蔚敏,吴伟明编著

11、.北京:清华大学出版社,2007沈阳航空航天大学课程设计报告 附 录(关键部分程序清单)#include#include#include#define L 50 /哈希表的长度 #define RAND_MAX 10 /随机数范围#define M 47 /除留取余数值#define NAME_NO 29 /人名的个数#define SUCCESS 1#define UNSUCESS 0#define ElemType chartypedef structHash/哈希表ElemType *data;int s;/查找长度int k;/当前姓名的ASCII码Hash;Hash hlistL;t

12、ypedef structDATE/班级成员 char *data;/姓名 int k;/姓名ASCII码DATA;DATE DATALISTNAME_NO;void input() /姓名(结构体数组)初始化 char *m; int r,s0,i; DATALIST0.data=hudi; DATALIST1.data=lijing; DATALIST2.data=peiting; DATALIST3.data=yinhang; DATALIST4.data=liulu; DATALIST5.data=lishengnan; DATALIST6.data=cuililong; DATALIST7.data=songchongyuan; DATALIST8.data=xiejinhua; DATALIST9.data=mashuangmin; DATALIST10.data=wangjing; DATALIST11.data=qiyueyu; DATALIST12.data=gaozhiwei; DATALIST13.data=fuzedong; DATALIST14.data=shidailong; DATALIST15.data=sujun; DA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号