C++中的线性探查法
来源:互联网 发布:mac清除qq音乐缓存 编辑:程序博客网 时间:2024/06/12 01:15
#include "iostream.h"
const int m=13;
const int n=10;
int r[n+1];
class lnode
{
public:int j;
int h(int k) //构造散列函数
{
return k%13;
}
void creat(int ht[m],int n)
{
int i,j;
int k;
for(i=0;i<m;i++)
ht[i]=NULL;
for(i=1;i<=n;i++)
{
k=r[i]; //r[i] 为一个关键字
j=h(k); //j=h(k)为散列函数
while(ht[j]!=NULL)
j=(j+1)%m; //发生冲突时,查找空闲位置
ht[j]=k;
}
}
int find(int ht[m],int k)
{
int j=h(k);
if(ht[j]==NULL)
return -1; //查找失败
else if(ht[j]==k)
return j; //一次查找成功
else
{
while((ht[j]!=k)&&(ht[j]!=NULL))
j=(j+1)%m;
if(ht[j]==NULL)
return -1; //多次查找失败
else return j; //多次查找成功
}
}
};
void main()
{
int x,p,ht[m];
int flag=0;
lnode l;
cout <<"输入"<<n<<"个关键字序列:";
for(int y=1;y <=n;y++)
cin>>r[y]; //输入关键字序列
l.creat(ht,n); //建立散列表
cout <<"输入要查找的元素:";
cin>>x;
p=l.find(ht,x);
cout<<"要查找的元素在"<<p<<"个位置";
cout<<endl;
}
- C++中的线性探查法
- 哈希表的线性探查法搜索算法
- 用开放地址法中的线性探查法解决冲突实现哈希表的运算
- 算法之线性探查
- 散列查找:C语言线性探查与拉链存储的实现
- [数据结构]散列表-链接法和开放寻址法 线性探查
- 第13题用线性探查法实现的散列表 POWERBY KTL
- 第十五周项目(2):用哈希法组织关键字1——线性探查法处理冲突
- js-数据结构-散列表(线性探查)
- 【C++】逆置线性表中的元素
- 详细图解什么叫平方探查法即二次探测再散列和线性探测再散列(数据结构 哈希函数 哈希冲突)
- 用小猫统计探查discuz后台数据库中的表与数据
- 数据探查
- 线性布局中的layout_gravity
- 数据结构中的线性表
- android中的线性布局
- Android中的线性布局
- sklearn中的线性回归
- C# 读取xml中特定节点的属性值 xmldocument方式
- Java 学习内容
- c++经验学习。。。转~
- 李丰博客搬家通知
- FreeMarker学习笔记(一) 初步认识Freemarker的模板
- C++中的线性探查法
- 数据库设计的方法和步骤
- 一份不错的面试题
- 禁止fsck检查windows分区
- [学习笔记] .Net 3C: CLR CLS CTS
- 国内一个开源小组的C语言编译器项目
- 美丽的校园(图)
- 软件测试题及答案
- Web Services