1 / 16

Double-Ended Priority Queues

Explore various advanced priority queue structures and methods, such as dual-ended queues, correspondence-based queues, specialized structures like symmetric min-max heaps and deaps. Learn about dual single-ended priority queues and correspondence structures for efficient element management. Understand operations like insert, remove min, and remove max in these specialized priority queues, including leaf correspondence and added restrictions.

meyerrobert
Download Presentation

Double-Ended Priority Queues

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Double-Ended Priority Queues • Primary operations • Insert • Remove Max • Remove Min • Note that a single-ended priority queue supports just one of the above remove operations.

  2. General Methods • Dual min and max single-ended priority queues. • Correspondence based min and max single-ended priority queues.

  3. Specialized Structures • Symmetric min-max heaps. • Min-max heaps. • Deaps. • Interval heaps.

  4. Dual Single-Ended Priority Queues • Each element is in both a min and a max single-ended priority queue. • Single-ended priority queue also must support an arbitrary remove. • Each node in a priority queue has a pointer to the node in the other priority queue that has the same element.

  5. 1 9 8 6 4 2 5 7 9 3 7 1 4 5 2 3 8 6 Max Heap Min Heap 9-Element Example • Only 5 of 9 two-way pointers shown. • Insert, remove min, remove max, initialize. • Operation cost is more than doubled relative to heap. • Space for 2n nodes.

  6. Correspondence Structures • Use a min and a max single-ended priority queue. • At most 1 element is in a buffer. • Remaining elements are in the single-ended priority queues, which may be of different size. • No element is in both the min and max single-ended priority queue. • Establish a correspondence between the min and max single-ended priority queues. • Total correspondence. • Leaf correspondence. • Single-ended priority queue also must support an arbitrary remove.

  7. Total Correspondence • The min- and max-priority queues are of the same size. • Each element of the min priority queue is paired with a different and >= element in the max priority queue.

  8. 20 1 10 18 9 5 14 17 2 7 Min Heap Max Heap Total Correspondence Example Buffer = 12

  9. 20 1 10 18 9 5 14 17 2 7 Min Heap Max Heap Buffer = 12 Insert • Buffer empty => place in buffer. • Else, insert smaller of new and buffer elements into min priority queue and larger into max priority queue; establish correspondence between the 2 elements.

  10. 20 1 10 18 9 5 14 17 2 7 Min Heap Max Heap Buffer = 12 Remove Min • Buffer is min => empty buffer. • Else, remove min from min PQ as well as corresponding element from max PQ; reinsert corresponding element.

  11. Leaf Correspondence • Min- and max-priority queues may have different size. • Each leaf element of the min priority queue is paired with a different and >= element in the max priority queue. • Each leaf element of the max priority queue is paired with a different and <= element in the min priority queue.

  12. Added Restrictions • When an element is inserted into a single-ended PQ, only the newly inserted element can become a new leaf. • When an element is deleted from a single-ended PQ, only the parent of the deleted element can become a new leaf. • Min and max heaps do not satisfy these restrictions. So, leaf correspondence is harder to implement using min and max heaps.

  13. 20 1 10 18 3 5 14 17 6 7 Min Heap Max Heap Leaf Correspondence Example Buffer = 12

  14. 20 1 10 18 3 5 14 17 6 7 Min Heap Max Heap Buffer = 12 Insert • Buffer empty => place in buffer. • Else, insert smaller of new and buffer elements into min priority queue; insert larger into max priority queue only if smaller one is a leaf.

  15. 20 1 10 18 3 5 14 17 6 7 Min Heap Max Heap Buffer = 12 Insert • Case when min and/or max heap originally have an even number of elements is more involved, because a nonleaf may become a leaf. See reference.

  16. 20 1 10 18 3 5 14 17 6 7 Min Heap Max Heap Buffer = 12 Remove Min • Buffer is min => empty buffer. • Else, remove min from min PQ as well as corresponding leaf element (if any) from max PQ; reinsert removed corresponding element (see reference for details).

More Related