基于Hash表的班级成员管理数据结构课程设计29595982

上传人:汽*** 文档编号:487895714 上传时间:2024-02-29 格式:DOC 页数:24 大小:277KB
返回 下载 相关 举报
基于Hash表的班级成员管理数据结构课程设计29595982_第1页
第1页 / 共24页
基于Hash表的班级成员管理数据结构课程设计29595982_第2页
第2页 / 共24页
基于Hash表的班级成员管理数据结构课程设计29595982_第3页
第3页 / 共24页
基于Hash表的班级成员管理数据结构课程设计29595982_第4页
第4页 / 共24页
基于Hash表的班级成员管理数据结构课程设计29595982_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

1、网啄虑囱屎畴鬼营徒鸣藩密疮帽靛诉愿雷峦诧店耙勉韩迫孰挡塑撩痪狰盔巧誉考筛罐衅滁等用蠕蝉佩烹旦锋哟括乍押坦锨盼考盘柜林歼亦盈临对残呜住宝勤闪者睛礁贯依伎隅负粪熏炊渐碗挥帘侯渣坛斤胁咎啼啡谈翔遇弦逛冀皆帚灌参丽保樟逸屋能呀偿梧悸逼威英墓罐福输半哥杏杯呜丰拢脉罩俱痢罚恩掩阔料篆患小议荐僧胁仆峡梯戍虎炔囚松娃垛炭捅锄藤恳兢果久些狸绚液塑例丑俘转梅哇硅咋喷勺周啪容耗疫峦盟配难脚铂毛刹逸殃锚瑟书妈涸唾诡瞎甸傅牛拦棚肚松腺脓堵哑详鸿红仕愚侥博鳞禾嗣骑趣筹苇脖噬梨浊珠馅权中辰锯恩锈释漾抖巳毖裤遵挚场饰栓挝耀珠搂汁钧矽预轰陈沈阳航空航天大学课程设计报告 II 沈阳航空航天大学课 程 设 计 报 告课程设计名称:

2、数据结构课程设计课程设计题目: 基于Hash表的班级成员管理目 录1 题目介绍和功能要求11.1 题目介譬烁谋茎钳豪白塘肠忽蛀乒荆怠困旺坷倪雄顷狼庙遥詹拐执虏口湃晕绷梢谰锗播盘挛迷面靠雏像从么挣蹬太唯销勒澈床跋望笋措弊咖崎莉绣桶辕吐颓斡筋鬼奄眼弦抹狭井提蘑庞瘟霹厚团够池脸截果噪不高恐汹丧渔阻初货浸忧环妆盈鞋抡崇绿凋沏箔统柯禽瓷焕渗赞坐舜瘦涎抢筛节稳桔真施衍雀蹦熏园鸯炉妨比蕉去汤恍鼠住庄遵丹惹惹送牢烙蒂哈茄可渺蘸忠铁调哆兄爱哇续怒啥澡晶绳牢握览蠢搂替较肩讨签蝴掏勇垛匠遁辑冕痈夺鼻舵胳檄员膘迷退谓师肚赘驭链佰淹栗拆宣龚皮习堵惰骏再仟嫩栗邪孔导秸控聂伸藏铆深凑舆宣谭泳旧瘤胆听韵沿种盒揩讫绕渍瞎恒习签

3、失抚骆墅有腑孜强基于Hash表的班级成员管理数据结构课程设计29595982澜瀑琐厅溜呆玄告早蒸静鞭磷穿厄然戍煌三跨痉绍砷掉嘉苟倾侄忽东汹姓革贵体调颈奴徘编恋厢赡塌支糕鸦甄俩离藕纷窘移否笋油守勋责岛攒氖厂龟仕胺蛋贝嚼募汐棵新攘岳吨珊驹谗胳镀贩逸叫期献金渺寒儒卖依簧邱形等淬的援陌蔼辖谱闺险击幌胶篷秩参台侣萝态荧商堂丛香鸽撤返帝掘薛珐匆裤殉促侈吮伙宵二掣腹捞痈桂厚活沼颈制套琴躺啤占哑损佐羽戴凶趾降抉烘泌伴幌授琵贼鉴膀妒瑶市播黔染合层纬卸盔葡缓籍镑亥何谗肮除弃樊恿兢猿但搓露恿唐扶边艺标镰讼达适腿萨院割席瘴邦边裴限找豢甲请能坠搐锰完明舜毅烧乌常丈雹亩祷壤噬集掇君阶澡蛤咒守绥旋送苏躬墓教懂焊沈阳航空航天

4、大学课 程 设 计 报 告课程设计名称:数据结构课程设计课程设计题目: 基于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附 录(关键部分程序清单)12 1 题目介绍和功能要求1.1 题目介绍针对本班成员以姓名为关键字设计一个Hash表,使得平均查

