44 lines
934 B
Markdown
44 lines
934 B
Markdown
BinaryHeap
|
|
==========
|
|
|
|
Basic binary heap tree using linked lists
|
|
|
|
Usage
|
|
-----
|
|
|
|
```javascript
|
|
var BinaryHeap = require('binaryheap');
|
|
var heap = new BinaryHeap();
|
|
|
|
var a = [6, 5, 3, 1, 8, 7, 2, 4];
|
|
|
|
a.forEach(function (k) {
|
|
heap.insert({ value: k }, k);
|
|
});
|
|
|
|
heap.print();
|
|
|
|
while (heap.length) {
|
|
console.log('popping', heap.pop().value);
|
|
}
|
|
```
|
|
|
|
By default it stores as a max-heap, if you pass truthy to the constructor though
|
|
it will behave as a min-heap.
|
|
|
|
Methods
|
|
-------
|
|
|
|
* `insert(obj, key)` -- obj can be any new or existing object, and key is any
|
|
value that behaves sanely with `>` or `<`
|
|
* `pop()` -- removes and returns the maximum or minimum object from the root
|
|
of the heap
|
|
* `remove(obj)` -- removes a previously inserted object from the heap
|
|
* `print()` -- mostly for debugging purposes prints a graphviz dot style
|
|
digraph to confirm ordering
|
|
|
|
Members
|
|
-------
|
|
|
|
* `length` -- number of objects currently in the heap
|