In the C++ STL, priority_queue
(heap) can be used with any underlying container, such as a deque
. How does the implementation stay O(log n)
if deque
s don't swap an item in index a
with index b
in constant time?
-
Deque stands for double-ended-queue.– BrianCommented Jan 14, 2013 at 15:35
Add a comment
|
1 Answer
You are right that it would not be possible to make an efficient heap implementation on top of a doubly linked list. However, deque
s aren't doubly linked lists; they are random access containers. deque
s are able to swap an item in index a
with index b
in constant time. See the SGI documentation for deque
s.