data-structure-typed 1.36.0 → 1.36.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -1
- package/dist/data-structures/binary-tree/abstract-binary-tree.d.ts +3 -509
- package/dist/data-structures/binary-tree/abstract-binary-tree.js +1 -1175
- package/dist/data-structures/binary-tree/abstract-binary-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/avl-tree.d.ts +1 -1
- package/dist/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/binary-tree.d.ts +506 -1
- package/dist/data-structures/binary-tree/binary-tree.js +1173 -2
- package/dist/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/bst.d.ts +1 -1
- package/dist/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/data-structures/binary-tree/rb-tree.d.ts +1 -1
- package/dist/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/tree-multiset.d.ts +1 -1
- package/dist/data-structures/binary-tree/tree-multiset.js.map +1 -1
- package/dist/data-structures/heap/heap.d.ts +22 -23
- package/dist/data-structures/heap/heap.js +8 -25
- package/dist/data-structures/heap/heap.js.map +1 -1
- package/dist/data-structures/heap/max-heap.d.ts +2 -2
- package/dist/data-structures/heap/min-heap.d.ts +2 -2
- package/dist/data-structures/priority-queue/max-priority-queue.d.ts +2 -2
- package/dist/data-structures/priority-queue/min-priority-queue.d.ts +2 -2
- package/dist/data-structures/priority-queue/priority-queue.d.ts +2 -2
- package/dist/types/data-structures/abstract-binary-tree.d.ts +1 -3
- package/dist/types/data-structures/binary-tree.d.ts +4 -2
- package/lib/data-structures/binary-tree/abstract-binary-tree.d.ts +3 -509
- package/lib/data-structures/binary-tree/abstract-binary-tree.js +1 -1175
- package/lib/data-structures/binary-tree/avl-tree.d.ts +1 -1
- package/lib/data-structures/binary-tree/binary-tree.d.ts +506 -1
- package/lib/data-structures/binary-tree/binary-tree.js +1173 -2
- package/lib/data-structures/binary-tree/bst.d.ts +1 -1
- package/lib/data-structures/binary-tree/rb-tree.d.ts +1 -1
- package/lib/data-structures/binary-tree/tree-multiset.d.ts +1 -1
- package/lib/data-structures/heap/heap.d.ts +22 -23
- package/lib/data-structures/heap/heap.js +8 -25
- package/lib/data-structures/heap/max-heap.d.ts +2 -2
- package/lib/data-structures/heap/min-heap.d.ts +2 -2
- package/lib/data-structures/priority-queue/max-priority-queue.d.ts +2 -2
- package/lib/data-structures/priority-queue/min-priority-queue.d.ts +2 -2
- package/lib/data-structures/priority-queue/priority-queue.d.ts +2 -2
- package/lib/types/data-structures/abstract-binary-tree.d.ts +1 -3
- package/lib/types/data-structures/binary-tree.d.ts +4 -2
- package/package.json +4 -4
- package/src/data-structures/binary-tree/abstract-binary-tree.ts +4 -1527
- package/src/data-structures/binary-tree/avl-tree.ts +3 -3
- package/src/data-structures/binary-tree/binary-tree.ts +1524 -5
- package/src/data-structures/binary-tree/bst.ts +3 -3
- package/src/data-structures/binary-tree/rb-tree.ts +3 -3
- package/src/data-structures/binary-tree/tree-multiset.ts +3 -3
- package/src/data-structures/heap/heap.ts +29 -47
- package/src/data-structures/heap/max-heap.ts +2 -2
- package/src/data-structures/heap/min-heap.ts +2 -2
- package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
- package/src/data-structures/priority-queue/min-priority-queue.ts +2 -2
- package/src/data-structures/priority-queue/priority-queue.ts +2 -2
- package/src/types/data-structures/abstract-binary-tree.ts +1 -1
- package/src/types/data-structures/binary-tree.ts +2 -2
- package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +2 -1
- package/test/unit/data-structures/priority-queue/min-priority-queue.test.ts +1 -1
- package/umd/bundle.min.js +1 -1
- package/umd/bundle.min.js.LICENSE.txt +7 -0
- package/umd/bundle.min.js.map +1 -1
|
@@ -16,9 +16,9 @@ import {CP, LoopType} from '../../types';
|
|
|
16
16
|
import {BinaryTree, BinaryTreeNode} from './binary-tree';
|
|
17
17
|
import {IBST, IBSTNode} from '../../interfaces';
|
|
18
18
|
|
|
19
|
-
export class BSTNode<V = any,
|
|
20
|
-
extends BinaryTreeNode<V,
|
|
21
|
-
implements IBSTNode<V,
|
|
19
|
+
export class BSTNode<V = any, FAMILY extends BSTNode<V, FAMILY> = BSTNodeNested<V>>
|
|
20
|
+
extends BinaryTreeNode<V, FAMILY>
|
|
21
|
+
implements IBSTNode<V, FAMILY>
|
|
22
22
|
{
|
|
23
23
|
constructor(key: BinaryTreeNodeKey, val?: V) {
|
|
24
24
|
super(key, val);
|
|
@@ -2,9 +2,9 @@ import {BinaryTreeNodeKey, RBColor, RBTreeNodeNested, RBTreeOptions} from '../..
|
|
|
2
2
|
import {IRBTree, IRBTreeNode} from '../../interfaces';
|
|
3
3
|
import {BST, BSTNode} from './bst';
|
|
4
4
|
|
|
5
|
-
export class RBTreeNode<V = any,
|
|
6
|
-
extends BSTNode<V,
|
|
7
|
-
implements IRBTreeNode<V,
|
|
5
|
+
export class RBTreeNode<V = any, FAMILY extends RBTreeNode<V, FAMILY> = RBTreeNodeNested<V>>
|
|
6
|
+
extends BSTNode<V, FAMILY>
|
|
7
|
+
implements IRBTreeNode<V, FAMILY>
|
|
8
8
|
{
|
|
9
9
|
private _color: RBColor;
|
|
10
10
|
|
|
@@ -10,9 +10,9 @@ import {BinaryTreeDeletedResult, CP, DFSOrderPattern, FamilyPosition, LoopType}
|
|
|
10
10
|
import {ITreeMultiset, ITreeMultisetNode} from '../../interfaces';
|
|
11
11
|
import {AVLTree, AVLTreeNode} from './avl-tree';
|
|
12
12
|
|
|
13
|
-
export class TreeMultisetNode<V = any,
|
|
14
|
-
extends AVLTreeNode<V,
|
|
15
|
-
implements ITreeMultisetNode<V,
|
|
13
|
+
export class TreeMultisetNode<V = any, FAMILY extends TreeMultisetNode<V, FAMILY> = TreeMultisetNodeNested<V>>
|
|
14
|
+
extends AVLTreeNode<V, FAMILY>
|
|
15
|
+
implements ITreeMultisetNode<V, FAMILY>
|
|
16
16
|
{
|
|
17
17
|
/**
|
|
18
18
|
* The constructor function initializes a BinaryTreeNode object with a key, value, and count.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* data-structure-typed
|
|
3
|
-
*
|
|
4
3
|
* @author Kirk Qi
|
|
5
4
|
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
6
5
|
* @license MIT License
|
|
@@ -8,11 +7,11 @@
|
|
|
8
7
|
|
|
9
8
|
import type {CompareFunction} from '../../types';
|
|
10
9
|
|
|
11
|
-
export class Heap<
|
|
12
|
-
|
|
13
|
-
private readonly comparator: CompareFunction<
|
|
10
|
+
export class Heap<E> {
|
|
11
|
+
protected nodes: E[] = [];
|
|
12
|
+
private readonly comparator: CompareFunction<E>;
|
|
14
13
|
|
|
15
|
-
constructor(comparator: CompareFunction<
|
|
14
|
+
constructor(comparator: CompareFunction<E>) {
|
|
16
15
|
this.comparator = comparator;
|
|
17
16
|
}
|
|
18
17
|
|
|
@@ -20,7 +19,7 @@ export class Heap<T> {
|
|
|
20
19
|
* Insert an element into the heap and maintain the heap properties.
|
|
21
20
|
* @param value - The element to be inserted.
|
|
22
21
|
*/
|
|
23
|
-
add(value:
|
|
22
|
+
add(value: E): Heap<E> {
|
|
24
23
|
this.nodes.push(value);
|
|
25
24
|
this.bubbleUp(this.nodes.length - 1);
|
|
26
25
|
return this;
|
|
@@ -30,16 +29,16 @@ export class Heap<T> {
|
|
|
30
29
|
* Remove and return the top element (smallest or largest element) from the heap.
|
|
31
30
|
* @returns The top element or null if the heap is empty.
|
|
32
31
|
*/
|
|
33
|
-
poll():
|
|
32
|
+
poll(): E | null {
|
|
34
33
|
if (this.nodes.length === 0) {
|
|
35
34
|
return null;
|
|
36
35
|
}
|
|
37
36
|
if (this.nodes.length === 1) {
|
|
38
|
-
return this.nodes.pop() as
|
|
37
|
+
return this.nodes.pop() as E;
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
const topValue = this.nodes[0];
|
|
42
|
-
this.nodes[0] = this.nodes.pop() as
|
|
41
|
+
this.nodes[0] = this.nodes.pop() as E;
|
|
43
42
|
this.sinkDown(0);
|
|
44
43
|
return topValue;
|
|
45
44
|
}
|
|
@@ -99,7 +98,7 @@ export class Heap<T> {
|
|
|
99
98
|
* Peek at the top element of the heap without removing it.
|
|
100
99
|
* @returns The top element or null if the heap is empty.
|
|
101
100
|
*/
|
|
102
|
-
peek():
|
|
101
|
+
peek(): E | null {
|
|
103
102
|
if (this.nodes.length === 0) {
|
|
104
103
|
return null;
|
|
105
104
|
}
|
|
@@ -117,7 +116,7 @@ export class Heap<T> {
|
|
|
117
116
|
* Get the last element in the heap, which is not necessarily a leaf node.
|
|
118
117
|
* @returns The last element or null if the heap is empty.
|
|
119
118
|
*/
|
|
120
|
-
leaf():
|
|
119
|
+
get leaf(): E | null {
|
|
121
120
|
return this.nodes[this.size - 1] ?? null;
|
|
122
121
|
}
|
|
123
122
|
|
|
@@ -129,11 +128,18 @@ export class Heap<T> {
|
|
|
129
128
|
return this.size === 0;
|
|
130
129
|
}
|
|
131
130
|
|
|
131
|
+
/**
|
|
132
|
+
* Reset the nodes of the heap. Make the nodes empty.
|
|
133
|
+
*/
|
|
132
134
|
clear() {
|
|
133
135
|
this.nodes = [];
|
|
134
136
|
}
|
|
135
137
|
|
|
136
|
-
|
|
138
|
+
/**
|
|
139
|
+
* Clear and add nodes of the heap
|
|
140
|
+
* @param nodes
|
|
141
|
+
*/
|
|
142
|
+
refill(nodes: E[]) {
|
|
137
143
|
this.nodes = nodes;
|
|
138
144
|
this.fix();
|
|
139
145
|
}
|
|
@@ -143,41 +149,17 @@ export class Heap<T> {
|
|
|
143
149
|
* @param value - the element to check.
|
|
144
150
|
* @returns Returns true if the specified element is contained; otherwise, returns false.
|
|
145
151
|
*/
|
|
146
|
-
has(value:
|
|
152
|
+
has(value: E): boolean {
|
|
147
153
|
return this.nodes.includes(value);
|
|
148
154
|
}
|
|
149
155
|
|
|
150
|
-
/**
|
|
151
|
-
* Use a comparison function to find the index of an element in the heap.
|
|
152
|
-
* @param value - the element to find.
|
|
153
|
-
* @param index - the index currently being searched.
|
|
154
|
-
* @returns The index of the element, or -1 if not found.
|
|
155
|
-
*/
|
|
156
|
-
private findIndex(value: T, index: number): number {
|
|
157
|
-
if (index >= this.size) {
|
|
158
|
-
return -1;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
const compareResult = this.comparator(value, this.nodes[index]);
|
|
162
|
-
|
|
163
|
-
if (compareResult === 0) {
|
|
164
|
-
return index; // Element found
|
|
165
|
-
} else if (compareResult < 0) {
|
|
166
|
-
// The element should be in the left subtree
|
|
167
|
-
return this.findIndex(value, 2 * index + 1);
|
|
168
|
-
} else {
|
|
169
|
-
// The element should be in the right subtree
|
|
170
|
-
return this.findIndex(value, 2 * index + 2);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
156
|
/**
|
|
175
157
|
* Depth-first search (DFS) method, different traversal orders can be selected。
|
|
176
158
|
* @param order - Traversal order parameter: 'in' (in-order), 'pre' (pre-order) or 'post' (post-order).
|
|
177
159
|
* @returns An array containing elements traversed in the specified order.
|
|
178
160
|
*/
|
|
179
|
-
dfs(order: 'in' | 'pre' | 'post'):
|
|
180
|
-
const result:
|
|
161
|
+
dfs(order: 'in' | 'pre' | 'post'): E[] {
|
|
162
|
+
const result: E[] = [];
|
|
181
163
|
|
|
182
164
|
// Auxiliary recursive function, traverses the binary heap according to the traversal order
|
|
183
165
|
const dfsHelper = (index: number) => {
|
|
@@ -207,11 +189,11 @@ export class Heap<T> {
|
|
|
207
189
|
* Convert the heap to an array.
|
|
208
190
|
* @returns An array containing the elements of the heap.
|
|
209
191
|
*/
|
|
210
|
-
toArray():
|
|
192
|
+
toArray(): E[] {
|
|
211
193
|
return [...this.nodes];
|
|
212
194
|
}
|
|
213
195
|
|
|
214
|
-
getNodes():
|
|
196
|
+
getNodes(): E[] {
|
|
215
197
|
return this.nodes;
|
|
216
198
|
}
|
|
217
199
|
|
|
@@ -219,8 +201,8 @@ export class Heap<T> {
|
|
|
219
201
|
* Clone the heap, creating a new heap with the same elements.
|
|
220
202
|
* @returns A new Heap instance containing the same elements.
|
|
221
203
|
*/
|
|
222
|
-
clone(): Heap<
|
|
223
|
-
const clonedHeap = new Heap<
|
|
204
|
+
clone(): Heap<E> {
|
|
205
|
+
const clonedHeap = new Heap<E>(this.comparator);
|
|
224
206
|
clonedHeap.nodes = [...this.nodes];
|
|
225
207
|
return clonedHeap;
|
|
226
208
|
}
|
|
@@ -229,8 +211,8 @@ export class Heap<T> {
|
|
|
229
211
|
* Sort the elements in the heap and return them as an array.
|
|
230
212
|
* @returns An array containing the elements sorted in ascending order.
|
|
231
213
|
*/
|
|
232
|
-
sort():
|
|
233
|
-
const visitedNode:
|
|
214
|
+
sort(): E[] {
|
|
215
|
+
const visitedNode: E[] = [];
|
|
234
216
|
const cloned = this.clone();
|
|
235
217
|
while (cloned.size !== 0) {
|
|
236
218
|
const top = cloned.poll();
|
|
@@ -245,8 +227,8 @@ export class Heap<T> {
|
|
|
245
227
|
* @param comparator - Comparison function.
|
|
246
228
|
* @returns A new Heap instance.
|
|
247
229
|
*/
|
|
248
|
-
static heapify<
|
|
249
|
-
const binaryHeap = new Heap<
|
|
230
|
+
static heapify<E>(nodes: E[], comparator: CompareFunction<E>): Heap<E> {
|
|
231
|
+
const binaryHeap = new Heap<E>(comparator);
|
|
250
232
|
binaryHeap.nodes = [...nodes];
|
|
251
233
|
binaryHeap.fix(); // Fix heap properties
|
|
252
234
|
return binaryHeap;
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
import {Heap} from './heap';
|
|
10
10
|
import type {CompareFunction} from '../../types';
|
|
11
11
|
|
|
12
|
-
export class MaxHeap<
|
|
12
|
+
export class MaxHeap<E = any> extends Heap<E> {
|
|
13
13
|
constructor(
|
|
14
|
-
comparator: CompareFunction<
|
|
14
|
+
comparator: CompareFunction<E> = (a: E, b: E) => {
|
|
15
15
|
if (!(typeof a === 'number' && typeof b === 'number')) {
|
|
16
16
|
throw new Error('The a, b params of compare function must be number');
|
|
17
17
|
} else {
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
import {Heap} from './heap';
|
|
10
10
|
import type {CompareFunction} from '../../types';
|
|
11
11
|
|
|
12
|
-
export class MinHeap<
|
|
12
|
+
export class MinHeap<E = any> extends Heap<E> {
|
|
13
13
|
constructor(
|
|
14
|
-
comparator: CompareFunction<
|
|
14
|
+
comparator: CompareFunction<E> = (a: E, b: E) => {
|
|
15
15
|
if (!(typeof a === 'number' && typeof b === 'number')) {
|
|
16
16
|
throw new Error('The a, b params of compare function must be number');
|
|
17
17
|
} else {
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
import {PriorityQueue} from './priority-queue';
|
|
9
9
|
import type {CompareFunction} from '../../types';
|
|
10
10
|
|
|
11
|
-
export class MaxPriorityQueue<
|
|
11
|
+
export class MaxPriorityQueue<E = any> extends PriorityQueue<E> {
|
|
12
12
|
constructor(
|
|
13
|
-
compare: CompareFunction<
|
|
13
|
+
compare: CompareFunction<E> = (a: E, b: E) => {
|
|
14
14
|
if (!(typeof a === 'number' && typeof b === 'number')) {
|
|
15
15
|
throw new Error('The a, b params of compare function must be number');
|
|
16
16
|
} else {
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
import {PriorityQueue} from './priority-queue';
|
|
9
9
|
import type {CompareFunction} from '../../types';
|
|
10
10
|
|
|
11
|
-
export class MinPriorityQueue<
|
|
11
|
+
export class MinPriorityQueue<E = any> extends PriorityQueue<E> {
|
|
12
12
|
constructor(
|
|
13
|
-
compare: CompareFunction<
|
|
13
|
+
compare: CompareFunction<E> = (a: E, b: E) => {
|
|
14
14
|
if (!(typeof a === 'number' && typeof b === 'number')) {
|
|
15
15
|
throw new Error('The a, b params of compare function must be number');
|
|
16
16
|
} else {
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
import {Heap} from '../heap';
|
|
10
10
|
import {CompareFunction} from '../../types';
|
|
11
11
|
|
|
12
|
-
export class PriorityQueue<
|
|
13
|
-
constructor(comparator: CompareFunction<
|
|
12
|
+
export class PriorityQueue<E> extends Heap<E> {
|
|
13
|
+
constructor(comparator: CompareFunction<E>) {
|
|
14
14
|
super(comparator);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -45,5 +45,5 @@ export type AbstractBinaryTreeNodeProperties<N extends AbstractBinaryTreeNode<N[
|
|
|
45
45
|
export type AbstractBinaryTreeNodeNested<T> = AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
|
|
46
46
|
|
|
47
47
|
export type AbstractBinaryTreeOptions = {
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {BinaryTreeNode} from '../../data-structures/binary-tree';
|
|
2
|
-
import {AbstractBinaryTreeOptions} from './abstract-binary-tree';
|
|
2
|
+
import {AbstractBinaryTreeOptions, LoopType} from './abstract-binary-tree';
|
|
3
3
|
|
|
4
4
|
export type BinaryTreeNodeNested<T> = BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, BinaryTreeNode<T, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|
5
|
-
export type BinaryTreeOptions = AbstractBinaryTreeOptions & {}
|
|
5
|
+
export type BinaryTreeOptions = AbstractBinaryTreeOptions & { loopType?: LoopType }
|
|
@@ -89,7 +89,8 @@ describe('MaxPriorityQueue Performance Test', () => {
|
|
|
89
89
|
prev = polled;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
|
|
92
|
+
const cost = performance.now() - startTime;
|
|
93
|
+
expect(cost).toBeLessThan(bigO.LINEAR * 20);
|
|
93
94
|
expect(prev).toBeGreaterThan(0);
|
|
94
95
|
});
|
|
95
96
|
|