UNPKG

@figliolia/data-structures

Version:

Efficient data structures for every day programming

28 lines (27 loc) 687 B
/** * 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; }