【问题标题】:Design hash table with O(n) traversal, where n is number of elements [closed]设计具有 O(n) 遍历的哈希表,其中 n 是元素的数量 [关闭]
【发布时间】:2013-07-14 08:21:54
【问题描述】:

设计具有以下操作的哈希表,您将获得良好的哈希函数..:

插入() –O(1)

find()-O(1)

删除()-O(1)

遍历()-O(n)

【问题讨论】:

  • 去吧,祝你好运
  • 你的问题是?请你帮我做作业好吗?

标签: c data-structures hashtable


【解决方案1】:

在将元素插入哈希表时,也会将元素添加到链表中。当你被要求遍历哈希表时,遍历链表。

【讨论】:

  • 那么删除操作O(1)怎么样?
  • @BryanOlivier:双向链表。
  • 要从链表中删除一个元素,首先要找到链表中的元素,即O(n);在哈希表中找到它的副本在这里没有帮助。还是我错过了什么?
  • @AlexShesterov:元素节点在哈希表中找到,O(1)。元素节点也是双向链表的一部分,因此它可以将自己从中删除。如果我必须为你们实现这个,它就违背了向提问者提示的目的。
  • 啊,列表的元素也是哈希表中的元素(作为参考而不是值),我错过了。
猜你喜欢
  • 1970-01-01
  • 2016-01-25
  • 2017-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-29
  • 2014-09-12
  • 2022-01-19
相关资源
最近更新 更多