forked from Yomguithereal/mnemonist
-
Notifications
You must be signed in to change notification settings - Fork 0
/
heap.d.ts
84 lines (69 loc) · 2.16 KB
/
heap.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/**
* Mnemonist Heap Typings
* =======================
*/
type HeapComparator<T> = (a: T, b: T) => number;
export default class Heap<T> {
// Members
size: number;
// Constructor
constructor(comparator?: HeapComparator<T>);
// Methods
clear(): void;
push(item: T): number;
peek(): T | undefined;
pop(): T | undefined;
replace(item: T): T | undefined;
pushpop(item: T): T | undefined;
toArray(): Array<T>;
consume(): Array<T>;
inspect(): any;
// Statics
static from<I>(
iterable: Iterable<I> | {[key: string] : I},
comparator?: HeapComparator<I>
): Heap<I>;
}
export class MinHeap<T> {
// Members
size: number;
// Constructor
constructor(comparator?: HeapComparator<T>);
// Methods
clear(): void;
push(item: T): number;
peek(): T | undefined;
pop(): T | undefined;
replace(item: T): T | undefined;
pushpop(item: T): T | undefined;
toArray(): Array<T>;
consume(): Array<T>;
inspect(): any;
}
export class MaxHeap<T> {
// Members
size: number;
// Constructor
constructor(comparator?: HeapComparator<T>);
// Methods
clear(): void;
push(item: T): number;
peek(): T | undefined;
pop(): T | undefined;
replace(item: T): T | undefined;
pushpop(item: T): T | undefined;
toArray(): Array<T>;
consume(): Array<T>;
inspect(): any;
}
// Static helpers
export function push<T>(comparator: HeapComparator<T>, heap: Array<T>, item: T): void;
export function pop<T>(comparator: HeapComparator<T>, heap: Array<T>): T;
export function replace<T>(comparator: HeapComparator<T>, heap: Array<T>, item: T): T;
export function pushpop<T>(comparator: HeapComparator<T>, heap: Array<T>, item: T): T;
export function heapify<T>(comparator: HeapComparator<T>, array: Array<T>): void;
export function consume<T>(comparator: HeapComparator<T>, heap: Array<T>): Array<T>;
export function nsmallest<T>(comparator: HeapComparator<T>, n: number, values: Iterable<T>): Array<T>;
export function nsmallest<T>(n: number, values: Iterable<T>): Array<T>;
export function nlargest<T>(comparator: HeapComparator<T>, n: number, values: Iterable<T>): Array<T>;
export function nlargest<T>(n: number, values: Iterable<T>): Array<T>;