散列表的设计与实现 课程设计

散列表的设计与实现 课程设计

ID:4101487

大小:116.50 KB

页数:11页

时间:2017-11-28

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

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

1、课程设计课程设计名称:数据结构课程设计专业班级:计科06级4班学生姓名:翟鹏飞学号:20064140419指导教师:白浩课程设计时间:2008.6.21-2008.6.27计算机科学专业课程设计任务书学生姓名翟鹏飞专业班级计科0604学号20064140419题目散列表的设计与实现课题性质A.工程设计课题来源D.自拟课题指导教师白浩同组姓名无主要内容设计散列表实现电话号码查找系统。任务要求1) 设每个记录有下列数据项:电话号码、用户名、地址;2) 从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3) 采用一定的方法解决冲突;4) 查找并显示

2、给定电话号码的记录;5) 查找并显示给定用户名的记录。参考文献《C语言程序设计》(第三版)谭浩强清华大学出版社出版《数据结构(C语言版)》赵坚、姜梅主编中国水利水电出版社《数据结构(C语言版)》严蔚敏吴伟民清华大学出版社《数据结构与算法》熊岳山刘越电子工业出版社审查意见指导教师签字:教研室主任签字:2008年5月8日1需求分析1) 从键盘输入各记录(每个记录有下列数据项:电话号码、用户名、地址),分别以电话号码和用户名为关键字建立散列表;2) 采用一定的方法解决哈西冲突;3) 查找并显示给定电话号码的记录;4) 查找并显示给定用户名的记录。2概要设计建

3、立哈希表,表中每一个节点包括电话号码、用户名、地址和next指针,用于向其中输入信息。建立哈西函数,有两种,分别为姓名哈希函数(用用户名作为关键字)和电话号码哈希函数(用电话号码作为关键字)。解决哈希冲突的方法有四种,这里采用的是开放定址法。查找函数也有两种1:以姓名为关键字查找;2:以电话号码为关键字查找。大体内容如下:Main函数输入信息apend()姓名散列结果list2()查找电话号码散列结果list()清空信息按号码查询find(num)按姓名查询find2(name退出3运行环境(1)WindowsVista/2003/XP(2)Visua

4、lc++6.04开发工具和编程语言Visualc++6.0C语言5详细设计此部分包括源代码和代码中的注释部分#include"iostream.h"#include"string.h"#include"fstream.h"#defineNULL0unsignedintkey;unsignedintkey2;int*p;structnode//建节点(包括的信息有姓名,地址,电话号码,next指针){charname[8],address[20];charnum[11];node*next;};typedefnode*pnode;typedefnode*

5、mingzi;node**phone;node**nam;node*a;voidhash(charnum[11])//号码哈希函数(以电话号码为关键字){inti=3;key=(int)num[2];while(num[i]!=NULL)//当num[i]不为NULL时{key+=(int)num[i];i++;}key=key%20;//key对20求余}voidhash2(charname[8])//姓名哈希函数(以姓名为关键字){inti=1;key2=(int)name[0];while(name[i]!=NULL)//当num[i]不为NUL

6、L时{key2+=(int)name[i];i++;}key2=key2%20;//key2对20求余}node*input()//作用为输入信息{node*temp;temp=newnode;//temp为node类型temp->next=NULL;cout<<"输入姓名:"<>temp->name;//输入姓名cout<<"输入地址:"<>temp->address;//输入地址cout<<"输入电话:"<>temp->num;//输入电话号码returntemp;//返回temp}int

7、apend()//作用为添加节点{node*newphone;node*newname;newphone=input();//调用输入信息的函数newname=newphone;newphone->next=NULL;newname->next=NULL;hash(newphone->num);//调用以电话号码为关键字的哈西函数hash2(newname->name);//调用以姓名为关键字的哈西函数newphone->next=phone[key]->next;phone[key]->next=newphone;newname->next=nam[

8、key2]->next;nam[key2]->next=newname;return0;}vo

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

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

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