河南工业大学实验报告_实验三 查找和排序(一)——查找_第1页
河南工业大学实验报告_实验三 查找和排序(一)——查找_第2页
河南工业大学实验报告_实验三 查找和排序(一)——查找_第3页
河南工业大学实验报告_实验三 查找和排序(一)——查找_第4页
河南工业大学实验报告_实验三 查找和排序(一)——查找_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、xxx大学实验报告课程名称 数据结构 实验项目 实验三 查找和排序(一)查找院 系 信息学院计类系 专业班级 计类1501 姓 名 学 号 指导老师 日 期 批改日期 成 绩 一 实验目的1掌握哈希函数除留余数法的应用;2. 掌握哈希表的建立;3. 掌握冲突的解决方法;4. 掌握哈希查找算法的实现。二 实验内容及要求实验内容:已知一组关键字(19,14,23,1,68,20,84,27,55,11,10,79),哈希函数定义为:H(key)=key MOD 13, 哈希表长为m=16。实现该哈希表的散列,并计算平均查找长度(设每个记录的查找概率相等)。实验要求:1. 哈希表定义为定长的数组结构

2、;2. 使用线性探测再散列或链地址法解决冲突;3. 散列完成后在屏幕上输出数组内容或链表;4. 输出等概率查找下的平均查找长度;5. 完成散列后,输入关键字完成查找操作,要分别测试查找成功与不成功两种情况。注意:不同解决冲突的方法会使得平均查找长度不同,可尝试使用不同解决冲突的办法,比较平均查找长度。(根据完成情况自选,但至少能使用一种方法解决冲突)三 实验过程及运行结果#include #include #include #define hashsize 16#define q 13int sign=2;typedef struct Hashint date;/值域int sign;/标记H

3、ashNode;void compare(HashNode H,int p,int i,int key) /线性冲突处理p+;if(Hp.sign!=0)sign+;compare(H,p,i,key);elseHp.date=keyi;Hp.sign=sign;sign=2;void Hashlist(HashNode H,int key)int p;for(int i=0;i=hashsize) return 0;if(Hn.date=num)printf(位置t 数据n);printf(%dt %dnn,n,Hn.date);return 1;elsejudge(H,num,n);int

4、 search(char num,HashNode H) /查找int n;n= num % q;if(Hn.sign=0)printf(失败);return 0;if(Hn.sign!=0&Hn.date=num)printf(位置t 数据n);printf(%dt %dnn,n,Hn.date);else if(Hn.sign!=0&Hn.date!=num)if(judge(H,num,n)=0) return 0;return 1;int main(void)int keyq=19,14,23,1,68,20,84,27,55,11,10,79;float a=0;HashNode H

5、hashsize;for(int i=0;ihashsize;i+)Hi.sign=0;Hashlist(H,key);printf(位置t 数据nn);for(int i=0;ihashsize;i+)if(Hi.sign!=0)printf(%dt %dn,i,Hi.date);elseHi.date=0;printf(%dt %dn,i,Hi.date);int num;printf(请输入查找数值(-1查找完成):n);for(int i=0;i+)scanf(%d,&num);if(num=-1)break;if(search(num,H)=0)printf(不存在n);for(int i=0;ihashsize;i+)printf(%d ,Hi.sign);a=a+Hi.sign;printf(n%2.0f,a);printf(平均查找长度:%0.2fn,a/12);return 0;四 调试情况、设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论