河南工业大学实验报告_实验三 查找和排序(一)——查找
更新时间: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
2019年县纪委书记述职述廉述德报告02-25
2016年3月新增公共基础80道答案解析06-23
九年级英语全解重点句子04-03
2012 认知负荷的测量及其在多媒体学习中的应用_孙崇勇04-27
《三国演义》分回梗概及重点情节梳理(Word2003)04-27
冷库施工合同06-23
天津财经大学经济学专业培养方向说明04-23
AA-A29LLAE-FREQ中文资料04-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 查找
- 实验
- 河南
- 工业大学
- 排序
- 报告
- 科学道德与学风建设题库(吉林大学)2016
- 2013年广州小升初真题题型分析
- 甲级单位编制双由令式隔膜阀项目可行性报告(立项可研+贷款+用地
- 科学道德与学术规范
- 论现代职业教育体系的模式构建与创新研究-最新教育资料
- 创业培训《SYB》考试试卷(2015.04)
- Excel2010汇总习题及答案
- 在全县干部纪律作风整顿动员大会上的讲话
- 轻工机械制药机械设备市场研究调研及行业前景分析报告2019年目录
- 化工热力学答案--第二版
- 强基固本筑堡垒 创先争优促和谐
- 10个经典难点面试问题回答思路
- 拌合站安全、质量、环境、职业健康目标
- 学生发声亮剑稿
- 金乡金泰花园施工组织设计
- 图文员员工手册
- 高速收费站施工组织设计
- 13施工单位质量工作履约检查及履约考评管理办法
- 北京市东城区2012届高三下学期综合练习(一)数学(理)试题
- 深圳市宝安区教育局