数据结构Hash查找.doc

上传人:仙人指路1688 文档编号:2398072 上传时间:2023-02-17 格式:DOC 页数:4 大小:30.50KB
返回 下载 相关 举报
数据结构Hash查找.doc_第1页
第1页 / 共4页
数据结构Hash查找.doc_第2页
第2页 / 共4页
数据结构Hash查找.doc_第3页
第3页 / 共4页
数据结构Hash查找.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据结构Hash查找.doc》由会员分享,可在线阅读,更多相关《数据结构Hash查找.doc(4页珍藏版)》请在三一办公上搜索。

1、实验五 hash查找题目:编制一个利用hash表进行查找的程序班级: 计科0906 姓名: 马飞扬 学号: 200948140622 完成日期: - -一:需求分析1:利用hash函数建立哈希表,并采用链地址法处理冲突。然后进行查找操作验证算法,表长由客户输入。二:概要设计1:在hash函数中p值采用了表长值,虽然会增加冲突发生的可能性,但能够保证数据较均匀的分布于整个hash表中,在大量数据的情况下不至于浪费存储空间。2:采用链地址法处理冲突虽然造成基于指针的操作较复杂,但能够提高程序效率,降低时间复杂度。3:若要由客户来决定表长,则必须用到动态开辟的知识,即动态开辟存储空间。三:详细设计#

2、includeusing namespace std;struct hashlian/定义hash表的结点存储结构int key;/存储关键字hashlian*next;/地址指针;void main()int m=0;/int i=0;/int j=0;/辅助变量int weizhi=0;/记录元素对应的结点位置int find=0;/记录待查找的元素int *data;/存储要操作的数据hashlian*p1=NULL;/hashlian*p2=NULL;/指向结点的辅助指针hashlian*hash=NULL;/coutm;/输入hash表长hash=new hashlianm;/存储h

3、ash表data=new intm;/动态开辟存储空间for(int ii=0;iim;ii+)/对hash表进行初始化hashii.key=-1;hashii.next=NULL;cout输入数据(退出输入-1)!endl;/coutdatai;/while(datai!=-1)/循环输入待操作的数据if(i=m-1) i+; cout第i+1datai;elsecout越界了!endl;j=i;for(i=0;inext;while(p2!=NULL)/控制p2始终指向最后一个结点的下一位p1=p2;p2=p2-next;p2=new hashlian;p2-key=datai;/动态申请

4、空间进行存储后再插入p2-next=NULL;p1-next=p2;coutfind;weizhi=find%m;/定位待查找数据的应存储位置p1=&hashweizhi;while(p1!=NULL)/从第一个位置开始循环查找直到最后一个结点的下一位if(p1-key=find)cout查找成功!next;if(p1=NULL)/全部查找后仍没有则查找失败cout查找失败!endl; 四:调试分析在本次试验中主要是在选择hash函数中的p值时多考虑了一些因素,然后在基于链操作时遇到了一些小麻烦,其它的倒很简单。由于时间比较紧迫,所以仅仅实现了查找操作,对于插入和删除,有时间还要练一下。五:运行结果六:实验环境1:window xp 系统下2:visual c+ 6.0 编程环境七:实验体会通过本次试验掌握了hash查找算法,但由于时间比较仓促,所以除此之外收获并不大,有时间的话这方面的内容还要在练一下。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号