You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are two types of PriorityQueue in this repo: MinPriorityQueue which uses a MinHeap and considers an element with smaller priority number as higher in priority. And MaxPriorityQueue which uses a MaxHeap and cosiders an element with bigger priority number as higher in priority.
The constructor can accept a callback to get the priority from the queued element. If not passed, the priortiy should be passed with .enqueue.
Example
// the priority not part of the enqueued elementconstpatientsQueue=newMinPriorityQueue();// the priority is a prop of the queued elementconstbiddersQueue=newMaxPriorityQueue({priority: (bid)=>bid.value});
.enqueue(element[, priority])
adds an element with a priority (number) to the queue. Priority is not required here if a priority callback has been defined in the constructor. If passed here in addition to an existing constructor callback, it will override the callback one.
params
name
type
element
object
priority
number
runtime
O(log(n))
Example
// MinPriorityQueue Example, where priority is the turn for examplepatientsQueue.enqueue('patient y',1);// highest prioritypatientsQueue.enqueue('patient z',3);patientsQueue.enqueue('patient w',4);// lowest prioritypatientsQueue.enqueue('patient x',2);// MaxPriorityQueue Example, where priority is the bid for example. Priority is obtained from the callback.biddersQueue.enqueue({name: 'bidder y',value: 1000});// lowest prioritybiddersQueue.enqueue({name: 'bidder w',value: 2500});biddersQueue.enqueue({name: 'bidder z',value: 3500});// highest prioritybiddersQueue.enqueue({name: 'bidder x',value: 3000});
.front()
returns the element with highest priority in the queue.
return
description
object
object literal with "priority" and "element" props
returns an element with lowest priority in the queue. If multiple elements exist at the lowest priority, the one that was inserted first will be returned.
return
description
object
object literal with "priority" and "element" props