SortedPriorityQueue

Container of elements which grants access to the least item stored in constant time and takes linear time for insertion. This structure is based on DoublyLinkedList.

new SortedPriorityQueue()

/**
 * Creates an instance of SortedPriorityQueue.
 *
 * @param elements List of elements to create the new priority queue with.
 * @param compare Comparison function for element search. Elements are compared as numbers by default.
 */
constructor(elements: K[] | [K, V][] = [], protected compare: CompareFunc<K> = compareAsNumbers)

length

length: number

Number of elements in the queue. This field is read only.

Examples:

import { SortedPriorityQueue } from 'ads-js/queues';

const queue = new SortedPriorityQueue();

queue.length === 0; // true
queue.enqueue(1);
queue.length === 1; // true

clear()

/**
 * Clears the queue.
 */
clear(): void;

dequeue()

/**
 * Removes the first element from the front of the queue and returns it.
 * Throws an error if the queue is empty.
 *
 * @returns Removed element.
 */
dequeue(): T;

enqueue()

/**
 * Adds element at the rear of the queue.
 *
 * @param element Element to add.
 */
enqueue(element: T): void;

getFirst()

/**
 * Gets element from the front of the queue without its removal.
 *
 * @returns Queue element.
 */
getFirst(): T;

isEmpty()

isEmpty(): boolean

Running time O(1)

Checks whether the queue is empty or not.

Returns:

TRUE if the queue is empty, FALSE otherwise.

Examples:

import { SortedPriorityQueue } from 'ads-js/queues';

const queue = new SortedPriorityQueue();

queue.isEmpty(); // true
queue.enqueue(1);
queue.isEmpty(); // false

Last updated

Was this helpful?