tstruct
Version:
Data structures & basic algorithms library
47 lines (46 loc) • 1.27 kB
TypeScript
export interface IHeap<T> {
add(value: T): void;
remove(value: T): void;
getRoot(): T;
extractRoot(): T;
toArray(): T[];
rearrange(): void;
readonly size: number;
[Symbol.iterator](): Iterator<T, any, undefined>;
}
export interface IMaxHeap<T> extends IHeap<T> {
extractMax(): T;
getMax(): T;
}
export interface IMinHeap<T> extends IHeap<T> {
extractMin(): T;
getMin(): T;
}
export declare class Heap<T> implements IHeap<T> {
private compareFunction;
private _data;
get size(): number;
constructor(compareFunction?: (e1: T, e2: T) => -1 | 0 | 1);
getRoot(): T;
extractRoot(): T;
add(value: T): void;
rearrange(): void;
_rearrange(index: number): void;
private _checkOnParent;
private _checkOnChildren;
remove(value: T): void;
toArray(): T[];
private getParentIndex;
private getChildrenIndex;
[Symbol.iterator](): Iterator<T, any, undefined>;
}
export declare class MaxHeap<T> extends Heap<T> implements IMaxHeap<T> {
constructor();
extractMax(): T;
getMax(): T;
}
export declare class MinHeap<T> extends Heap<T> implements IMinHeap<T> {
constructor();
extractMin(): T;
getMin(): T;
}