A highly performant priority queue implementation using a Min Heap data structure.
npm install --save @datastructures-js/priority-queueconst PriorityQueue = require('@datastructures-js/priority-queue');import PriorityQueue from '@datastructures-js/priority-queue';const priorityQueue = new PriorityQueue();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);returns the element with highest priority in the queue.
| runtime | return |
|---|---|
| O(1) | object |
console.log(priorityQueue.front()); // patient yreturns 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 wremoves 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 xchecks if the queue is empty.
| runtime | return |
|---|---|
| O(1) | {boolean} |
console.log(priorityQueue.isEmpty()); // falsereturns the number of elements in the queue.
| runtime | return |
|---|---|
| O(1) | number |
console.log(priorityQueue.size()); // 5returns 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']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()); // nullgrunt build
The MIT License. Full License is here