现在我有这个问题,当我们在插入过程中使用线性探测时,我被问到从哈希表中删除一个值的成本。
通过阅读互联网上的各种内容,我可以发现它必须与负载因子有关。虽然我不确定,但我读到了负载因子与所需探头数量之间的关系,它是探头数量 = 1 / (1-LF)。
所以我相信成本必须取决于探测序列。但随后另一个想法毁了一切。
如果元素被插入到 p 探针中,现在我试图删除这个元素怎么办。但在此之前,我已经删除了几个具有相同哈希码的元素,并且是插入小于 p 的探针的一部分。
在这种情况下,我到达了一个阶段,我在哈希表中看到一个空槽,但我不确定我要删除的元素是否已被删除,或者由于探测而位于其他位置。
我还发现,一旦我删除了一个元素,我必须用一些特殊的指示器标记这个槽,以告知它是可用的,但这并不能解决我不确定我愿意删除的元素的问题。
谁能建议在这种情况下如何找到成本?如果是非线性探测,方法会有所不同吗?