【精编完整版】基于Hash表的班级成员管理_数据结构毕业论文.docVIP

  • 1
  • 0
  • 约6千字
  • 约 21页
  • 2017-09-20 发布于河北
  • 举报

【精编完整版】基于Hash表的班级成员管理_数据结构毕业论文.doc

【精编完整版】基于Hash表的班级成员管理_数据结构毕业论文.doc

(此文档为word格式,下载后您可任意编辑修改!) 沈阳航空航天大学 课 程 设 计 报 告 课程设计名称:数据结构课程设计 课程设计题目: 基于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 010 210 440 370 310 314 734 741 745 表3.1 哈希表 3.2 数据结构用法说明 取关键字平方后的中间几位为哈希地址。这是一种比较常用的构造哈希函数的方法。通常在选定哈希函数时不一定能知道关键字的全部情况,取其中哪几位也不一定合适,而一个数平方后的中间几位数和数的每一位都相关,由此使随即分布的关键字得到的哈希地址也是随即的。取的位数由表长决定。如表3.1列出了一些标识符及它们的哈希地址。 4 函数的描述 主要函数设计 Input (); 作用:将用户姓名换算成ASCII码。 CreateHa

文档评论(0)

1亿VIP精品文档

相关文档