hash表的实现
更新时间:2024-06-02 05:10:01 阅读量: 综合文库 文档下载
hash表的实现
#include
int hash(KeyType k)
{
return k%p;
} void init()
{ int i;
for(i=0;i ht[i]=0; } void insert(KeyType k) { int d,i; d=hash(k); for(i=0;i ht[(i+d)%M]=k; } int search(KeyType k) { int i,d; d=hash(k); if(ht[d]==k) return d; else { for(i=1;i if(i d=(d+i)%M; return d; } else return -1; } } void print() { int i; for(i=0;i } void main() /*{ KeyType k; init(); printf(\scanf(\while(k!=0) { insert(k); scanf(\ } print(); printf(\ scanf(\if(search(k)!=-1) printf(\ else printf(\ }*/ int result; char h,select; //clrscr(); printf(\ printf(\ \ printf(\ printf(\线性表的顺序表示--------------------- \ printf(\ lable0: printf(\线性表L不存在,是否创建线性表L(Y/N)?:\ h=getch(); if(h=='y'||h=='Y') result=init(); else goto end; if(result==0||result==-1){printf(\线性表初始长度不合法,必须是大于或等于1!!\ lable0;} if(result==2) goto lable1; lable1: //clrscr(); printf(\ printf(\ *********************************************************** \ printf(\printf(\ 恭喜你!线性表L已创建好, 继续操作! \ printf(\printf(\ 1.插入新的数据元素请按 I \ printf(\ printf(\ 2.表尾插入新的数据元素 请按 p \ printf(\printf(\ 3.删除表中数据元素请按 D \ printf(\printf(\ 4.删除表尾元素请按 K \ printf(\ printf(\ 5.清空线性表请按 Q \ printf(\ printf(\ 6.返回线性表表长请按 F \ printf(\ printf(\ 7.查找数据元素请按 L \ printf(\ printf(\ 8.输出线性表元素请按 V \ printf(\ printf(\ *********************************************************** \ printf(\ printf(\ 请输入你的选择:\ select=getch(); if(select=='i'||select=='I') { int i,e; int flag1; printf(\请输入插入位置和元素值:\ scanf(\flag1=insertlist(i,e); if(flag1==0 ||flag1==1) {printf(\插入位置不合法或扩充存储空间失败,是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } else {printf(\插入元素成功!是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } } else if(select=='p'||select=='P') { int i,e; int flag1; printf(\请输入插入元素值:\ scanf(\flag1=append(e); if(flag1==1) {printf(\扩充存储空间失败,是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } else {printf(\插入元素成功!是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } } else if(select=='d'||select=='D') { int i,e; int flag1; printf(\请输入删除元素的位序:\ scanf(\flag1=deletelist(i); if(flag1==0) {printf(\删除元素不存在或是空表,操作失败!,是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } else {printf(\删除元素成功!是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } } else if(select=='k'||select=='K') { int i,e; int flag1; flag1=deletelist_end(); if(flag1==0) {printf(\是空表,操作失败!,是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } else {printf(\删除表尾元素成功!是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } } else if(select=='q'||select=='Q') { clearlist(); printf(\清空线性表成功!是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } else if(select=='f'||select=='F') { printf(\当前线性表长度为:\printf(\ printf(\是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } else if(select=='l'||select=='L') { int i,e; int flag1; printf(\请输入要查找的元素值:\ scanf(\flag1=find(e); printf(\if(flag1==0) {printf(\是空表,或该数据元素不存在!,是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } else { printf(\找到了,是L中的第\ printf(\printf(\个数据元素\ printf(\ printf(\是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } } else if(select=='v'||select=='V') { int i,e; int flag1; printf(\当前表中数据元素有:\ flag1=print(); if(flag1==0) {printf(\是空表!\printf(\ printf(\是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } else { printf(\是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } } else { printf(\选择有误!是否继续(Y/N)?\ select=getch(); if(select=='y'||select=='Y') goto lable1; goto end; } end:; }
正在阅读:
hash表的实现06-02
常见危险化学品安全技术说明书08-17
调压柜(箱)使用说明书03-31
调压柜(箱)使用说明书01-14
常见危险化学品安全技术说明书06-08
财运许愿的话语02-10
使用危险化学品储存安全要求04-12
公司外出活动通知06-09
MSDS危险化学品使用说明书03-08
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 实现
- hash
- 无砟轨道 结构病害分析及养护维修技术之轨道板裂缝问题 - 图文
- 电光源原理复习题及答案
- “引导高中生正确进行异性交往”资料
- 小学三年级上册书法练习指导全册教案
- 生物技术专业自我介绍推荐
- 特超高产玉米种植技术研究
- 国际货币体系概述习题与答案
- VB复习资料
- 扎哈哈迪德
- 中国偏光板行业市场前景分析预测报告(目录) - 图文
- 2018年贵州省黔西南州中考数学试卷
- 基于C#的USB3.0接口程序设计
- 第四单元第8题操作步骤
- 崇明岛拓展训练心得体会
- 海珠区2007学年第二学期期末调研测试语文科
- 要想孩子脑子好,十种食品不可少 - 图文
- 置业顾问实习总结6篇
- 关于贫困地区县域经济的思考
- 侍 氏 人 物 (转自侍氏家谱网)
- 2016年三年级下册数学期末复习计划