资源简介
哈希表查找,使用哈希表实现学生学籍管理======================
代码片段和文件信息
#include “iostream.h“
#include “string.h“
typedef int keytype; //定义关键字类型
const int maxlist=10;
struct elemtype //定义学生结构体类型
{
keytype key;
char name[8];
int english;
int math;
};
//--------------------------------定义哈希函数类------------------------
class sqhash
{
elemtype *hash;
int length;
keytype p;
int tongzhi; //在find()函数中,用来记录有相同记录是的下标
int kongwz; //在find()函数中,用来记录找到可用空间是的下标
public:
sqhash();
~sqhash();
void creat(int nint m);
int creathash();
int find(keytype k); //是标准的全部查找函数
int find1(keytype k); //是进行某一条记录查找的函数
int insert(keytype k);
int cancel(keytype k);
void printout();
};
//-------------------------------------------------------------------
//------------------------------------(定义顺序连表)------------
class list
{
public:
elemtype li[maxlist];
int size;
list()
{
size=0;
}
int creatlist();
int insert();
void changorder();
int find(keytype k);
void print();
};
//----------------------------------------------------------
sqhash::sqhash()
{
}
sqhash::~sqhash()
{
delete []hash;
}
void sqhash::creat(int nint m)
{
length=n;
p=m;
hash=new elemtype[length];
for(int i=0;i //hash[i].key=0; //怎么样的话,如果输入的k为0,所以会判断是相同记录存在的。
hash[i].key=-1; //所以,,用key==-1表示,该位置的空间是空的。
}
int sqhash::find(keytype k)
{
int biaos; //用来标识查找的结果。
int p1p2;
p1=k%p; //所以p1就是对应的地址,
p2=p1-1; //所以p2是p1的前一个地址,
if(p2<0) //为了防止p1=0的时候,p2应该是在p1之前,所以形成循环。
{
p2=length-1;
}
while((hash[p1].key!=-1)&&(p1!=p2)) //查找是否存在空闲的位置
p1=(p1+1)%length;
if(hash[p1].key==-1) //存在空位置
{
kongwz=p1; //所以保存对应的下标
biaos=1; //设置对应的标记
}
if(p1==p2)
biaos=0; //表示哈希函数表已经满。
for(int i=0;i if(hash[i].key==k) //表示查找是否有相同记录的学生记录
{
biaos=2; //设置标记
tongzhi=i; //保存对应的下标
}
return biaos;
}
int sqhash::find1(keytype k)
{
int k1;
k1=find(k);
if(k1==0||k1==1) //根据find()函数进行判断,该关键字是否可用
{
cout<<“\n对不起!不存在对应的学生的记录。“;
return 0;
}
if(k1==2)
{
cout<<“学号:“< }
return 0;
}
int sqhash::creathash()
{
int k1k;
cout<<“\n请输入要插入的学生记录的学号,(-1结束)“;
cin>>k;
while(k!=-1)
{
k1=find(k); //所以k1的到关键字是否可用的判断信息
if(k1==0)
{
cout<<“\n对不起!要插入的表已经满!“;
return 0;
}
if(k1==1)
{
cout<<“\n请输入学生的姓名,英语成绩,数学成绩:“;
cin>>hash[kongwz].name>>hash[kongwz].english>>hash[kongwz].math;
hash[kongwz].key=k;
}
if(k1==2)
{
cout<<“\n要插入的学生的记录与关键字与某条记录相同,值为:“;
cout<<“学号:“< }
cout<<“\n请输入要插入的同学的学号,(-1结束)“;
cin>>k;
}
}
int sqhash::insert(keytype k)
{
int k1;
k1=find(k); //所以k1得到关键字的相
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 31040 2009-09-25 22:12 哈希表\Debug\g.obj
文件 427008 2009-09-25 22:14 哈希表\Debug\g.pdb
文件 194879 2009-09-25 22:14 哈希表\Debug\hash.obj
文件 118784 2009-09-25 22:14 哈希表\Debug\vc60.pdb
文件 8070 2008-06-27 22:38 哈希表\g.cpp
文件 3403 2009-09-25 22:21 哈希表\g.dsp
文件 510 2009-09-25 22:21 哈希表\g.dsw
文件 50176 2009-09-27 15:55 哈希表\g.ncb
文件 48640 2009-09-27 15:55 哈希表\g.opt
文件 901 2009-09-25 22:14 哈希表\g.plg
文件 1208 2009-10-11 18:11 哈希表\ReadMe.txt
文件 293 2009-10-11 18:11 哈希表\StdAfx.cpp
文件 667 2009-10-11 18:11 哈希表\StdAfx.h
文件 3441 2009-10-11 23:19 哈希表\哈希表.cpp
文件 4598 2009-10-11 18:11 哈希表\哈希表.dsp
文件 520 2009-10-11 18:11 哈希表\哈希表.dsw
文件 50176 2009-10-11 23:33 哈希表\哈希表.ncb
文件 53760 2009-10-11 23:33 哈希表\哈希表.opt
文件 969 2009-10-11 23:19 哈希表\哈希表.plg
文件 2147 2009-10-11 18:11 哈希表\哈希表___Win32_Debug\StdAfx.obj
文件 110592 2009-10-11 23:19 哈希表\哈希表___Win32_Debug\vc60.pdb
文件 540787 2009-10-11 23:19 哈希表\哈希表___Win32_Debug\哈希表.exe
文件 192553 2009-10-11 23:19 哈希表\哈希表___Win32_Debug\哈希表.obj
文件 1090560 2009-10-11 23:19 哈希表\哈希表___Win32_Debug\哈希表.pdb
目录 0 2010-01-15 10:30 哈希表\Debug
目录 0 2010-01-15 10:30 哈希表\哈希表___Win32_Debug
目录 0 2010-01-15 10:30 哈希表
----------- --------- ---------- ----- ----
2935682 27
............此处省略0个文件信息
相关资源
- 计算文件哈希值的程序
- 哈希值转换程序
- 基于哈希表的代码相似度检测系统源
- SHA1哈希值计算包含h和cpp文件
- 相似图搜索原理-感知哈希算法
- 运用MFC来实现哈希查找算法
- 数据结构哈希表设计与实现课程设计
- 自己整理的国标SM3哈希算法
- 几种经典的Hash算法的实现(源代码)
- 哈希计算工具MD5 MD4 SHA1 SHA256 SHA384 S
- 计算文件hash值的源代码,包含crcmd2
- 几个比较著名的哈希算法
- 用二次探测再散列法解决冲突建立哈
- 局部敏感哈希算法的代码
- pb加密解密哈希库
- IsoHash 各向同性哈希
- 哈希表设计 哈希表 哈希表
- 数据结构课程设计设计哈希表实现电
- 哈希函数 H(key) = key MOD 11 c程序,严
- 用于机器学习特征工程的哈希
- pwdump8-8.2--获取Windows密码哈希
- 数据结构哈希表
- 1、 哈希表类的哈希函数采用除留余数
- 哈希表词典
- 汇编语言课程设计 哈希表
- 平均哈希算法相似图片搜索
- 基于哈希表与线性表建立FP-Tree的改进
评论
共有 条评论