散列表的设计与实现7046534

散列表的设计与实现7046534

ID:19529657

大小:277.50 KB

页数:10页

时间:2018-10-03

散列表的设计与实现7046534_第1页
散列表的设计与实现7046534_第2页
散列表的设计与实现7046534_第3页
散列表的设计与实现7046534_第4页
散列表的设计与实现7046534_第5页
资源描述:

《散列表的设计与实现7046534》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、题目:散列表的设计与实现《散列表的设计与实现》课程设计报告姓名:张洁学号:1021112432完成时间:2012年6月14号(一)需求分析说明:设计散列表实现电话号码查找系统1) 设每个记录有下列数据项:电话号码、用户名、地址;2) 从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3) 采用一定的方法解决冲突;4) 查找并显示给定电话号码的记录;5) 查找并显示给定用户名的记录。(二)总体设计:10东华理工大学软件学院软件工程系录入子系统查询子系统姓名地址号码姓名查找号码查询电话号码管理系统功能模块图2-1电话管理系统要整个系统的主

2、要分为两大模块(如功能模块图2-1),在图中我们可以清楚的看到录入模块和查询模块。录入模块可根据系统提示的内容填写信息。填完相应的信息,可按enter键进行储存。我们分别以姓名和电话号码作为关键字,用Hash函数运算出一个相对应的值,把这个值作为结点的存储地址,分别存入姓名散列表和电话号码散列表的对应位置。查询模块分为姓名查询和号码查询。姓名查询可有一个姓名查到多个记录。号码查询是一一映射。查找时,通过所要寻找的关键字用同样的Hash函数计算地址,判断存的内容是否跟关键字是否一样,若一样则记录找到则可找到你要查找的内容。否则无此记录。(一)详细

3、设计:1,.键盘输入信息:voidTel::getin(Record*a){cout<<"输入要添加的个数:"<>NUM_BER;inti;for(i=0;i>a[i].name;cout<<"请输入第"<>a[i].tel;cout<<"请输入第"<>a[i].add;10

4、东华理工大学软件学院软件工程系}}通过设定一个void函数来处理输入信息,运用指针来确定数据的存储位置,用数组来排放存储单元的数据。2.显示输入的用户信息voidTel::ShowInformation(Record*a){inti;for(i=0;i

5、=fold(str);m=n%HASHSIZE;returnm;}intTel::Hash2(NAstr){longn;intm;n=atoi(str);m=n%HASHSIZE;returnm;}4.冲突处理函数,采用二次探测再散列法解决冲突Statuscollision(intp,int&c){inti,q;i=c/2+1;while(i=0)returnq;elsei=c/2+1;}else{q=(p-i*

6、i)%HASHSIZE;c++;if(q>=0)returnq;elsei=c/2+1;}}returnUNSUCCESS;}5.建表,以人的姓名为关键字,建立相应的散列表//若哈希地址冲突,进行冲突处理voidTel::CreateHash1(HashTable*H,Record*a){inti,p=-1,c,pp;for(i=0;ielem[pp]!=NULL){pp=collision(p,c);if(pp<0){cout<<"第"<

7、+1<<"记录无法解决冲突"<elem[pp]=&(a[i]);//求得哈希地址,将信息存入H->count++;cout<<"第"<count<

8、e*H,int&c)10东华理工大学软件学院软件工程系{NAstr;cout<<"请输入要查找记录的姓名:"<>str;intp,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。