【发布时间】:2014-05-30 09:39:02
【问题描述】:
这是CLRS 3rd的练习:
10.2-3 通过单链表L实现队列。ENQUEUE和DEQUEUE操作仍然需要O(1)时间。
使用单链表实现队列并不难。我的问题是时间复杂度。如何实现 O(1) 的 ENQUEUE 和 DEQUEQUE?
我在 google 上找到的东西类似于使用指针来跟踪头部和尾部。现在问题变成了如何使用 O(1) 时间在单链表上跟踪头尾?恕我直言,跟踪尾巴需要 O(n)。我对吗?
【问题讨论】:
-
维护两个指针:
head和tail。在enqueueing 时操作tail,在dequeueing 时操作head。
标签: c++ c algorithm data-structures