第13题用线性探查法实现的散列表 POWERBY KTL

原创 2006年06月12日 17:39:00

/*设有一组关键字(许炼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;
}

 

用开放地址法中的线性探查法解决冲突实现哈希表的运算

/**  * Created by lirui on 14-8-13.  * 用开放地址法中的线性探查法解决冲突实现哈希表的运算。  */ public class MyHashSearch ...
  • u012814506
  • u012814506
  • 2014年08月13日 21:14
  • 1006

建立Hash表(散列表)(运用线性探测法解决冲突)

输入key值。建立与查找。
  • bensonrachel
  • bensonrachel
  • 2017年06月08日 19:51
  • 289

第十五题用拉链法实现散列表 POWERBY KTL

/*15.编写对一组关键字,利用链地址法解决冲突,散列函数为H(k),写出在此散列表中插入、删除元素的算法。程序输入 参考书本p269 其中除留余数p为6 拉链长度M为6 关键字长度N为6输入72 3...
  • spritsq
  • spritsq
  • 2006年06月12日 17:41
  • 1281

散列表--线性探测法

最近复习了下数据结构中的哈希表,发现在计算等概率情况下查找不成功的平均查找长度时比较迷茫,不知道到底是怎么计算出来的。现在通过查阅资料终于知道如何计算了,所以记录下来以供以后查阅。    下面看...
  • u010841344
  • u010841344
  • 2014年10月13日 15:36
  • 4238

哈希表——线性探测法、链地址法、查找成功、查找不成功的平均长度

一、哈希表 1、概念        哈希表(Hash Table)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据结构。它通过把关键码值映射到哈希表中的一个位置来访问记录,以加快查...
  • u011080472
  • u011080472
  • 2016年04月18日 09:55
  • 20389

基于拉链法的散列表

#include //基于拉链法的散列表 //散列表通常一个难点就是出现键冲突后,如果进行冲突解决, //基于拉链法的散列表给每个键分配一个链表,当出现键冲突时, //将冲突键的条目项都挂接到一个...
  • liujianfeng1984
  • liujianfeng1984
  • 2015年08月13日 07:03
  • 1827

求闭散列表的平均查找长度

题目描述: 创建一个整型数组用来存放闭散列表,散列函数为除留余数法如下:hash(x) = x % 11,散列数组中有8个元素,要求从键盘读入这8个散列元素,采用闭散列即开放定址法的线性探查...
  • shuipingzildy
  • shuipingzildy
  • 2012年05月12日 18:41
  • 1300

leetcode第13题——*Roman to Integer

题目 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range fr...
  • buptlrw
  • buptlrw
  • 2016年01月06日 22:51
  • 641

[数据结构]散列表-链接法和开放寻址法 线性探查

在介绍hash表之前首先提到直接寻址表 但是由于实际上存储在字典里的关键字集合K比实际上所有可能的关键字的全域U要小的多,因此散列表所需要的存储空间比直接寻址表要小的多   ...
  • lady_lili
  • lady_lili
  • 2016年08月30日 23:31
  • 1325

处理哈希冲突的线性探测法

哈希表,是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散...
  • leex_brave
  • leex_brave
  • 2016年05月24日 15:28
  • 8210
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第13题用线性探查法实现的散列表 POWERBY KTL
举报原因:
原因补充:

(最多只允许输入30个字)