哈希表(开放定址法处理冲突)

1000(ms)
10000(kb)
2698 / 6177
采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。

输入

第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据。

输出

如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。

样例输入

13
11
16 74 60 43 54 90 46 31 29 88 77
16

样例输出

3,1
 #include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<list>
#define rep(i,a,b) for(int i=a;i<b;i++)
#define NULLKEY -1
#define DELKEY -2
using namespace std;
typedef int KeyType;
typedef struct{
KeyType key;
int count;
}HashTable; void InsertHT(HashTable ha[],int &n,int m,int p,KeyType k)
{
int i,adr;
adr=k%p;
if(ha[adr].key==NULLKEY||ha[adr].key==DELKEY)
{
ha[adr].key=k;
ha[adr].count=;
}
else
{
i=;
do{
adr=(adr+)%m;
i++;
}while(ha[adr].key!=NULLKEY&&ha[adr].key!=DELKEY);
ha[adr].key=k;
ha[adr].count=i;
}
n++;
} void creatHT(HashTable ha[],int &n,int m,int p,KeyType keys[],int nl)
{
rep(i,,m)
{
ha[i].key=NULLKEY;
ha[i].count=;
}
n=;
rep(i,,nl)
InsertHT(ha,n,m,p,keys[i]);
} bool DeleteHT(HashTable ha[],int &n,int m,int p,KeyType k)
{
int adr;
adr=k%p;
while(ha[adr].key!=NULLKEY&&ha[adr].key!=k)
adr=(adr+)%m;
if(ha[adr].key==k)
{
ha[adr].key=DELKEY;
return true;
}
else
return false;
} void serchHT(HashTable ha[],int m,int p,KeyType k)
{
int i=,adr;
adr=k%p;
while(ha[adr].key!=NULLKEY&&ha[adr].key!=k)
{
i++;
adr=(adr+)%m;
}
if(ha[adr].key==k)
cout<<k%p<<","<<i;
else
cout<<"-1";
} int main()
{
int m,n,k,x;
KeyType keys[];
HashTable ha[];
cin>>m>>n;
rep(i,,n)
cin>>keys[i];
cin>>k;
creatHT(ha,x,m,m,keys,n);
serchHT(ha,m,m,k);
rep(i,,n)
DeleteHT(ha,x,m,m,keys[i]);
return ;
}

swust oj 1013的更多相关文章

  1. [Swust OJ 404]--最小代价树(动态规划)

    题目链接:http://acm.swust.edu.cn/problem/code/745255/ Time limit(ms): 1000 Memory limit(kb): 65535   Des ...

  2. [Swust OJ 649]--NBA Finals(dp,后台略(hen)坑)

    题目链接:http://acm.swust.edu.cn/problem/649/ Time limit(ms): 1000 Memory limit(kb): 65535 Consider two ...

  3. SWUST OJ NBA Finals(0649)

    NBA Finals(0649) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 404 Accepted: 128   Descri ...

  4. [Swust OJ 1023]--Escape(带点其他状态的BFS)

    解题思路:http://acm.swust.edu.cn/problem/1023/ Time limit(ms): 5000 Memory limit(kb): 65535     Descript ...

  5. [Swust OJ 1125]--又见GCD(数论,素数表存贮因子)

    题目链接:http://acm.swust.edu.cn/problem/1125/ Time limit(ms): 1000 Memory limit(kb): 65535   Descriptio ...

  6. [Swust OJ 1126]--神奇的矩阵(BFS,预处理,打表)

    题目链接:http://acm.swust.edu.cn/problem/1126/ Time limit(ms): 1000 Memory limit(kb): 65535 上一周里,患有XX症的哈 ...

  7. [Swust OJ 1026]--Egg pain's hzf

      题目链接:http://acm.swust.edu.cn/problem/1026/     Time limit(ms): 3000 Memory limit(kb): 65535   hzf ...

  8. [light oj 1013] Love Calculator

    1013 - Love Calculator Yes, you are developing a 'Love calculator'. The software would be quite comp ...

  9. [Swust OJ 1139]--Coin-row problem

    题目链接:  http://acm.swust.edu.cn/contest/0226/problem/1139/ There is a row of n coins whose values are ...

随机推荐

  1. linux删除软链接文件【原创】

    删除软链接文件时,不要加“/”,去注意 正确方法: rm -rf ./softlinkfile 错误方法: rm -rf ./softlinkfile/ 上面错误的操作,这样会把软链接的源文件一同删除 ...

  2. WPF入门之一APP.XAML

    WPF运行之后,App.xaml是应用的声明起始点. 一.指定入口 通过指定Application 的StartupUri属性,指示了启动应用的时候,加载哪个窗口或网页. 最常见的就是将默认的Main ...

  3. nginx conf_ctx ****

    http://blog.chinaunix.net/uid-27767798-id-3840094.html 断断续续看完了,还是没有全部清晰

  4. spring-cloud-zuul服务网关

    Zuul包含了对请求的路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,类似于保安的职能,而过滤器功能则负责对请求的处理过程进行干预,是实 ...

  5. 2018-2019-2 网络对抗技术 20165314 Exp3 免杀原理与实践

    免杀原理与实践说明 一.实验说明 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧:(1.5分) 任务 ...

  6. CentOS openssh升级到openssh可用

    1. https://blog.csdn.net/moonpure/article/details/54575401 2. http://www.it165.net/admin/html/201303 ...

  7. Web API之基于H5客户端分段上传大文件

    http://www.cnblogs.com/OneDirection/articles/7285739.html 查询很多资料没有遇到合适的,对于MultipartFormDataStreamPro ...

  8. 设计完美的策略模式,消除If-else

    策略模式是oop中最著名的设计模式之一,是对方法行为的抽象,可以归类为行为设计模式,也是oop中interface经典的应用.其特点简单又实用,是我最喜欢的模式之一.策略模式定义了一个拥有共同行为的算 ...

  9. AutoProject Studio 自动化项目生成器 下载地址

    一.ZCN.NET 自动化项目生成器 下载专区 [如果下载链接不可用,请直接联系作者,QQ:3080400049] 1.1.ZCN.NET 自动化项目生成器 安装程序 V2016Beta1       ...

  10. net core体系-web应用程序-4asp.net core2.0 项目实战(CMS)-第一章 入门篇-开篇及总体规划

    .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划   原文地址:https://www.cnblogs.com/yilezhu/p/9977862.html 写在前面 千呼万唤始出来 ...