@figliolia/data-structures
Version:
Efficient data structures for every day programming
28 lines (27 loc) • 687 B
TypeScript
/**
* Heap
*
* The base construct of the MinHeap and MaxHeap utilities
*/
export declare abstract class Heap<T> {
readonly storage: T[];
private valueExtractor;
constructor(valueExtractor: (value: T) => number);
/**
* Push
*
* Adds an element to the heap and positions it correctly
*/
push(value: T): void;
/**
* Pop
*
* Removes the last element in the heap
*/
pop(): T | undefined;
get length(): number;
private swap;
protected extract(value: T): number;
protected abstract comparer(index1: number, index2: number): boolean;
protected abstract nextChild(left: number, right: number): number;
}