js-heap
js-heap is a flexible, value-agnostic heap for Javascript. It provides a simple interface and allows users to define custom comparison functions for heap sorting.
Installation
npm install js-heap
Usage
To get started, require
js-heap, and create a new Heap instance:
var Heap = require('js-heap');
var h = new Heap(function(a,b) {
return a - b;
});
The comparison function behaves like a sort function you would pass into a standard Javascript Array.
The default comparison function is the one shown above - the heap is organized so that the highest numeric priority is at the top.
Heap Values
A node in the heap can be whatever you'd like:
var node = {
priority: 1,
value: 'ABCD',
}
h.push(node);
You can create a custom sort function to compare arbitrary nodes:
var h = new Heap(function(a, b) {
return a.priority - b.priority;
});
##.push(node)
Pushes a new node onto the heap. A "node" value can be a primitive or an arbitrary Javascript object. Pushed nodes are sorted based on the provided sort function.
h.push(1);
h.push(2);
...
##.pop()
Removes and returns the top node in the heap. If the heap is empty, null
is returned.
h.pop();
h.pop();
h.pop();
...
##.peek()
Returns the top node in the heap. The node remains on top of the heap.
h.push(1);
h.peek();
h.peek();
...
##.isEmpty()
Returns true
if the heap is empty.
##.length
A read-only length property representing the number of nodes in the heap.