Hash 哈希:插入到已删除的插槽

Hash 哈希:插入到已删除的插槽,hash,Hash,我不熟悉散列,我的问题是: 是否可以插入哈希表的已删除插槽?是的,可以插入已删除插槽。但是 首先你应该知道有软删除和硬删除。在“软删除”中,您只需翻转一个标志并将插槽标记为“已删除”,在“硬删除”中,您将清空插槽 让我解释一下为什么我们需要软删除:例如,您正在使用具有线性探测的哈希表,并且您的哈希函数以某种方式将3个输入值映射到同一个插槽。通过使用线性探测,您可以通过在桌子上线性前进,直到找到一个空槽来放置这三个元素。在这种情况下,如果您使用硬删除进行删除,您将破坏哈希表,因为在尝试检索值时将有

我不熟悉散列,我的问题是:


是否可以插入哈希表的已删除插槽?

是的,可以插入已删除插槽。但是

首先你应该知道有软删除和硬删除。在“软删除”中,您只需翻转一个标志并将插槽标记为“已删除”,在“硬删除”中,您将清空插槽

让我解释一下为什么我们需要软删除:例如,您正在使用具有线性探测的哈希表,并且您的哈希函数以某种方式将3个输入值映射到同一个插槽。通过使用线性探测,您可以通过在桌子上线性前进,直到找到一个空槽来放置这三个元素。在这种情况下,如果您使用硬删除进行删除,您将破坏哈希表,因为在尝试检索值时将有一个空槽,因此将无法访问一个值

另一方面,;如果你有一个完美的散列函数,你可以使用硬删除。完美的哈希函数将每个输入值唯一地映射到插槽。所以不需要探测方案,硬删除不会破坏表


现在回到你的问题,你也应该考虑并找出如何避免重复插入。

是的,但是你使用哪种语言?