具有O(1)的队列平均排队和出队

时间:2015-07-22 23:09:12

标签: algorithm queue

我在Problem Solving with Algorithms and Data Structures进行了一次练习。练习说可以实现一个队列,其中enqueue和dequeue平均为O(1),并且当出队是O(n)时有一种情况。

我唯一能想到的是使用一个列表,其中列表的索引跟踪队列的前端(出队侧)。在该排队结尾(即,附加是O(1))并且出队通过复制当前“前”元素然后向前移动前索引跟踪器来进行操作。但这是大量的空间成本,并不是目标答案,因为两者总是O(1)。

对此有何想法?

1 个答案:

答案 0 :(得分:1)

有很多方法可以实现队列并只使用O(n)空间。

How to implement a queue using two stacks?

C Program to Implement Queue Data Structure using Linked List

Circular buffer

......我认为你不需要知道花费O(n)时间出列的实现。