使用链接列表进行散列

Hashing with Linked Lists

我正在尝试做一种合并散列的形式,为此,我需要维护多个链表,这些链表是在您尝试将某些内容插入 table 并且它与另一个对象发生冲突时创建的.我将如何在 add(object x) 函数中创建多个链接列表,然后能够在 find(object x) 函数中再次调用相同的列表?

比如我的hash值为5,5号桶被占用了,我创建一个以5号桶为头的链表,然后在我尝试放入5的对象结束的地方新建一个节点被放。这样当我试图在后面找到对象时,而不是探测 table,我可以只按照我创建的引用槽 5 的链表并按照它找到我的对象。

我的问题是,我无法弄清楚如何为不同的碰撞维护多个链表,然后在稍后尝试查找对象时调用适当的链表。非常感谢任何帮助。

如果您正在尝试复制类似 HashMap 的东西(听起来很像您),您需要将链接列表保留在搜索树中,以便您可以找到正确的插入列表以在合理的时间内找到对象。