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