A simple priority queue data structure for Node.js.
npm install priorityqueuejs
var PriorityQueue = require('priorityqueuejs');
var queue = new PriorityQueue(function(a, b) {
return a.cash - b.cash;
});
queue.enq({ cash: 250, name: 'Valentina' });
queue.enq({ cash: 300, name: 'Jano' });
queue.enq({ cash: 150, name: 'Fran' });
queue.size(); // 3
queue.peek(); // { cash: 300, name: 'Jano' }
queue.deq(); // { cash: 300, name: 'Jano' }
queue.size(); // 2
Initializes a new empty PriorityQueue
wich uses .DEFAULT_COMPARATOR()
as
the comparator function for its elements.
Initializes a new empty PriorityQueue
with uses the given comparator(a, b)
function as the comparator for its elements.
The comparator function must return a positive number when a > b
, 0 when
a == b
and a negative number when a < b
.
Compares two Number
or String
objects.
Dequeues the top element of the priority queue.
Throws an Error
when the queue is empty.
Enqueues the element
at the priority queue and returns its new size.
Executes fn
on each element. Just be careful to not modify the priorities,
since the queue won't reorder itself.
Returns whether the priority queue is empty or not.
Peeks at the top element of the priority queue.
Throws an Error
when the queue is empty.
Returns the size of the priority queue.
npm install
npm test
MIT