JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 209252
  • Score
    100M100P100Q190837F
  • License MIT

priority queue implementation in javascript using a Min Heap

Package Exports

  • @datastructures-js/priority-queue

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@datastructures-js/priority-queue) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@datastructures-js/priority-queue

build:? npm npm npm

A highly performant priority queue implementation using a Min Heap data structure.

Table of Contents

Install

npm install --save @datastructures-js/priority-queue

API

require

const PriorityQueue = require('@datastructures-js/priority-queue');

import

import PriorityQueue from '@datastructures-js/priority-queue';

Create a Priority Queue

const priorityQueue = new PriorityQueue();

.enqueue(element, priority)

adds an element with a priority (number) to the queue. The smaller the number, the higher the priority.

runtime params
O(log(n)) element: object

priority: number
priorityQueue.enqueue('patient y', 1); // highest priority
priorityQueue.enqueue('patient z', 3);
priorityQueue.enqueue('patient w', 4); // lowest priority
priorityQueue.enqueue('patient x', 2);

.front()

returns the element with highest priority in the queue.

runtime return
O(1) object
console.log(priorityQueue.front()); // patient y

.back()

returns an element with lowest priority in the queue. If multiple elements exist at the lowest priority, the one that was inserted first will be returned.

runtime return
O(1) object
priorityQueue.enqueue('patient m', 4); // lowest priority
priorityQueue.enqueue('patient c', 4); // lowest priority
console.log(priorityQueue.back()); // patient w

.dequeue()

removes and returns the element with highest priority in the queue.

runtime return
O(log(n)) object
console.log(priorityQueue.dequeue()); // patient y
console.log(priorityQueue.front()); // patient x

.isEmpty()

checks if the queue is empty.

runtime return
O(1) {boolean}
console.log(priorityQueue.isEmpty()); // false

.size()

returns the number of elements in the queue.

runtime return
O(1) number
console.log(priorityQueue.size()); // 5

.toArray()

returns an sorted array of elements from highest priority to lowest.

runtime return
O(n*log(n)) array
console.log(priorityQueue.toArray()); // ['patient x', 'patient z', 'patient c', 'patient w', 'patient m']

.clear()

clears all elements in the queue.

runtime
O(1)
priorityQueue.clear();
console.log(priorityQueue.size()); // 0
console.log(priorityQueue.front()); // null
console.log(priorityQueue.dequeue()); // null

Build

grunt build

License

The MIT License. Full License is here