河南工业大学实验报告_实验三 查找和排序(一)——查找
更新时间:2024-07-11 14:16:01 阅读量: 综合文库 文档下载
- 数电实验报告实验三推荐度:
- 相关推荐
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. 使用线性探测再散列或链地址法解决冲突;3. 散列完成后在屏幕上输出数组内容或链表;4. 输出等概率查找下的平均查找长度;5. 完成散列后,输入关键字完成查找操作,要分别测试查找成功与不成功两种情况。
注意:不同解决冲突的方法会使得平均查找长度不同,可尝试使用不同解决冲突的办法,比较平均查找长度。(根据完成情况自选,但至少能使用一种方法解决冲突)
三 实验过程及运行结果
#include
#define q 13 int sign=2;
typedef struct Hash {
int date; //值域 int sign; //标记 }HashNode;
void compare(HashNode H[],int p,int i,int key[]) //线性冲突处理 {
p++;
if(H[p].sign!=0) {
sign++;
compare(H,p,i,key); } else {
H[p].date=key[i]; H[p].sign=sign; sign=2; } }
void Hashlist(HashNode H[],int key[]) {
int p;
for(int i=0;i<12;i++) {
p=key[i]%q;
if(H[p].sign==0) {
H[p].date=key[i]; H[p].sign=1; } else
compare(H,p,i,key);
} }
int judge(HashNode H[],int num,int n) //{
查找冲突处理 n++;
if(n>=hashsize) return 0; if(H[n].date==num) {
printf(\位置\\t 数据\\n\
printf(\ return 1; } else
judge(H,num,n); }
int search(char num,HashNode H[]) //查找 {
int n;
n= num % q;
if(H[n].sign==0) {
printf(\失败\ return 0; }
if(H[n].sign!=0&&H[n].date==num) {
printf(\位置\\t 数据\\n\
printf(\ }
else if(H[n].sign!=0&&H[n].date!=num) {
if(judge(H,num,n)==0) return 0; }
return 1; }
int main(void) {
int key[q]={19,14,23,1,68,20,84,27,55,11,10,79}; float a=0;
HashNode H[hashsize];
for(int i=0;i printf(\位置\\t 数据\\n\\n\ for(int i=0;i } { if(H[i].sign!=0) { printf(\ } else { H[i].date=0; printf(\ } } int num; printf(\请输入查找数值(‘-1’查找完成):\\n\for(int i=0;;i++) { scanf(\ if(num==-1) break; if(search(num,H)==0) printf(\不存在\\n\} for(int i=0;i printf(\ a=a+H[i].sign; } printf(\ printf(\平均查找长度:%0.2f\\n\return 0; 四 调试情况、设计技巧及体会 首先得确定哈希函数,虽然冲突是无法避免的,但是我们应该选择合适的 函数,减少冲突,最简单的可以采用开放定止法,出现冲突后,以原地址为基点再次寻找下一个地址。
正在阅读:
河南工业大学实验报告_实验三 查找和排序(一)——查找07-11
韩都衣舍营销战略与买手制度分析01-03
大学生心理健康教育工作计划202105-19
管棚注浆作业指导书05-07
唐代绝句选读07-04
我的笔记本作文800字06-27
我学会了弹吉他作文400字07-03
陈雪清12-07
OpenStack newton部署07-03
- 天大砼方案 - 图文
- 农业科技网络书屋能力提升_玉米错题选
- DNS习题
- 浅议检察官对罪犯谈话的技巧与效果
- 高考语文文言文翻译专题训练
- AB类学科竞赛目录(2015)
- 建筑面积计算新规定(2015最新)
- Revit2012初级工程师题集一
- 十三五项目米线可行性报告
- 2013体育学院党组织建设工作总结
- 2014Revit工程师题库
- 高中数学如何实施研究性学习
- 茶艺表演 中英互译
- 小学音乐湘文艺版 四年级下册 第十一课《(歌表演)脚印》优质课公
- 山西省农村合作经济承包合同管理条例
- 2015年镇江市中考化学一模试题参考答案及评分标准(定稿)
- 统计 题集
- 批评意见清单
- 8潞安集团蒲县黑龙关煤矿矿业公司2
- 鄂教版四年级语文上册复习精要(光谷四小)
- 查找
- 实验
- 河南
- 工业大学
- 排序
- 报告
- 科学道德与学风建设题库(吉林大学)2016
- 2013年广州小升初真题题型分析
- 甲级单位编制双由令式隔膜阀项目可行性报告(立项可研+贷款+用地
- 科学道德与学术规范
- 论现代职业教育体系的模式构建与创新研究-最新教育资料
- 创业培训《SYB》考试试卷(2015.04)
- Excel2010汇总习题及答案
- 在全县干部纪律作风整顿动员大会上的讲话
- 轻工机械制药机械设备市场研究调研及行业前景分析报告2019年目录
- 化工热力学答案--第二版
- 强基固本筑堡垒 创先争优促和谐
- 10个经典难点面试问题回答思路
- 拌合站安全、质量、环境、职业健康目标
- 学生发声亮剑稿
- 金乡金泰花园施工组织设计
- 图文员员工手册
- 高速收费站施工组织设计
- 13施工单位质量工作履约检查及履约考评管理办法
- 北京市东城区2012届高三下学期综合练习(一)数学(理)试题
- 深圳市宝安区教育局