An implementation of priority queues is presented that supports the operations MakeQueue, FindMin, Insert, Meld and DecreaseKey in worst case time O(1) and DeleteMin and Delete in worst case time O(log n). The space requirement is linear. The data structure presented is the first achieving this worst case performance. 1 Introduction We consider the problem of implementing priority queues which are efficient in the worst case sense. The operations we want to support are the following commonly needed priority queue operations . MakeQueue creates and returns an empty priority queue. FindMin(Q) returns the minimum element contained in priority queue Q. Insert(Q; e) inserts an element e into priority queue Q. Meld(Q 1 ; Q 2 ) melds priority queues Q 1 and Q 2 to a new priority queue and returns the resulting priority queue. DecreaseKey(Q; e; e 0 ) replaces element e by e 0 in priority queue Q provided e 0 e and it is known where e is stored in Q. DeleteMin(Q) deletes and...
user correction - Legacy Corrections
In Proc. 7th ACM-SIAM Symposium on Discrete Algorithms