Skip to content

datastructures-js/priority-queue

Repository files navigation

@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

About

Priority Queue based on Heap data structure

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 11