Simple JavaScript Priority Queue (Max-Heap) Implementation
binary_heap()
, pairing_heap()
)enqueue
method to add data with priority: 1st argument is priority, 2nd argument can be any JS object.dequeue
method to retrieve and remove data with largest priority.top
method to only retrieve data with largest priority.<script type="text/javascript" src="https://330k.github.io/priorityqueue_js/binary_heap.js"></script>
<script type="text/javascript">
var queue = binary_heap();
//var queue = new d_ary_heap(4);
//var queue = new pairing_heap();
//var queue = new leftist_heap();
//var queue = new skew_heap();
//var queue = new fibonacci_heap();
queue.enqueue(3, "data1");
queue.enqueue(1, "data2");
queue.enqueue(2, "data3");
console.log(queue.dequeue()); // data1
console.log(queue.top()); // data3
console.log(queue.dequeue()); // data3
console.log(queue.dequeue()); // data2
</script>
visit https://330k.github.io/priorityqueue_js/benchmark.html
binary heap, d-ary heap and pairing heap scores good performance stably.