priorityqueue_js

Simple JavaScript Priority Queue (Max-Heap) Implementation

Usage

  1. Load .js (e.g. binary_heap.js, pairing_heap.js)
  2. create priority queue object by calling function (e.g. binary_heap(), pairing_heap())
  3. call enqueue method to add data with priority: 1st argument is priority, 2nd argument can be any JS object.
  4. call dequeue method to retrieve and remove data with largest priority.
  5. call top method to only retrieve data with largest priority.

Example: Binary Heap

<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>

Benchmark

visit https://330k.github.io/priorityqueue_js/benchmark.html

binary heap, d-ary heap and pairing heap scores good performance stably.

Copyright