【发布时间】:2013-03-28 12:01:07
【问题描述】:
这是我使用双向链表的队列实现:
QUEUE-EMPTY
if L.head == NIL
return True
else return False
QUEUE(x):
if L.head == NIL:
x.prev = NIL
L.head = x
else
cur = L.head
while cur.next != NIL
cur = cur.next
cur.next = x
x.prev = cur
x.next = NIL
DEQUEUE():
x = L.head
L.head = x.next
x.next.prev = L.head
return x
如何改进?对吗?
有没有办法让 QUEUE O(1) ?
谢谢!!
【问题讨论】:
-
听起来不像是Stack Overflow 的问题。也许听起来像Code Review 的问题。另外,您希望 O(1) 进行哪些操作?队列与它们一样快,当您希望某些操作比它们更快时,您可能需要另一个数据结构。
-
当您将一个空队列出队时,您的队列会发生什么情况?如果保留指向列表最后一个节点的指针,QUEUE 的复杂性是多少?
标签: algorithm linked-list queue pseudocode