UNPKG

@panyam/priorityq

Version:

A Priority Queue implementation with O(1) lookups for lookup by value.

22 lines (21 loc) 758 B
export declare type Comparator<T> = (value1: T, value2: T) => number; export declare type Nullable<T> = T | null; export interface Handle<T = any> { value: T; } export declare abstract class Storage<T> { private _cmpFunc; constructor(cmpFunc: Comparator<T>); heapify(values: IterableIterator<T>): void; get comparator(): Comparator<T>; set comparator(cmpFunc: Comparator<T>); abstract get size(): number; abstract clear(): void; adjust(_handle: Handle<T>): void; abstract get sortedHandles(): IterableIterator<Handle<T>>; abstract get isEmpty(): boolean; abstract get top(): Handle<T>; abstract pop(): Handle<T>; abstract push(value: T): Handle<T>; abstract remove(handle: Handle<T>): Handle<T>; }