//哈希函数:除留余数法
//处理冲突:链地址法
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
const int N=10;struct Node{int num;Node *next;
};
struct HashTable{Node *element[N];int countn;
};HashTable *p;void InsertHashTable(int key);
int Search(int key);int main()
{int i,n;int a[N]={12,45,2,6,78,9,0,1,15,18};p=new HashTable();//这个先是初始化p这个头指针for(i=0;i<N;i++)p->element[i]=new Node();//这是初始化p下的每个element指针for(i=0;i<N;i++)InsertHashTable(a[i]);while(scanf("%d",&n)!=EOF)//可输入待查找元素{printf("%d\n",Search(n));}return 0;
}
void InsertHashTable(int key)
{Node *q;q=new Node();q->num=key;q->next=p->element[key%N]->next;p->element[key%N]->next=q;
}
int Search(int key)
{Node *q;q=new Node();q=p->element[key%N]->next;while(q!=NULL){if(q->num==key)return key%N;q=q->next;}return -1;
}

Hash(除留余数法+链地址法)相关推荐

  1. 除留余数法构造哈希函数并用链地址法处理哈希冲突【C++实现】

    1.题目描述 哈希函数为H(key)=key%13,哈希冲突处理方法为:链地址法 c语言版数据结构上的例子 2.代码实现 首先建立一个哈希链表结点类HashNode,用于存放处理冲突时的关键字,其数据 ...

  2. Hash——哈希法概念、哈希函数构造方法、哈希冲突解决办法(重点讨论链地址法)

    声明:本篇博客根据回顾老师上课知识和书籍<数据结构--用C语言描述>(耿国华)整理得出,仅作知识回顾学习用. 1.哈希法 哈希法又称散列法.杂凑法.关键字地址计算法.相对应的表称为哈希表. ...

  3. java开放地址法和链地址法解决hash冲突

    hashMap对各位小伙们来说,没有不知道的了,使用过的人想必或多或少的都了解一点hashMap的底层实现原理,总结来说就是,数组+链表,至于源码的实现,大家可参看源码,今天想说的是hashMap是怎 ...

  4. Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区

    Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 参考文章: (1)Java解决Hash(散列)冲突的四种方法--开放地址法 ...

  5. HashMap底层——解决Hash冲突(链地址法)

    1.链地址法 次日清晨,大臣们按时上朝,接着讨论昨日的话题. "昨日Hash函数的选择我们已经有了具体的方案了,那就只剩下冲突的解决问题了",王大臣率先发话. "要解决冲 ...

  6. SWUST OJ 1012: 哈希表(链地址法处理冲突)

    1012: 哈希表(链地址法处理冲突) 题目描述 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用链地址法.建立链表的时候采用尾插法. 输入 第一行为哈西表的长度m: 第二 ...

  7. 【数据结构】哈希表——线性探测法、链地址法、查找成功、查找不成功的平均长度

    一.哈希表 1.概念 哈希表(Hash Table)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据结构.它通过把关键码值映射到哈希表中的一个位置来访问记录,以加快查找的速度.这个 ...

  8. 【数据结构】人名查询哈希表设计(链地址法)

    文章目录 核心代码 链表节点定义 链地址法处理冲突 查询函数 完整代码下载 核心代码 哈希表使用「链地址法」解决地址冲突的方式,其数据结构就采用 数组+链表 ,数组的每一个元素都是一个链表节点,当地址 ...

  9. (6)散列冲突处理:链地址法

    链地址法(拉链法) 前面我们谈到了散列冲突处理的开放定址法,它的思路就是一旦发生了冲突,就去寻找下一个空的散列地址.那么,有冲突就非要换地方呢,我们直接就在原地处理行不行呢? 可以的,于是我们就有了链 ...

最新文章

  1. docker strace ptrace 报错 Operation not permitted 解决方法
  2. java 内部类泛型,java – 使用泛型强制转换为内部类
  3. 多个Google账户合并(共享)数据
  4. Python判断字符串是否为字母或者数字
  5. 程序员该如何选择工作以及如何做好职业规划?
  6. linux系统用户密码忘了怎么办,linux 系统忘记密码的快捷解决方法(图文详解)
  7. 如何用WGDI进行共线性分析(三)
  8. 今日头条笔试 机器人跳跃问题
  9. 抖音直播间弹幕发言采集工具
  10. 护眼灯频闪是什么意思?如何消除led灯频闪
  11. php中怎么加入图片,怎么样将图片加入ps中
  12. 关闭compactos_开启Compact压缩Win10系统文件,为Win10系统盘瘦身
  13. PHP红包搭建步骤,PHP 生成微信红包代码简单
  14. pycharm所有版本 http://www.jetbrains.com/pycharm/download/previous.html 打开激活窗口 选择 Activate new license
  15. 关于网络上的刷钻方法
  16. Linux指令--let
  17. 计算机打印过的文件在哪找到,请问如何在电脑里查找已经打印过的文件
  18. 消费机 mysql_消费机软件主要构成
  19. 京东到家djencrypt和signKeyV1还原
  20. 有关于Boolean的使用

热门文章

  1. 有木有使用tomcat 7.0 报Out of Memory的同志
  2. html和css的重难点知识
  3. cratedb导入json文件
  4. centos7查看python安装路径
  5. ubuntu shell脚本出错 dash
  6. 从0到1搭建spark集群---企业集群搭建
  7. 最难面试的IT公司之ThoughtWorks代码挑战——FizzBuzzWhizz游戏(C#解法)
  8. cUrl 强大的文件上传/下载工具
  9. c# Form中的键盘响应
  10. android activity四种加载模式