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.
/**
* 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