Data structures 比较哈希表实现

Data structures 比较哈希表实现,data-structures,hashtable,implementation,Data Structures,Hashtable,Implementation,可能重复: 一般来说,我看到了两种哈希表的实现。第一个数组实现为两个数组,一个包含键,另一个包含值。第二个是一个数组,然后是一个包含键值对象的链表 一种实现与另一种实现相比有哪些优点和缺点?在冲突处理和put/get操作方面,这两个方面在我看来都很好。这篇文章写得很好。您要查找的关键字是开放寻址(有时称为封闭哈希)与封闭寻址(有时称为开放哈希) 正如johna所说,我们将第一个示例称为开放寻址,而后一个示例是链式寻址 开放寻址的主要缺点是,通过使用哈希表数组来存储值,如果发生许多冲突,将使存储

可能重复:

一般来说,我看到了两种哈希表的实现。第一个数组实现为两个数组,一个包含键,另一个包含值。第二个是一个数组,然后是一个包含键值对象的链表


一种实现与另一种实现相比有哪些优点和缺点?在冲突处理和put/get操作方面,这两个方面在我看来都很好。

这篇文章写得很好。您要查找的关键字是开放寻址(有时称为封闭哈希)与封闭寻址(有时称为开放哈希)

正如johna所说,我们将第一个示例称为开放寻址,而后一个示例是链式寻址

开放寻址的主要缺点是,通过使用哈希表数组来存储值,如果发生许多冲突,将使存储桶数组溢出,然后进行昂贵的大小调整。而且,这个数据结构有点不清楚


使用链接或指向链接列表的指针,您将永远不会溢出数组,尽管链接列表可能会变深。这但是,这是一个一致且可预测的数据流,是一个更简单的概念。

请用谷歌搜索。这是计算机科学中一个非常基本的主题。@Marcin如果堆栈溢出上还没有一个好的答案,那么这是一个值得一个好答案的好问题。有趣的是,它也是这个问题的一个副本:。对于我们应该就广泛涉及的主题提出一般性问题的观点,我没有多少同情心。