资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
华北电力大学实验报告实验名称哈希图的设计与查找课程名称算法与数据结构实验专业班级:学生姓名:学号:成绩:指导教师:实验日期:一、实验目的及要求设计哈希表实现电话号码查询系统:1) 设每个记录有如下数据项:电话号码、用户名、地址;2) 从键盘输入各个记录,以电话号码为关键字建立哈希表,哈希表的长度为8;3) 用链地址法解觉冲突;4) 显示建立好的哈希表,并且对其进行查找。二、所用仪器、设备VC+ 6.0 环境三、实验说明1采用除留余数法进行哈希表的散列,即以电话号码作为主关键字,将电话号码的 11位相加,按照模7取余;2解决冲突用链地址法。四、实验源代码#include viostream#include using namespace std;#define M 8class Studentchar name10;char address20;public:char tel12;void getname()coutvv用户名:;cinname;void gettel()coutvv电话(请输入8位或11位电话号码):;cintel;while(strlen(tel)!=11 &strlen(tel)!=8)coutvv请输入正确号码:;cintel;void getaddress() coutvv地址:; cinaddress;void print()vv地址:vvaddressvvendl;coutvv用户名:vvnamevvtel;int digit=0;while(*p!=0)if(*p=0 )&(*phm,st-tel);t-ind=st; t-next=gdigit;gdigit=t;void outlist(jd *g)/ 输出哈希表coutvv输出哈希表:vvendl;for(int i=0;ivM;i+)if(gi!=NULL) coutvvivv:;jd *q=gi;while(q!=NULL)coutvv vvq-hm; q=q_next;coutvvendl;void serlist(jd *g,char a)查找char *p=a;int digit=0;while(*p!=0)if(*p=0 )&(*pv=9)digit+=(*p-O);p+;digit=digit%7;if(gdigit=NULL)coutvv查找失败vvendl;elsejd *q=gdigit; while(q!=NULL)if(strcmp(q-hm,a)=O) break;q=q-next;if(q!=NULL)coutvv查找成功!vvendl; coutvv用户信息:vvendl; q-ind-print();elsecoutvv查找失败!vvendl;void main()主函数int num=l;char ch;char b12;jd *gM;for(int i=O;ivM;i+) gi=NULL;coutvv请输入学生信息:vvendl;docoutvvnumvv:;Student *s=new Student; s-getname();s-gettel(); s-getaddress();inlist(g,s);num+;coutvv继续输入吗(Y/N)?; cinch; while(ch=Yllch=y); outlist(g);coutvv请输入要查找的号码:; cinb;serlist(g,b);五、实验结果与数据处理耳壬土 1石亠呷户名;张三|j| = 13506675324 鈿密A吗WHF 蠱f 宦续输真吗?y:用总宅:王卫材J位或好位电话号 = 1674325GGG9吨:李四请龜人&位或“位电话号= 14756234579址吠津 刖S吗 合希务125066753241475623457916743256663 狗墨查找的号石 找成功辛冃户名;李四 电话;14?5S234579 地址二北京 ress any key to continue六、讨论与结论本程序的功能相较于其他辨认的稍微少点,且开始查找后也不能重新添加,但实现 了基本的存储查找,让我将学到的东西灵活的应用了出来,对数据结构这门课程也有了 更深的了解,也希望以后能更加努力的学。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号