data-structure-typed 1.50.7 → 1.50.9
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 +1 -1
- package/README.md +73 -67
- package/benchmark/report.html +1 -37
- package/benchmark/report.json +15 -393
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +14 -3
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +17 -6
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +33 -34
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +22 -3
- package/dist/cjs/data-structures/binary-tree/bst.js +78 -39
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +5 -5
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +47 -50
- package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.d.ts +40 -23
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +44 -28
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
- package/dist/cjs/data-structures/heap/heap.d.ts +1 -1
- package/dist/cjs/data-structures/heap/heap.js +5 -5
- package/dist/cjs/types/common.d.ts +6 -29
- package/dist/cjs/types/common.js +0 -40
- package/dist/cjs/types/common.js.map +1 -1
- package/dist/cjs/types/data-structures/binary-tree/rb-tree.d.ts +1 -4
- package/dist/cjs/types/data-structures/binary-tree/rb-tree.js +0 -6
- package/dist/cjs/types/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +14 -3
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js +17 -6
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +1 -1
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +33 -34
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +22 -3
- package/dist/mjs/data-structures/binary-tree/bst.js +78 -39
- package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +5 -5
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +47 -50
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.d.ts +40 -23
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +44 -28
- package/dist/mjs/data-structures/heap/heap.d.ts +1 -1
- package/dist/mjs/data-structures/heap/heap.js +5 -5
- package/dist/mjs/types/common.d.ts +6 -29
- package/dist/mjs/types/common.js +1 -39
- package/dist/mjs/types/data-structures/binary-tree/rb-tree.d.ts +1 -4
- package/dist/mjs/types/data-structures/binary-tree/rb-tree.js +1 -5
- package/dist/umd/data-structure-typed.js +212 -206
- package/dist/umd/data-structure-typed.min.js +2 -2
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +6 -6
- package/src/data-structures/binary-tree/avl-tree-multi-map.ts +20 -7
- package/src/data-structures/binary-tree/binary-tree.ts +54 -45
- package/src/data-structures/binary-tree/bst.ts +86 -42
- package/src/data-structures/binary-tree/rb-tree.ts +49 -49
- package/src/data-structures/binary-tree/tree-multi-map.ts +48 -29
- package/src/data-structures/heap/heap.ts +5 -5
- package/src/types/common.ts +6 -30
- package/src/types/data-structures/binary-tree/rb-tree.ts +1 -1
- package/test/integration/all-in-one.test.ts +4 -4
- package/test/integration/avl-tree.test.ts +1 -1
- package/test/integration/bst.test.ts +2 -2
- package/test/performance/data-structures/binary-tree/avl-tree.test.ts +20 -15
- package/test/performance/data-structures/binary-tree/binary-tree.test.ts +1 -1
- package/test/performance/data-structures/binary-tree/rb-tree.test.ts +13 -22
- package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +15 -23
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +8 -8
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +127 -74
- package/test/unit/data-structures/binary-tree/bst.test.ts +20 -20
- package/test/unit/data-structures/binary-tree/overall.test.ts +7 -7
- package/test/unit/data-structures/binary-tree/rb-tree.test.ts +31 -26
- package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +26 -34
- package/test/unit/data-structures/priority-queue/priority-queue.test.ts +3 -3
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { IterationType, RBTNColor } from '../../types';
|
|
2
1
|
import { RedBlackTree, RedBlackTreeNode } from './rb-tree';
|
|
3
2
|
export class TreeMultiMapNode extends RedBlackTreeNode {
|
|
4
3
|
/**
|
|
5
|
-
* The constructor function initializes
|
|
6
|
-
* @param {K} key - The key parameter
|
|
7
|
-
*
|
|
8
|
-
* @param {V} [value] - The `value` parameter is an optional parameter
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* 1.
|
|
4
|
+
* The constructor function initializes a Red-Black Tree node with a key, value, count, and color.
|
|
5
|
+
* @param {K} key - The key parameter represents the key of the node in the Red-Black Tree. It is
|
|
6
|
+
* used to identify and locate the node within the tree.
|
|
7
|
+
* @param {V} [value] - The `value` parameter is an optional parameter that represents the value
|
|
8
|
+
* associated with the key in the Red-Black Tree node. It is not required and can be omitted when
|
|
9
|
+
* creating a new node.
|
|
10
|
+
* @param [count=1] - The `count` parameter represents the number of occurrences of a particular key
|
|
11
|
+
* in the Red-Black Tree. It is an optional parameter with a default value of 1.
|
|
12
|
+
* @param {RBTNColor} [color=BLACK] - The `color` parameter is used to specify the color of the node
|
|
13
|
+
* in a Red-Black Tree. It is optional and has a default value of `'BLACK'`.
|
|
13
14
|
*/
|
|
14
|
-
constructor(key, value, count = 1) {
|
|
15
|
-
super(key, value);
|
|
15
|
+
constructor(key, value, count = 1, color = 'BLACK') {
|
|
16
|
+
super(key, value, color);
|
|
16
17
|
this.count = count;
|
|
17
18
|
}
|
|
18
19
|
_count = 1;
|
|
@@ -56,24 +57,39 @@ export class TreeMultiMap extends RedBlackTree {
|
|
|
56
57
|
get count() {
|
|
57
58
|
return this._count;
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Time Complexity: O(n)
|
|
62
|
+
* Space Complexity: O(1)
|
|
63
|
+
*/
|
|
64
|
+
/**
|
|
65
|
+
* Time Complexity: O(n)
|
|
66
|
+
* Space Complexity: O(1)
|
|
67
|
+
*
|
|
68
|
+
* The function calculates the sum of the count property of all nodes in a tree using depth-first
|
|
69
|
+
* search.
|
|
70
|
+
* @returns the sum of the count property of all nodes in the tree.
|
|
71
|
+
*/
|
|
72
|
+
getComputedCount() {
|
|
60
73
|
let sum = 0;
|
|
61
74
|
this.dfs(node => (sum += node.count));
|
|
62
75
|
return sum;
|
|
63
76
|
}
|
|
64
77
|
/**
|
|
65
|
-
* The function creates a new TreeMultiMapNode
|
|
78
|
+
* The function creates a new TreeMultiMapNode with the specified key, value, color, and count.
|
|
66
79
|
* @param {K} key - The key parameter represents the key of the node being created. It is of type K,
|
|
67
|
-
* which is a generic type
|
|
68
|
-
* @param {V} [value] - The `value` parameter
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* default
|
|
73
|
-
* @
|
|
80
|
+
* which is a generic type representing the key type of the node.
|
|
81
|
+
* @param {V} [value] - The `value` parameter represents the value associated with the key in the
|
|
82
|
+
* node. It is an optional parameter, which means it can be omitted when calling the `createNode`
|
|
83
|
+
* function. If provided, it should be of type `V`.
|
|
84
|
+
* @param {RBTNColor} [color=BLACK] - The color parameter is used to specify the color of the node in
|
|
85
|
+
* a Red-Black Tree. It can have two possible values: 'RED' or 'BLACK'. The default value is 'BLACK'.
|
|
86
|
+
* @param {number} [count] - The `count` parameter represents the number of occurrences of a key in
|
|
87
|
+
* the tree. It is an optional parameter and is used to keep track of the number of values associated
|
|
88
|
+
* with a key in the tree.
|
|
89
|
+
* @returns A new instance of the TreeMultiMapNode class is being returned.
|
|
74
90
|
*/
|
|
75
|
-
createNode(key, value, count) {
|
|
76
|
-
return new TreeMultiMapNode(key, value, count);
|
|
91
|
+
createNode(key, value, color = 'BLACK', count) {
|
|
92
|
+
return new TreeMultiMapNode(key, value, count, color);
|
|
77
93
|
}
|
|
78
94
|
/**
|
|
79
95
|
* The function creates a new instance of a TreeMultiMap with the specified options and returns it.
|
|
@@ -114,11 +130,11 @@ export class TreeMultiMap extends RedBlackTree {
|
|
|
114
130
|
return;
|
|
115
131
|
}
|
|
116
132
|
else {
|
|
117
|
-
node = this.createNode(key, value, count);
|
|
133
|
+
node = this.createNode(key, value, 'BLACK', count);
|
|
118
134
|
}
|
|
119
135
|
}
|
|
120
136
|
else if (!this.isNode(keyOrNodeOrEntry)) {
|
|
121
|
-
node = this.createNode(keyOrNodeOrEntry, value, count);
|
|
137
|
+
node = this.createNode(keyOrNodeOrEntry, value, 'BLACK', count);
|
|
122
138
|
}
|
|
123
139
|
else {
|
|
124
140
|
return;
|
|
@@ -270,7 +286,7 @@ export class TreeMultiMap extends RedBlackTree {
|
|
|
270
286
|
}
|
|
271
287
|
this._size--;
|
|
272
288
|
// If the original color was black, fix the tree
|
|
273
|
-
if (originalColor ===
|
|
289
|
+
if (originalColor === 'BLACK') {
|
|
274
290
|
this._deleteFixup(replacementNode);
|
|
275
291
|
}
|
|
276
292
|
results.push({ deleted: nodeToDelete, needBalanced: undefined });
|
|
@@ -307,11 +323,11 @@ export class TreeMultiMap extends RedBlackTree {
|
|
|
307
323
|
* @returns a boolean value.
|
|
308
324
|
*/
|
|
309
325
|
perfectlyBalance(iterationType = this.iterationType) {
|
|
310
|
-
const sorted = this.dfs(node => node, '
|
|
326
|
+
const sorted = this.dfs(node => node, 'IN'), n = sorted.length;
|
|
311
327
|
if (sorted.length < 1)
|
|
312
328
|
return false;
|
|
313
329
|
this.clear();
|
|
314
|
-
if (iterationType ===
|
|
330
|
+
if (iterationType === 'RECURSIVE') {
|
|
315
331
|
const buildBalanceBST = (l, r) => {
|
|
316
332
|
if (l > r)
|
|
317
333
|
return;
|
|
@@ -374,7 +390,7 @@ export class TreeMultiMap extends RedBlackTree {
|
|
|
374
390
|
destNode = this.ensureNode(destNode);
|
|
375
391
|
if (srcNode && destNode) {
|
|
376
392
|
const { key, value, count, color } = destNode;
|
|
377
|
-
const tempNode = this.createNode(key, value, count);
|
|
393
|
+
const tempNode = this.createNode(key, value, color, count);
|
|
378
394
|
if (tempNode) {
|
|
379
395
|
tempNode.color = color;
|
|
380
396
|
destNode.key = srcNode.key;
|
|
@@ -159,7 +159,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
|
|
|
159
159
|
* Space Complexity: O(log n)
|
|
160
160
|
*
|
|
161
161
|
* Depth-first search (DFS) method, different traversal orders can be selected。
|
|
162
|
-
* @param order - Traverse order parameter: '
|
|
162
|
+
* @param order - Traverse order parameter: 'IN' (in-order), 'PRE' (pre-order) or 'POST' (post-order).
|
|
163
163
|
* @returns An array containing elements traversed in the specified order.
|
|
164
164
|
*/
|
|
165
165
|
dfs(order?: DFSOrderPattern): E[];
|
|
@@ -225,26 +225,26 @@ export class Heap extends IterableElementBase {
|
|
|
225
225
|
* Space Complexity: O(log n)
|
|
226
226
|
*
|
|
227
227
|
* Depth-first search (DFS) method, different traversal orders can be selected。
|
|
228
|
-
* @param order - Traverse order parameter: '
|
|
228
|
+
* @param order - Traverse order parameter: 'IN' (in-order), 'PRE' (pre-order) or 'POST' (post-order).
|
|
229
229
|
* @returns An array containing elements traversed in the specified order.
|
|
230
230
|
*/
|
|
231
|
-
dfs(order = '
|
|
231
|
+
dfs(order = 'PRE') {
|
|
232
232
|
const result = [];
|
|
233
233
|
// Auxiliary recursive function, traverses the binary heap according to the traversal order
|
|
234
234
|
const _dfs = (index) => {
|
|
235
235
|
const left = 2 * index + 1, right = left + 1;
|
|
236
236
|
if (index < this.size) {
|
|
237
|
-
if (order === '
|
|
237
|
+
if (order === 'IN') {
|
|
238
238
|
_dfs(left);
|
|
239
239
|
result.push(this.elements[index]);
|
|
240
240
|
_dfs(right);
|
|
241
241
|
}
|
|
242
|
-
else if (order === '
|
|
242
|
+
else if (order === 'PRE') {
|
|
243
243
|
result.push(this.elements[index]);
|
|
244
244
|
_dfs(left);
|
|
245
245
|
_dfs(right);
|
|
246
246
|
}
|
|
247
|
-
else if (order === '
|
|
247
|
+
else if (order === 'POST') {
|
|
248
248
|
_dfs(left);
|
|
249
249
|
_dfs(right);
|
|
250
250
|
result.push(this.elements[index]);
|
|
@@ -1,33 +1,15 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
INVERSE = "INVERSE"
|
|
4
|
-
}
|
|
5
|
-
export declare enum CP {
|
|
6
|
-
lt = "lt",
|
|
7
|
-
eq = "eq",
|
|
8
|
-
gt = "gt"
|
|
9
|
-
}
|
|
1
|
+
export type BSTVariant = 'STANDARD' | 'INVERSE';
|
|
2
|
+
export type CP = 'LT' | 'EQ' | 'GT';
|
|
10
3
|
/**
|
|
11
4
|
* Enum representing different loop types.
|
|
12
5
|
*
|
|
13
6
|
* - `iterative`: Indicates the iterative loop type (with loops that use iterations).
|
|
14
7
|
* - `recursive`: Indicates the recursive loop type (with loops that call themselves).
|
|
15
8
|
*/
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
RECURSIVE = "RECURSIVE"
|
|
19
|
-
}
|
|
20
|
-
export declare enum FamilyPosition {
|
|
21
|
-
ROOT = "ROOT",
|
|
22
|
-
LEFT = "LEFT",
|
|
23
|
-
RIGHT = "RIGHT",
|
|
24
|
-
ROOT_LEFT = "ROOT_LEFT",
|
|
25
|
-
ROOT_RIGHT = "ROOT_RIGHT",
|
|
26
|
-
ISOLATED = "ISOLATED",
|
|
27
|
-
MAL_NODE = "MAL_NODE"
|
|
28
|
-
}
|
|
9
|
+
export type IterationType = 'ITERATIVE' | 'RECURSIVE';
|
|
10
|
+
export type FamilyPosition = 'ROOT' | 'LEFT' | 'RIGHT' | 'ROOT_LEFT' | 'ROOT_RIGHT' | 'ISOLATED' | 'MAL_NODE';
|
|
29
11
|
export type Comparator<K> = (a: K, b: K) => number;
|
|
30
|
-
export type DFSOrderPattern = '
|
|
12
|
+
export type DFSOrderPattern = 'PRE' | 'IN' | 'POST';
|
|
31
13
|
export type NodeDisplayLayout = [string[], number, number, number];
|
|
32
14
|
export type BTNCallback<N, D = any> = (node: N) => D;
|
|
33
15
|
export interface IterableWithSize<T> extends Iterable<T> {
|
|
@@ -52,9 +34,4 @@ export type BinaryTreeDeleteResult<N> = {
|
|
|
52
34
|
deleted: N | null | undefined;
|
|
53
35
|
needBalanced: N | null | undefined;
|
|
54
36
|
};
|
|
55
|
-
export
|
|
56
|
-
CREATED = "CREATED",
|
|
57
|
-
READ = "READ",
|
|
58
|
-
UPDATED = "UPDATED",
|
|
59
|
-
DELETED = "DELETED"
|
|
60
|
-
}
|
|
37
|
+
export type CRUD = 'CREATED' | 'READ' | 'UPDATED' | 'DELETED';
|
package/dist/mjs/types/common.js
CHANGED
|
@@ -1,39 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
(function (BSTVariant) {
|
|
3
|
-
BSTVariant["STANDARD"] = "STANDARD";
|
|
4
|
-
BSTVariant["INVERSE"] = "INVERSE";
|
|
5
|
-
})(BSTVariant || (BSTVariant = {}));
|
|
6
|
-
export var CP;
|
|
7
|
-
(function (CP) {
|
|
8
|
-
CP["lt"] = "lt";
|
|
9
|
-
CP["eq"] = "eq";
|
|
10
|
-
CP["gt"] = "gt";
|
|
11
|
-
})(CP || (CP = {}));
|
|
12
|
-
/**
|
|
13
|
-
* Enum representing different loop types.
|
|
14
|
-
*
|
|
15
|
-
* - `iterative`: Indicates the iterative loop type (with loops that use iterations).
|
|
16
|
-
* - `recursive`: Indicates the recursive loop type (with loops that call themselves).
|
|
17
|
-
*/
|
|
18
|
-
export var IterationType;
|
|
19
|
-
(function (IterationType) {
|
|
20
|
-
IterationType["ITERATIVE"] = "ITERATIVE";
|
|
21
|
-
IterationType["RECURSIVE"] = "RECURSIVE";
|
|
22
|
-
})(IterationType || (IterationType = {}));
|
|
23
|
-
export var FamilyPosition;
|
|
24
|
-
(function (FamilyPosition) {
|
|
25
|
-
FamilyPosition["ROOT"] = "ROOT";
|
|
26
|
-
FamilyPosition["LEFT"] = "LEFT";
|
|
27
|
-
FamilyPosition["RIGHT"] = "RIGHT";
|
|
28
|
-
FamilyPosition["ROOT_LEFT"] = "ROOT_LEFT";
|
|
29
|
-
FamilyPosition["ROOT_RIGHT"] = "ROOT_RIGHT";
|
|
30
|
-
FamilyPosition["ISOLATED"] = "ISOLATED";
|
|
31
|
-
FamilyPosition["MAL_NODE"] = "MAL_NODE";
|
|
32
|
-
})(FamilyPosition || (FamilyPosition = {}));
|
|
33
|
-
export var CRUD;
|
|
34
|
-
(function (CRUD) {
|
|
35
|
-
CRUD["CREATED"] = "CREATED";
|
|
36
|
-
CRUD["READ"] = "READ";
|
|
37
|
-
CRUD["UPDATED"] = "UPDATED";
|
|
38
|
-
CRUD["DELETED"] = "DELETED";
|
|
39
|
-
})(CRUD || (CRUD = {}));
|
|
1
|
+
export {};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { RedBlackTree, RedBlackTreeNode } from '../../../data-structures';
|
|
2
2
|
import type { BSTOptions } from "./bst";
|
|
3
|
-
export
|
|
4
|
-
RED = 1,
|
|
5
|
-
BLACK = 0
|
|
6
|
-
}
|
|
3
|
+
export type RBTNColor = 'RED' | 'BLACK';
|
|
7
4
|
export type RedBlackTreeNodeNested<K, V> = RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
|
|
8
5
|
export type RedBlackTreeNested<K, V, N extends RedBlackTreeNode<K, V, N>> = RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, RedBlackTree<K, V, N, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
|
|
9
6
|
export type RBTreeOptions<K> = Omit<BSTOptions<K>, 'variant'> & {};
|