我正在尝试进行合并散列的形式,为此,我需要维护多个链接列表,当您尝试将某些内容插入到表中并且它与另一个对象发生碰撞时,这些列表会被创建。我如何在add(对象x)函数中创建多个链表,然后能够在find(对象x)函数中再次调用相同的列表?
例如,如果我的哈希值为5,并且桶5被占用,我创建一个以桶5作为头的链表,然后创建一个新节点,其中我试图放入的对象5最终得到放置。这样当我尝试找到后者的对象,而不是探测表时,我可以按照我创建的链接列表引用插槽5并将其跟随到我的对象。
我的问题是,我无法弄清楚如何为不同的冲突维护多个链表,然后在我尝试查找对象时稍后调用相应的列表。非常感谢任何帮助。
答案 0 :(得分:0)
如果您正在尝试复制像HashMap
这样的内容(听起来和您一样),您需要将链接列表保留在搜索树中,这样您就可以找到正确的列表插入和以便在合理的时间内找到对象。