2 u010335298 u010335298 于 2016.09.08 17:01 提问

哈希表用拉链法解决冲突的时候怎么根据K进行查找值?

哈希表用拉链法解决冲突的时候怎么根据K进行查找值?假如k1,k2有冲突,现在查找k2的值?怎么查找。

2个回答

wb_snail
wb_snail   2016.09.09 14:27
已采纳

先用key值的hashcode值算出所在哈希表中的下标,然后根据equals方法一个个的比较,找到相等的返回

oyljerry
oyljerry   Ds   Rxr 2016.09.08 18:12

拉链法就是一个链表,你找到链表后,就是一个个遍历,比较K是否为k2、

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
hash表拉链法解决冲突
散列表(Hash table) 也称为 哈希表 。是字典的一种抽象。比如说你要查一个字,通过这个字的拼音首字母,找到这个字的页码,然后翻到那页找就行了。这种方法直接把查找 时间复杂度 降到了常数。但是要牺牲一定的计算索引的时间。计算索引的那个函数称为 哈希函数 ( 散列函数``)。如果两个不同的 key`算出了同一个索引,此时就要用到一定的方法来解决哈希冲突。 哈希函数 哈希函数
哈希表查找 — 拉链法
散列表(也叫哈希表),是根据关键字值而直接进行访问的数据结构。 本文采用除留余数法构造散列函数。 本文采用拉链法处理冲突。 根据原始数组建立一个哈希表,哈希表为一个链表(一定要区分数组和链表),且要求哈希表有固定大小。该方法将所有冲突的记录存储在一个链表中,并将这些链表的表头指针放在数组中。衡量一个查找算法的指标是平均查找长度,在有冲突发生的情况下,用拉链法处理冲突比用开放地址法处理冲突,其平均查找长度要小。
哈希表的【构造方法】【冲突处理方法】及【哈希拉链法的简单代码实现】
由于哈希表的查找高效性,在平时的算法中用的也是比较多。例如:字符串、单词个数的统计,只出现一次字符或者数字的统计,两个集合相同元素的查找等等,还有插入删除的高效(链地址法)都可以用哈希表来解决。所以这里对其做一个小小的总结。缺点可能是需要占用额外的内存空间。一、哈希函数的构造方法 下面介绍五种常用的哈希构造方法: 构造哈希函数的原则是: (1)函数本身便于计算; (2)计算出来的地址分布均匀,即对任一关键字k,f(k) 对应不同地址的概率相等,目的是尽可能减少冲突。 1、除留余数法; 取关键字被某个不大于
hash表的拉链法解决冲突
//拉链法对hash table的溢出处理 #include #include #include #define MAX_CHAR 10 #define TABLE_SIZE 13 typedef struct element { char key[MAX_CHAR]; //other fields }element ; typedef struct List { element item
hash表之拉链法处理冲突
 /*hash表之拉链法处理冲突:*/ 方法一: #define ARRLEN 17 #define NAMELEN 20 #define ADDRLEN 20 typedef struct _rec {     char name[NAMELEN];     char addr[ADDRLEN];     struct _rec *next; } rec; //h
拉链法(链地址法)
当存储结构是链表时,多采用拉链法,用拉链法处理冲突的办法是:把具有相同散列地址的关键字(同义词)值放在同一个单链表中,称为同义词链表。有m个散列地址就有m个链表,同时用指针数组T[0..m-1]存放各个链表的头指针,凡是散列地址为i的记录都以结点方式插入到以T[i]为指针的单链表中。T中各分量的初值应为空指针。   例如,按上面例9.4所给的关键字序列,用拉链法构造散列表如图9.14所示。 
哈希表全解(简介+构造+冲突处理+查找分析计算+诸多要点)
目前参考了大量的优秀的大牛的博文自己总计的超详细哈希表 1.哈希表的简介 2.哈希表的哈希函数构造 3.冲突处理 4.查找分析计算 5.C++完整实现代码
HashTable哈希表拉链法实现(C语言)
//哈希表的实现 //邱于涵QQ1031893464 //2017年5月3日14:43:48 #include #include #include typedef struct node{ char * name;//字段名 char * desc;//描述 struct node * next;//链式表 }node; #define HASHSIZE 100//哈希表的长度(#de
拉链法处理哈西冲突
上一篇博客介绍了哈希表及处理哈西冲突的一种算法——开放定址法,这篇博客在介绍一下处理哈西冲突的另一种方法——拉链法。就是建立哈希表后,在每个位置下联一条链表,将数据用哈希函数处理后放入相应的链表中。         我个人认为就处理哈希冲突的这两种算法来说各有利弊,因为建立哈希表为了便于查找;使用开放定址法时,当第一次定位没找到时,会向后遍历直到找到或遍历完整个哈希表为止,极端时要遍历整个表
哈希表查找--拉链法
1.拉链法解决哈希冲突: 方法:把所有经过一种函数计算后的地址H(k)相同的数据用链表连接起来。 H(k)=k%p; 理论研究证明,p取小于哈希表长度的素数时效果最好。 代码实现建表与查找: //节点数据结构定义 typedef struct node { int data; struct node *next; }Node; typedef struct {