第13题用线性探查法实现的散列表 POWERBY KTL
来源:互联网 发布:最好的股票行情软件 编辑:程序博客网 时间:2024/06/06 14:43
/*设有一组关键字(许炼2,35,124,153,84,57),需要插入到表长为12的散列表中。
本程序把该题目编写为程序,输入72 35 124 153 84 57回车,输入查找的关键字,
因为输出为key,而不是other,所以若输出与你输入的关键字相同则程序运行正确。
*/
#include "stdio.h"
#include "stdlib.h"
#define p 11
#define M 12
#define N 6
#define nil 0
typedef int keytype;
typedef char datatype;
typedef struct
{
keytype key;
datatype other;
}hashtable;
hashtable HT[12];
int H(keytype k)
{
return k%p;
}
int Linsrch(hashtable HT[],keytype k)
{
int d,i=0;
d=H(k);
while((i<M)&&(HT[d].key!=k)&&(HT[d].key!=nil))
{
i++;
d=(d+i)%M;
}
return d;
}
void Linsert(hashtable *HT,hashtable *s)
{
int d;
d=Linsrch(HT,s->key);
if(HT[d].key==nil)
HT[d]=*s;
else printf("ERROR");
}
void Init(hashtable HT[],int m,keytype key[],int n)
{
int i;
for (i=0;i<m;i++)
{
HT[i].key=0;
}
for(i=0;i<n;i++)
{
hashtable s;
s.key=key[i];
Linsert(HT,&s);
}
}
int main()
{
int i,d;
keytype k;
keytype key[N];
printf("请输入你的关键字序列:");
for(i=0;i<N;i++)
{
scanf("%d",&key[i]);
}
Init(HT,M,key,N);
printf("现在的散列表状态为:/n");
for(i=0;i<M;i++)
printf("%d ",HT[i].key);
printf("/n");
printf("请输入你要查找的关键字:");
scanf("%d",&k);
d=Linsrch(HT,k);
if(HT[d].key==k)
{
printf("%d /n",HT[d].key);
}
else{
printf("发生错误。。。/n");
}
return 0;
}
- 第13题用线性探查法实现的散列表 POWERBY KTL
- 第十五题用拉链法实现散列表 POWERBY KTL
- 第九章第14题(赶出来的作业) POWERBY KTL
- 第八章十一题修改后(用栈实现)POWERBY KTL
- 第九章第十七题(赶出来的作业) powerby ktl
- 第就章第21题(赶出来的作业) POWERBY KTL
- 第十章第十六题 POWERBY KTL
- 第八章十六题修改后POWERBY KTL
- js-数据结构-散列表(线性探查)
- 用开放地址法中的线性探查法解决冲突实现哈希表的运算
- 第八章十一题,修改了 ,用单链表实现str.(不好意思又看错条件了,这次没有错误了。)powerby KTL
- 哈希表的线性探查法搜索算法
- [数据结构]散列表-链接法和开放寻址法 线性探查
- Prim算法生成最小树 Powerby KTL
- 散列查找:C语言线性探查与拉链存储的实现
- C++中的线性探查法
- 基于线性探测法的散列表
- 算法之线性探查
- 我对大赛题目的理解
- 针对SOA题目所做的几点理解!
- mysql 一些常见应用 concat/@a/case/limit/
- 越來越感覺Microsoft.NET失去光彩了
- db2数据复制、迁移方法
- 第13题用线性探查法实现的散列表 POWERBY KTL
- Remote Desktop Protocol
- 第十五题用拉链法实现散列表 POWERBY KTL
- 我看e准
- 突破P2P终结者
- 丁磊:当时理想是有房有车睡懒觉不准时上班有钱去旅游
- 一个简单的进度条,applet实现
- 怎样及时检测出非正常断开的TCP连接
- tip:win2003终端服务授权