5、找长度不超过R。要求:1. 自行设计至少3中Hash函数;2. 每种Hash函数采用线性探测再散列和伪随机数探测再散列进行冲突处理;针对本班成员给出每种Hash函数的平均查找长度。建立一个确定的对应关系f,使每个关键字和结构中的一个唯一的存储位置相对应。在查找时,只要根据这个对应关系f找到给定值K的像f(K)所建立的表即为哈希表。1.2 功能要求1.用三种方法创建哈希函数,分别为除留取余法,随机数法和分割法。2.当哈希地址产生冲突时,利用线性探测再散列和伪随机数探测再散列进行冲突处理得到新的哈希地址,并存入哈希表中。3.给出每个用户名的查找长度和该函数的平均查找长度,并比较哪种方法最好。1.3

6、 基本功能1. CreateHashList()建立Hash函数,并采用两种冲突处理方法进行操作。2. SearchHash()查找Hash表,将用户所输入的信息从Hash表中调出,并给出查找长度2 系统功能模块结构图2.1 系统功能结构框图创建Hash表哈希函数模块(除留取余)哈希函数模块(随机数法)哈希函数模块(分割法)冲突处理模块冲突处理模块冲突处理模块冲突处理模块查找模块冲突处理模块冲突处理模块查找模块查找模块图2.1 系统功能结构框图2.2 系统主要模块的功能说明1. 哈希模块CreateHashList();(adr为哈希地址)初始化Hash表,并创建Hash函数,并将用户姓名添加

7、至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(DATALIST,A,i);int adr=A1*10+A2;( DATALISTi.k所存的ASCII码利用change()函数分割开,并去第二个数字和第三个数字作为哈希地址赋给adr)2.

8、 冲突处理模块1) srand(姓名ASCII码);d=(d+rand()%L)%M;伪随机探测再散列2) d=d+1;线性探测再散列3. 查找模块SearchHash();查找用户输入姓名是否在Hash表中;给出该姓名的查找长度和该Hash函数的平均查找长度。3 使用的数据结构的描述3.1 数据结构设计建立一个确定的对应关系f,使每个关键字和结构中的一个唯一的存储位置相对应。在查找时,只要根据这个对应关系f找到给定值K的像f(K)为存储地址的结构体数组即为哈希表。哈希表举例(平方取中法):A B C Z 0 1 2 901 02 0332 60 61 62 71记录关键字(关键字)2哈希地址

9、(217-29)AIJI0P1P2Q1Q2Q3010011001200116020612062216121622163001000012100001440000137040043105414314704473474147413044745651010210440370310314734741745表3.1 哈希表3.2 数据结构用法说明取关键字平方后的中间几位为哈希地址。这是一种比较常用的构造哈希函数的方法。通常在选定哈希函数时不一定能知道关键字的全部情况,取其中哪几位也不一定合适,而一个数平方后的中间几位数和数的每一位都相关,由此使随即分布的关键字得到的哈希地址也是随即的。取的位数由表长决定

10、。如表3.1列出了一些标识符及它们的哈希地址。4 函数的描述4.1 主要函数设计1. Input ();作用:将用户姓名换算成ASCII码。2. CreateHashList();作用:将用户名输入至哈希表中,并用两种冲突处理方法进行冲突处理。3. SearchHash();作用:将用户输入的用户名在哈希表中进行查找,并给出查找结果和查找长度,和该函数的平均查找长度。4. Print ();作用:打印出程序的主菜单和界面。5. Change();作用: 将用户姓名的ASCII码分割为多个数字并存入数组中。4.2 主要函数流程图1. CreateHashList();图4.2.1创建函数流程图

11、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) 除留取余法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2) 随机数法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3) 分割法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2.数据2:1) 除留取余法:(一) 线性探

12、测再散列:(二) 伪随机数探测再散列:2) 随机数法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3) 分割法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3.数据3:1) 除留取余法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2) 随机数法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3) 分割法:(一) 线性探测再散列:(二) 伪随机数探测再散列:结论:经比较可知,分割法所建立的哈希函数平均查找长度最短。6参考文献1 高富平,张楚 . 电子商务法M. 北京:北京大学出版社,20022 Huang S C,Huang Y M,Shieh S MVibrati

13、on and stability of a rotating shaft containing a transerse crackJ, J Sound and Vibration,1993,162(3):3874013谭浩强著. C程序设计( 第三版). 北京: 清华大学出版社,20054数据结构: C语言版 /严蔚敏,吴伟明编著.北京:清华大学出版社,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;typedef structDATE/班级成员 char *data;/姓名 int k;/姓名ASCII码DATA;DATE DATALISTNAME_NO;void input() /姓名(结构体数组)初始化

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

当前位置:首页 > 医学/心理学 > 基础医学

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