@practicaljs/priority-queue
Version:
Javascript / Typescript priority queue ( max / min heap )
26 lines (25 loc) • 788 B
TypeScript
/**
* Comparison call back compares two values and returns a number representing priority from highest to lowest
* @returns number 1, 0, -1
*/
export declare type CompareTo<T> = (a: T, b: T) => number;
export declare type Key<T> = (item: T) => string;
export declare class PriorityQueue<T> {
private parentIndex;
private leftIndex;
private rightIndex;
private getKey?;
private heap;
private keyTrack;
compare: CompareTo<T>;
constructor(compareCbk: CompareTo<T>, key?: Key<T>);
get peek(): T;
get length(): number;
hasItem(item: T): boolean;
enqueue(obj: T): void;
private dequeueByIndex;
dequeueItem(item: T): T | null | undefined;
dequeueByKey(key: string): T | undefined;
dequeue(): T | undefined;
clear(): void;
}