【发布时间】:2017-05-07 21:14:39
【问题描述】:
我知道实现队列的两种方法,使用链表或使用数组。我应该使用哪一个来在哈希表中制作存储桶,当存储桶超过条目限制时,哈希表需要重新散列。我是否有可能获得 O(1) 入队和出队以及使用其他数据结构的索引?
使用数组我可以让存储桶大小达到更高的值,因为数组中的索引让我可以对键使用二进制搜索(按排序顺序插入)。考虑一下如果桶大小变为 1000,搜索变为 ln(1000) 与 1000 的好处。插入操作变为 O(n),但是查找比插入更常见。
使用链表我得到 O(1) 插入,删除但我也得到 O(n)。
我的问题是,我是否可以同时使用其他数据结构获得好处,或者使用这些数据结构的好处明显比其他更多?
【问题讨论】:
-
我试图了解您为什么要使用队列作为哈希表存储桶。为什么不直接使用动态列表?
-
@JimMischel 你的权利,让我解释一下,编辑问题。
标签: data-structures linked-list hashmap queue