哈希表设计在常量时间内实现nextElement()

时间:2012-09-22 09:42:33

标签: data-structures

我被问到如何设计一个允许我在常量时间内实现nextElement()的哈希表。

我的回答是,为了避免检查那些空的桶,我们可以将添加到哈希的元素添加到双链表中。

如果要求我们迭代哈希表的元素,我们只需要从头到尾遍历列表。当从哈希中删除元素时,从列表中删除也是在恒定时间内完成的。

当然,这需要额外的空间用于列表和指向next / prev。

这种方法可以吗?更好的选择?

谢谢。

编辑:我更改了标题以使其更精确

1 个答案:

答案 0 :(得分:0)

我不明白这个问题 迭代所有元素肯定是O(N)操作,不能在恒定时间内完成 使用您的列表,您说您只是保存了一系列table[i]==null操作,这些操作并没有真正为循环添加任何开销。