散列:使用堆栈在表(开放寻址)中链接的是什么

时间:2013-10-20 22:27:45

标签: java hash

我有一个很可能是基本的问题,但我找不到明确的解释。我试图澄清这个概念。

在表中链接到底是什么(使用开放寻址)并使用堆栈来跟踪可用空间。我似乎无法澄清表中的链接是什么。谢谢,或者如果有一个覆盖它的链接就足够了。这不涉及线性探测或二次探测。

谢谢。

附录:表内的链接是? (此处不使用线性探测或二次探测)

1 个答案:

答案 0 :(得分:0)

不确定是否是这种情况,但可以使用堆栈来跟踪“已释放”的插槽。这意味着对于每个散列函数值,都有一个包含所有空闲槽的堆栈。当你需要找到额外的插槽来插入值时 - 你只需从堆栈中获取它。

它可能用于防止碎片,从而延长了对可用插槽的查找次数。

最初,堆栈将指向第一个插槽,但是当添加和删除数据时,释放的插槽将被推送到堆栈。