我知道哈希表是如何工作的。但我不确定在链表的帮助下,当多个值存储在同一位置时,get(key)的可能实现。例如: set(1,'Val1') get存储在索引7。set(2,'Val2')也存储在索引7。(内部实现在索引7创建一个链表和存储指针。这是可以理解的)。
但是我在想,如果现在我调用get(2)。哈希表是如何知道返回哪个值的?因为我的散列函数会将其解析为索引7,但在索引7处有2个值。一种可能的方法是在链接的节点上存储value和key。是否可能有其他不同的实现?
发布于 2016-01-18 09:32:59
浏览链表,对关键字“2”进行线性搜索。哈希函数的属性和哈希表的大小应该保证这些列表的平均长度为O(1)。
我想你误解了哈希表必须存储它们的键的事实。散列函数仅用于加速插入/查找。
https://stackoverflow.com/questions/34845942
复制相似问题