PriorityQueue


superclass: Object


PriorityQueue implements a priority queue data structure, which is

used to build schedulers.

It allows you to put in items at some arbitrary time and pop them in 

time order.


Instance Methods:


put(time, item)


Puts the item in the queue at the given time.


topPriority


Returns the time of the earliest item in the queue.


pop


Returns the earliest item in the queue.


clear


Empty the queue.


isEmpty


Return a Boolean whether the queue is empty.


notEmpty


Return a Boolean whether the queue is not empty.



Example:


(

var p;

p = PriorityQueue.new;


p.put(0.1, \a);

p.put(2.0, \b);

p.put(0.5, \c);

p.put(0.2, \d);

p.put(1.0, \e);


while ({ p.notEmpty },{

[p.topPriority, p.pop].postln;

});



p.pop.postln;

p.pop.postln;

p.pop.postln;


)


[ 0.1, a ]

[ 0.2, d ]

[ 0.5, c ]

[ 1, e ]

[ 2, b ]

nil

nil

nil