数据结构课程设计约瑟夫环

2019-02-15 11:14

武汉轻工大学 数学与计算机学院

题 目:专 业:班 级:学 号:姓 名:指导老师:

《数据结构》 课程设计说明书

哈希表设计 2014年 12 月 24 日

目录

一、 问题描述

二、 需求分析

1、 基本要求

2、 测试数据

三、 程序流程

四、 详细设计

五、 测试分析

六、 课程设计总结

一、 问题描述

针对班级同学的“名字”设计一个哈希表,使得平均查

找长度不超过R,完成相应的建表和查表程序。

二、 需求分析

基本要求:

假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突。

测试数据:

取班级同学的30个人的姓名。

三、 程序流程

开始 初始化学生姓名表 输入三十位学生的姓名 根据姓名表生成哈希表 判断所需要的功能 1.显示姓名表 2.显示哈希表 3.查找 4.结束查找 结束 图1.1程序的整体流程

姓名表的创建开始 哈希表的创建开始

表是否溢出 N 表是否 溢出 N Y 对姓名赋值添加到姓名表 将姓名拼音转化为ASCII码并作为 关键字 姓名表的创建开始 图1.2姓名表的创建

Y 对哈希表初始化 表是否溢N 出 Y 用伪随机再探测法解决冲突,对哈希表进行赋值 哈希表的创建开始 图1.3哈希表创建 哈希表的查找开始 char name[20] = { 0 }; int s = 0, sum = 1, adr; scanf_s(\name,20); for (j = 0; j<20; j++) s += toascii(name[j]); adr = s%P;j=0; printf(\姓名:%s 关键字:%d 查找长度为: 1\\n\HashTable[adr].py, s); Y HashTable[adr].m==s&&!strcmp(HashTable[adr].py, name N HashTable[adr].m == 0 while (1){ adr = (adr + d[j++]) % HASH_LEN; sum = sum + 1; if (HashTable[adr].m == 0){ printf(\没有想要查找的人!\\n\if(HashTable[adr].m==s&&!strcmp(HashTable[adr].py, name)){printf(\姓名:%s 关键字:%d 查找长度为:%d\\n\HashTable[adr].py,s, Y 结束

printf(\没有想要查找的人!\\n\sum);break;} 结束 结束 图1.4哈希表的查找


数据结构课程设计约瑟夫环.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(信息学奥赛辅导)程序设计试题汇编(答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: