data-structure-typed 1.46.8 → 1.46.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 +1 -1
- package/benchmark/report.html +1 -46
- package/benchmark/report.json +11 -422
- package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +4 -2
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +10 -0
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +19 -13
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +121 -55
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +10 -9
- package/dist/cjs/data-structures/binary-tree/bst.js +16 -14
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +7 -5
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +32 -23
- package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multimap.d.ts +5 -3
- package/dist/cjs/data-structures/binary-tree/tree-multimap.js +11 -2
- package/dist/cjs/data-structures/binary-tree/tree-multimap.js.map +1 -1
- package/dist/cjs/interfaces/binary-tree.d.ts +3 -3
- package/dist/cjs/types/common.d.ts +5 -4
- package/dist/cjs/types/data-structures/binary-tree/avl-tree.d.ts +2 -1
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +3 -1
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.js +0 -6
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/types/data-structures/binary-tree/bst.d.ts +2 -1
- package/dist/cjs/types/data-structures/binary-tree/rb-tree.d.ts +2 -1
- package/dist/cjs/types/data-structures/binary-tree/tree-multimap.d.ts +2 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +4 -2
- package/dist/mjs/data-structures/binary-tree/avl-tree.js +11 -0
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +19 -13
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +122 -55
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +10 -9
- package/dist/mjs/data-structures/binary-tree/bst.js +17 -14
- package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +7 -5
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +34 -24
- package/dist/mjs/data-structures/binary-tree/tree-multimap.d.ts +5 -3
- package/dist/mjs/data-structures/binary-tree/tree-multimap.js +12 -2
- package/dist/mjs/interfaces/binary-tree.d.ts +3 -3
- package/dist/mjs/types/common.d.ts +5 -4
- package/dist/mjs/types/data-structures/binary-tree/avl-tree.d.ts +2 -1
- package/dist/mjs/types/data-structures/binary-tree/binary-tree.d.ts +3 -1
- package/dist/mjs/types/data-structures/binary-tree/binary-tree.js +0 -6
- package/dist/mjs/types/data-structures/binary-tree/bst.d.ts +2 -1
- package/dist/mjs/types/data-structures/binary-tree/rb-tree.d.ts +2 -1
- package/dist/mjs/types/data-structures/binary-tree/tree-multimap.d.ts +2 -1
- package/dist/umd/data-structure-typed.js +198 -103
- package/dist/umd/data-structure-typed.min.js +4 -1
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +5 -5
- package/src/data-structures/binary-tree/avl-tree.ts +17 -5
- package/src/data-structures/binary-tree/binary-tree.ts +143 -62
- package/src/data-structures/binary-tree/bst.ts +23 -19
- package/src/data-structures/binary-tree/rb-tree.ts +38 -27
- package/src/data-structures/binary-tree/tree-multimap.ts +19 -6
- package/src/interfaces/binary-tree.ts +3 -3
- package/src/types/common.ts +2 -5
- package/src/types/data-structures/binary-tree/avl-tree.ts +5 -1
- package/src/types/data-structures/binary-tree/binary-tree.ts +5 -7
- package/src/types/data-structures/binary-tree/bst.ts +3 -1
- package/src/types/data-structures/binary-tree/rb-tree.ts +3 -1
- package/src/types/data-structures/binary-tree/tree-multimap.ts +3 -1
- package/test/integration/index.html +30 -28
- package/test/performance/data-structures/binary-tree/rb-tree.test.ts +7 -0
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +57 -1
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +62 -7
- package/test/unit/data-structures/binary-tree/bst.test.ts +56 -1
- package/test/unit/data-structures/binary-tree/rb-tree.test.ts +98 -42
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
8
|
+
import type { BSTNested, BSTNodeNested, BSTOptions, BTNCallback, BTNKey } from '../../types';
|
|
9
9
|
import { CP, IterationType } from '../../types';
|
|
10
10
|
import { BinaryTree, BinaryTreeNode } from './binary-tree';
|
|
11
11
|
import { IBinaryTree } from '../../interfaces';
|
|
@@ -33,7 +33,8 @@ export declare class BSTNode<V = any, N extends BSTNode<V, N> = BSTNodeNested<V>
|
|
|
33
33
|
*/
|
|
34
34
|
set right(v: N | undefined);
|
|
35
35
|
}
|
|
36
|
-
export declare class BST<V = any, N extends BSTNode<V, N> = BSTNode<V, BSTNodeNested<V>>> extends BinaryTree<V, N> implements IBinaryTree<V, N> {
|
|
36
|
+
export declare class BST<V = any, N extends BSTNode<V, N> = BSTNode<V, BSTNodeNested<V>>, TREE extends BST<V, N, TREE> = BST<V, N, BSTNested<V, N>>> extends BinaryTree<V, N, TREE> implements IBinaryTree<V, N, TREE> {
|
|
37
|
+
options: BSTOptions;
|
|
37
38
|
/**
|
|
38
39
|
* The constructor function initializes a binary search tree with an optional comparator function.
|
|
39
40
|
* @param {BSTOptions} [options] - An optional object that contains additional configuration options
|
|
@@ -54,6 +55,7 @@ export declare class BST<V = any, N extends BSTNode<V, N> = BSTNode<V, BSTNodeNe
|
|
|
54
55
|
* @returns a new instance of the BSTNode class with the specified key and value.
|
|
55
56
|
*/
|
|
56
57
|
createNode(key: BTNKey, value?: V): N;
|
|
58
|
+
createTree(options?: BSTOptions): TREE;
|
|
57
59
|
/**
|
|
58
60
|
* Time Complexity: O(log n) - Average case for a balanced tree. In the worst case (unbalanced tree), it can be O(n).
|
|
59
61
|
* Space Complexity: O(1) - Constant space is used.
|
|
@@ -95,7 +97,7 @@ export declare class BST<V = any, N extends BSTNode<V, N> = BSTNode<V, BSTNodeNe
|
|
|
95
97
|
* current instance of the binary search tree
|
|
96
98
|
* @returns The function `addMany` returns an array of nodes (`N`) or `undefined` values.
|
|
97
99
|
*/
|
|
98
|
-
addMany(keysOrNodes: (BTNKey | N | undefined)[], data?: (V | undefined)[], isBalanceAdd?: boolean, iterationType?: IterationType): (N | undefined)[];
|
|
100
|
+
addMany(keysOrNodes: (BTNKey | N | undefined)[], data?: (V | undefined)[], isBalanceAdd?: boolean, iterationType?: IterationType | undefined): (N | undefined)[];
|
|
99
101
|
/**
|
|
100
102
|
* Time Complexity: O(log n) - Average case for a balanced tree.
|
|
101
103
|
* Space Complexity: O(1) - Constant space is used.
|
|
@@ -115,7 +117,7 @@ export declare class BST<V = any, N extends BSTNode<V, N> = BSTNode<V, BSTNodeNe
|
|
|
115
117
|
* the key of the leftmost node if the comparison result is greater than, and the key of the
|
|
116
118
|
* rightmost node otherwise. If no node is found, it returns 0.
|
|
117
119
|
*/
|
|
118
|
-
lastKey(beginRoot?: BTNKey | N | undefined, iterationType?: IterationType): BTNKey;
|
|
120
|
+
lastKey(beginRoot?: BTNKey | N | undefined, iterationType?: IterationType | undefined): BTNKey;
|
|
119
121
|
/**
|
|
120
122
|
* Time Complexity: O(log n) - Average case for a balanced tree.
|
|
121
123
|
* Space Complexity: O(log n) - Space for the recursive call stack in the worst case.
|
|
@@ -172,7 +174,7 @@ export declare class BST<V = any, N extends BSTNode<V, N> = BSTNode<V, BSTNodeNe
|
|
|
172
174
|
* performed on the binary tree. It can have two possible values:
|
|
173
175
|
* @returns The method returns an array of nodes (`N[]`).
|
|
174
176
|
*/
|
|
175
|
-
getNodes<C extends BTNCallback<N>>(identifier: ReturnType<C> | undefined, callback?: C, onlyOne?: boolean, beginRoot?: BTNKey | N | undefined, iterationType?: IterationType): N[];
|
|
177
|
+
getNodes<C extends BTNCallback<N>>(identifier: ReturnType<C> | undefined, callback?: C, onlyOne?: boolean, beginRoot?: BTNKey | N | undefined, iterationType?: IterationType | undefined): N[];
|
|
176
178
|
/**
|
|
177
179
|
* Time Complexity: O(log n) - Average case for a balanced tree. O(n) - Visiting each node once when identifier is not node's key.
|
|
178
180
|
* Space Complexity: O(log n) - Space for the recursive call stack in the worst case.
|
|
@@ -198,7 +200,7 @@ export declare class BST<V = any, N extends BSTNode<V, N> = BSTNode<V, BSTNodeNe
|
|
|
198
200
|
* @returns The function `lesserOrGreaterTraverse` returns an array of values of type
|
|
199
201
|
* `ReturnType<C>`, which is the return type of the callback function passed as an argument.
|
|
200
202
|
*/
|
|
201
|
-
lesserOrGreaterTraverse<C extends BTNCallback<N>>(callback?: C, lesserOrGreater?: CP, targetNode?: BTNKey | N | undefined, iterationType?: IterationType): ReturnType<C>[];
|
|
203
|
+
lesserOrGreaterTraverse<C extends BTNCallback<N>>(callback?: C, lesserOrGreater?: CP, targetNode?: BTNKey | N | undefined, iterationType?: IterationType | undefined): ReturnType<C>[];
|
|
202
204
|
/**
|
|
203
205
|
* Balancing Adjustment:
|
|
204
206
|
* Perfectly Balanced Binary Tree: Since the balance of a perfectly balanced binary tree is already fixed, no additional balancing adjustment is needed. Any insertion or deletion operation will disrupt the perfect balance, often requiring a complete reconstruction of the tree.
|
|
@@ -223,7 +225,7 @@ export declare class BST<V = any, N extends BSTNode<V, N> = BSTNode<V, BSTNodeNe
|
|
|
223
225
|
* values:
|
|
224
226
|
* @returns The function `perfectlyBalance` returns a boolean value.
|
|
225
227
|
*/
|
|
226
|
-
perfectlyBalance(iterationType?: IterationType): boolean;
|
|
228
|
+
perfectlyBalance(iterationType?: IterationType | undefined): boolean;
|
|
227
229
|
/**
|
|
228
230
|
* Time Complexity: O(n) - Visiting each node once.
|
|
229
231
|
* Space Complexity: O(log n) - Space for the recursive call stack in the worst case.
|
|
@@ -237,8 +239,7 @@ export declare class BST<V = any, N extends BSTNode<V, N> = BSTNode<V, BSTNodeNe
|
|
|
237
239
|
* to check if the AVL tree is balanced. It can have two possible values:
|
|
238
240
|
* @returns a boolean value.
|
|
239
241
|
*/
|
|
240
|
-
isAVLBalanced(iterationType?: IterationType): boolean;
|
|
241
|
-
protected _comparator: BSTComparator;
|
|
242
|
+
isAVLBalanced(iterationType?: IterationType | undefined): boolean;
|
|
242
243
|
protected _setRoot(v: N | undefined): void;
|
|
243
244
|
/**
|
|
244
245
|
* The function compares two values using a comparator function and returns whether the first value
|
|
@@ -53,14 +53,13 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
53
53
|
*/
|
|
54
54
|
constructor(options) {
|
|
55
55
|
super(options);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
this._comparator = comparator;
|
|
62
|
-
}
|
|
56
|
+
if (options) {
|
|
57
|
+
this.options = Object.assign({ iterationType: types_1.IterationType.ITERATIVE, comparator: (a, b) => a - b }, options);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.options = { iterationType: types_1.IterationType.ITERATIVE, comparator: (a, b) => a - b };
|
|
63
61
|
}
|
|
62
|
+
this._root = undefined;
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
65
|
* Get the root node of the binary tree.
|
|
@@ -79,6 +78,9 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
79
78
|
createNode(key, value) {
|
|
80
79
|
return new BSTNode(key, value);
|
|
81
80
|
}
|
|
81
|
+
createTree(options) {
|
|
82
|
+
return new BST(Object.assign(Object.assign({}, this.options), options));
|
|
83
|
+
}
|
|
82
84
|
/**
|
|
83
85
|
* Time Complexity: O(log n) - Average case for a balanced tree. In the worst case (unbalanced tree), it can be O(n).
|
|
84
86
|
* Space Complexity: O(1) - Constant space is used.
|
|
@@ -196,7 +198,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
196
198
|
* current instance of the binary search tree
|
|
197
199
|
* @returns The function `addMany` returns an array of nodes (`N`) or `undefined` values.
|
|
198
200
|
*/
|
|
199
|
-
addMany(keysOrNodes, data, isBalanceAdd = true, iterationType = this.iterationType) {
|
|
201
|
+
addMany(keysOrNodes, data, isBalanceAdd = true, iterationType = this.options.iterationType) {
|
|
200
202
|
// TODO this addMany function is inefficient, it should be optimized
|
|
201
203
|
function hasNoUndefined(arr) {
|
|
202
204
|
return arr.indexOf(undefined) === -1;
|
|
@@ -284,7 +286,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
284
286
|
* the key of the leftmost node if the comparison result is greater than, and the key of the
|
|
285
287
|
* rightmost node otherwise. If no node is found, it returns 0.
|
|
286
288
|
*/
|
|
287
|
-
lastKey(beginRoot = this.root, iterationType = this.iterationType) {
|
|
289
|
+
lastKey(beginRoot = this.root, iterationType = this.options.iterationType) {
|
|
288
290
|
var _a, _b, _c, _d, _e, _f;
|
|
289
291
|
if (this._compare(0, 1) === types_1.CP.lt)
|
|
290
292
|
return (_b = (_a = this.getRightMost(beginRoot, iterationType)) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : 0;
|
|
@@ -381,7 +383,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
381
383
|
* performed on the binary tree. It can have two possible values:
|
|
382
384
|
* @returns The method returns an array of nodes (`N[]`).
|
|
383
385
|
*/
|
|
384
|
-
getNodes(identifier, callback = this._defaultOneParamCallback, onlyOne = false, beginRoot = this.root, iterationType = this.iterationType) {
|
|
386
|
+
getNodes(identifier, callback = this._defaultOneParamCallback, onlyOne = false, beginRoot = this.root, iterationType = this.options.iterationType) {
|
|
385
387
|
beginRoot = this.ensureNotKey(beginRoot);
|
|
386
388
|
if (!beginRoot)
|
|
387
389
|
return [];
|
|
@@ -462,7 +464,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
462
464
|
* @returns The function `lesserOrGreaterTraverse` returns an array of values of type
|
|
463
465
|
* `ReturnType<C>`, which is the return type of the callback function passed as an argument.
|
|
464
466
|
*/
|
|
465
|
-
lesserOrGreaterTraverse(callback = this._defaultOneParamCallback, lesserOrGreater = types_1.CP.lt, targetNode = this.root, iterationType = this.iterationType) {
|
|
467
|
+
lesserOrGreaterTraverse(callback = this._defaultOneParamCallback, lesserOrGreater = types_1.CP.lt, targetNode = this.root, iterationType = this.options.iterationType) {
|
|
466
468
|
targetNode = this.ensureNotKey(targetNode);
|
|
467
469
|
const ans = [];
|
|
468
470
|
if (!targetNode)
|
|
@@ -526,7 +528,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
526
528
|
* values:
|
|
527
529
|
* @returns The function `perfectlyBalance` returns a boolean value.
|
|
528
530
|
*/
|
|
529
|
-
perfectlyBalance(iterationType = this.iterationType) {
|
|
531
|
+
perfectlyBalance(iterationType = this.options.iterationType) {
|
|
530
532
|
const sorted = this.dfs(node => node, 'in'), n = sorted.length;
|
|
531
533
|
this.clear();
|
|
532
534
|
if (sorted.length < 1)
|
|
@@ -576,7 +578,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
576
578
|
* to check if the AVL tree is balanced. It can have two possible values:
|
|
577
579
|
* @returns a boolean value.
|
|
578
580
|
*/
|
|
579
|
-
isAVLBalanced(iterationType = this.iterationType) {
|
|
581
|
+
isAVLBalanced(iterationType = this.options.iterationType) {
|
|
580
582
|
var _a, _b;
|
|
581
583
|
if (!this.root)
|
|
582
584
|
return true;
|
|
@@ -637,7 +639,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
637
639
|
* than), CP.lt (less than), or CP.eq (equal).
|
|
638
640
|
*/
|
|
639
641
|
_compare(a, b) {
|
|
640
|
-
const compared = this.
|
|
642
|
+
const compared = this.options.comparator(a, b);
|
|
641
643
|
if (compared > 0)
|
|
642
644
|
return types_1.CP.gt;
|
|
643
645
|
else if (compared < 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bst.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/bst.ts"],"names":[],"mappings":";;;AAQA,uCAAgD;AAChD,+CAA2D;AAE3D,oCAAiC;AAEjC,MAAa,OAA6D,SAAQ,4BAAoB;IAGpG,YAAY,GAAW,EAAE,KAAS;QAChC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IAID;;OAEG;IACH,IAAa,IAAI;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,IAAa,IAAI,CAAC,CAAgB;QAChC,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,MAAM,GAAG,IAAoB,CAAC;SACjC;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAID;;OAEG;IACH,IAAa,KAAK;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAa,KAAK,CAAC,CAAgB;QACjC,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,MAAM,GAAG,IAAoB,CAAC;SACjC;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAjDD,0BAiDC;AAED,MAAa,GACX,SAAQ,wBAAgB;IAExB;;;;OAIG;IACH,YAAY,OAAoB;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC;QA+jBP,gBAAW,GAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QA9jBrD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;YAC/B,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;aAC/B;SACF;IACH,CAAC;IAID;;OAEG;IACH,IAAa,IAAI;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;;;OAOG;IACM,UAAU,CAAC,GAAW,EAAE,KAAS;QACxC,OAAO,IAAI,OAAO,CAAO,GAAG,EAAE,KAAK,CAAM,CAAC;IAC5C,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;OAWG;IACM,GAAG,CAAC,SAAwC,EAAE,KAAS;QAC9D,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACzC,mCAAmC;QACnC,IAAI,QAAuB,CAAC;QAC5B,IAAI,OAAsB,CAAC;QAC3B,IAAI,SAAS,YAAY,OAAO,EAAE;YAChC,OAAO,GAAG,SAAS,CAAC;SACrB;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACpC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SAC7C;aAAM;YACL,OAAO,GAAG,SAAS,CAAC;SACrB;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YAC3B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;SACtB;aAAM;YACL,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACpB,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,OAAO,UAAU,EAAE;gBACjB,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE;oBAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,UAAE,CAAC,EAAE,EAAE;wBACjD,IAAI,OAAO,EAAE;4BACX,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;yBAC3B;wBACD,8BAA8B;wBAC9B,UAAU,GAAG,KAAK,CAAC;wBACnB,QAAQ,GAAG,GAAG,CAAC;qBAChB;yBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,UAAE,CAAC,EAAE,EAAE;wBACxD,4BAA4B;wBAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;4BAC1B,IAAI,OAAO,EAAE;gCACX,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;6BACtB;4BACD,qCAAqC;4BACrC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;4BACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;4BAC3B,UAAU,GAAG,KAAK,CAAC;4BACnB,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;yBACrB;6BAAM;4BACL,uCAAuC;4BACvC,IAAI,GAAG,CAAC,IAAI;gCAAE,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;yBAC9B;qBACF;yBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,UAAE,CAAC,EAAE,EAAE;wBACxD,6BAA6B;wBAC7B,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE;4BAC3B,IAAI,OAAO,EAAE;gCACX,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;6BACtB;4BACD,sCAAsC;4BACtC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;4BACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;4BAC3B,UAAU,GAAG,KAAK,CAAC;4BACnB,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;yBACtB;6BAAM;4BACL,uCAAuC;4BACvC,IAAI,GAAG,CAAC,KAAK;gCAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;yBAChC;qBACF;iBACF;qBAAM;oBACL,UAAU,GAAG,KAAK,CAAC;iBACpB;aACF;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;;;;;OAmBG;IACM,OAAO,CACd,WAAuC,EACvC,IAAwB,EACxB,YAAY,GAAG,IAAI,EACnB,aAAa,GAAG,IAAI,CAAC,aAAa;QAElC,oEAAoE;QACpE,SAAS,cAAc,CAAC,GAA+B;YACrD,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;YACjD,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,SAAS,CAAC,CAAC;SAClE;QAED,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,MAAM,WAAW,GAAsB,WAAW,CAAC,GAAG,CACpD,CAAC,KAAiB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,KAAK,CAAC,CAAoB,CACxE,CAAC;QAEF,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,SAAS,uBAAuB,CAAC,GAAsB;YACrD,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG;gBAAE,IAAI,SAAS,YAAY,OAAO;oBAAE,OAAO,IAAI,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,2BAA2B,GAAG,CAAC,GAAsB,EAAwB,EAAE;YACnF,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG;gBAAE,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;oBAAE,OAAO,IAAI,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,iBAAiB,GAA+B,EAAE,EACpD,UAAU,GAAkC,EAAE,CAAC;QAEjD,IAAI,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACxC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC1D;aAAM,IAAI,2BAA2B,CAAC,WAAW,CAAC,EAAE;YACnD,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC9C;QACD,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3D,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,CAAC,GAA+B,EAAE,IAAwB,EAAE,EAAE;YACzE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAE7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,CAAC,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACxB,MAAM,KAAK,GAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,EAAE;wBACV,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC,CAAC,CAAC;wBAChE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACvB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACvB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACxB;iBACF;aACF;QACH,CAAC,CAAC;QACF,IAAI,aAAa,KAAK,qBAAa,CAAC,SAAS,EAAE;YAC7C,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;SACrC;aAAM;YACL,QAAQ,EAAE,CAAC;SACZ;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,YAAoC,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC,aAAa;;QACvF,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAE,CAAC,EAAE;YAAE,OAAO,MAAA,MAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,0CAAE,GAAG,mCAAI,CAAC,CAAC;aAC3F,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAE,CAAC,EAAE;YAAE,OAAO,MAAA,MAAA,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,0CAAE,GAAG,mCAAI,CAAC,CAAC;;YAC/F,OAAO,MAAA,MAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,0CAAE,GAAG,mCAAI,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;OAaG;IACM,YAAY,CAAC,GAAW,EAAE,aAAa,GAAG,qBAAa,CAAC,SAAS;QACxE,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACjC,IAAI,aAAa,KAAK,qBAAa,CAAC,SAAS,EAAE;YAC7C,MAAM,IAAI,GAAG,CAAC,GAAM,EAAiB,EAAE;gBACrC,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG;oBAAE,OAAO,GAAG,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK;oBAAE,OAAO;gBAEpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,UAAE,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI;oBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,UAAE,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjF,CAAC,CAAC;YAEF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM;YACL,MAAM,KAAK,GAAG,IAAI,aAAK,CAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;gBACrB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC1B,IAAI,GAAG,EAAE;oBACP,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,UAAE,CAAC,EAAE;wBAAE,OAAO,GAAG,CAAC;oBACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,UAAE,CAAC,EAAE;wBAAE,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC5E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,UAAE,CAAC,EAAE;wBAAE,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBAC/E;aACF;SACF;IACH,CAAC;IAED;;;;;;;;OAQG;IACM,YAAY,CAAC,GAA2B,EAAE,aAAa,GAAG,qBAAa,CAAC,SAAS;QACxF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3E,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACM,QAAQ,CACf,UAAqC,EACrC,WAAc,IAAI,CAAC,wBAA6B,EAChD,OAAO,GAAG,KAAK,EACf,YAAoC,IAAI,CAAC,IAAI,EAC7C,aAAa,GAAG,IAAI,CAAC,aAAa;QAElC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAQ,EAAE,CAAC;QAEpB,IAAI,aAAa,KAAK,qBAAa,CAAC,SAAS,EAAE;YAC7C,MAAM,SAAS,GAAG,CAAC,GAAM,EAAE,EAAE;gBAC3B,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,cAAc,KAAK,UAAU,EAAE;oBACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,OAAO;wBAAE,OAAO;iBACrB;gBAED,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK;oBAAE,OAAO;gBACpC,qBAAqB;gBACrB,IAAI,QAAQ,KAAK,IAAI,CAAC,wBAAwB,EAAE;oBAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAoB,CAAC,KAAK,UAAE,CAAC,EAAE;wBAAE,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC5F,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAoB,CAAC,KAAK,UAAE,CAAC,EAAE;wBAAE,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBAC/F;qBAAM;oBACL,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAChC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBACnC;YACH,CAAC,CAAC;YAEF,SAAS,CAAC,SAAS,CAAC,CAAC;SACtB;aAAM;YACL,MAAM,KAAK,GAAG,IAAI,aAAK,CAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;gBACrB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC1B,IAAI,GAAG,EAAE;oBACP,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,cAAc,KAAK,UAAU,EAAE;wBACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACd,IAAI,OAAO;4BAAE,OAAO,GAAG,CAAC;qBACzB;oBACD,qBAAqB;oBACrB,IAAI,QAAQ,KAAK,IAAI,CAAC,wBAAwB,EAAE;wBAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAoB,CAAC,KAAK,UAAE,CAAC,EAAE;4BAAE,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC7F,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAoB,CAAC,KAAK,UAAE,CAAC,EAAE;4BAAE,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;qBAChG;yBAAM;wBACL,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACjC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;qBACpC;iBACF;aACF;SACF;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,uBAAuB,CACrB,WAAc,IAAI,CAAC,wBAA6B,EAChD,kBAAsB,UAAE,CAAC,EAAE,EAC3B,aAAqC,IAAI,CAAC,IAAI,EAC9C,aAAa,GAAG,IAAI,CAAC,aAAa;QAElC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAiC,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,GAAG,CAAC;QAE3B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC;QAEjC,IAAI,aAAa,KAAK,qBAAa,CAAC,SAAS,EAAE;YAC7C,MAAM,SAAS,GAAG,CAAC,GAAM,EAAE,EAAE;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACnD,IAAI,QAAQ,KAAK,eAAe;oBAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE1D,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK;oBAAE,OAAO;gBACpC,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,eAAe;oBAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChG,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,eAAe;oBAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrG,CAAC,CAAC;YAEF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC;SACZ;aAAM;YACL,MAAM,KAAK,GAAG,IAAI,aAAK,CAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;gBACrB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC1B,IAAI,GAAG,EAAE;oBACP,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBACnD,IAAI,QAAQ,KAAK,eAAe;wBAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBAE1D,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,eAAe;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACjG,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,eAAe;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBACrG;aACF;YACD,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;IAED;;;;;;;;OAQG;IAEH;;;OAGG;IAEH;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EACzC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,aAAa,KAAK,qBAAa,CAAC,SAAS,EAAE;YAC7C,MAAM,eAAe,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;gBAC/C,IAAI,CAAC,GAAG,CAAC;oBAAE,OAAO;gBAClB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBACrC,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1B,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC;YAEF,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;SACb;aAAM;YACL,MAAM,KAAK,GAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,EAAE;wBACV,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACtC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAC1B,QAAQ,CAAC;wBACT,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;wBACrC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACvB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACxB;iBACF;aACF;YACD,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACH,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAE5B,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,IAAI,aAAa,KAAK,qBAAa,CAAC,SAAS,EAAE;YAC7C,MAAM,OAAO,GAAG,CAAC,GAAkB,EAAU,EAAE;gBAC7C,IAAI,CAAC,GAAG;oBAAE,OAAO,CAAC,CAAC;gBACnB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAClC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC;oBAAE,QAAQ,GAAG,KAAK,CAAC;gBAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;aAAM;YACL,MAAM,KAAK,GAAQ,EAAE,CAAC;YACtB,IAAI,IAAI,GAAkB,IAAI,CAAC,IAAI,EACjC,IAAI,GAAkB,SAAS,CAAC;YAClC,MAAM,MAAM,GAAmB,IAAI,GAAG,EAAE,CAAC;YAEzC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE;gBAC/B,IAAI,IAAI,EAAE;oBACR,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;iBAClB;qBAAM;oBACL,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;wBACtC,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;wBACnB,IAAI,IAAI,EAAE;4BACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC7D,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;gCAAE,OAAO,KAAK,CAAC;4BAC7C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;4BAC5C,IAAI,GAAG,IAAI,CAAC;4BACZ,IAAI,GAAG,SAAS,CAAC;yBAClB;qBACF;;wBAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;iBAC1B;aACF;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAIS,QAAQ,CAAC,CAAgB;QACjC,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;SACtB;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACO,QAAQ,CAAC,CAAS,EAAE,CAAS;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,UAAE,CAAC,EAAE,CAAC;aAC1B,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,UAAE,CAAC,EAAE,CAAC;;YAC/B,OAAO,UAAE,CAAC,EAAE,CAAC;IACpB,CAAC;CACF;AA/lBD,kBA+lBC"}
|
|
1
|
+
{"version":3,"file":"bst.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/bst.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
|
-
import { BiTreeDeleteResult, BTNCallback, BTNKey, IterationType, RBTNColor, RBTreeOptions, RedBlackTreeNodeNested } from '../../types';
|
|
8
|
+
import { BiTreeDeleteResult, BTNCallback, BTNKey, IterationType, RBTNColor, RBTreeOptions, RedBlackTreeNested, RedBlackTreeNodeNested } from '../../types';
|
|
9
9
|
import { BST, BSTNode } from './bst';
|
|
10
10
|
import { IBinaryTree } from '../../interfaces';
|
|
11
11
|
export declare class RedBlackTreeNode<V = any, N extends RedBlackTreeNode<V, N> = RedBlackTreeNodeNested<V>> extends BSTNode<V, N> {
|
|
@@ -15,12 +15,13 @@ export declare class RedBlackTreeNode<V = any, N extends RedBlackTreeNode<V, N>
|
|
|
15
15
|
/**
|
|
16
16
|
* 1. Each node is either red or black.
|
|
17
17
|
* 2. The root node is always black.
|
|
18
|
-
* 3. Leaf nodes are typically
|
|
18
|
+
* 3. Leaf nodes are typically Sentinel nodes and are considered black.
|
|
19
19
|
* 4. Red nodes must have black children.
|
|
20
20
|
* 5. Black balance: Every path from any node to each of its leaf nodes contains the same number of black nodes.
|
|
21
21
|
*/
|
|
22
|
-
export declare class RedBlackTree<V = any, N extends RedBlackTreeNode<V, N> = RedBlackTreeNode<V, RedBlackTreeNodeNested<V>>> extends BST<V, N> implements IBinaryTree<V, N> {
|
|
23
|
-
|
|
22
|
+
export declare class RedBlackTree<V = any, N extends RedBlackTreeNode<V, N> = RedBlackTreeNode<V, RedBlackTreeNodeNested<V>>, TREE extends RedBlackTree<V, N, TREE> = RedBlackTree<V, N, RedBlackTreeNested<V, N>>> extends BST<V, N, TREE> implements IBinaryTree<V, N, TREE> {
|
|
23
|
+
Sentinel: N;
|
|
24
|
+
options: RBTreeOptions;
|
|
24
25
|
/**
|
|
25
26
|
* The constructor function initializes a Red-Black Tree with an optional set of options.
|
|
26
27
|
* @param {RBTreeOptions} [options] - The `options` parameter is an optional object that can be
|
|
@@ -31,6 +32,8 @@ export declare class RedBlackTree<V = any, N extends RedBlackTreeNode<V, N> = Re
|
|
|
31
32
|
get root(): N;
|
|
32
33
|
protected _size: number;
|
|
33
34
|
get size(): number;
|
|
35
|
+
createNode(key: BTNKey, value?: V, color?: RBTNColor): N;
|
|
36
|
+
createTree(options?: RBTreeOptions): TREE;
|
|
34
37
|
/**
|
|
35
38
|
* Time Complexity: O(log n) on average (where n is the number of nodes in the tree)
|
|
36
39
|
* Space Complexity: O(1)
|
|
@@ -47,7 +50,6 @@ export declare class RedBlackTree<V = any, N extends RedBlackTreeNode<V, N> = Re
|
|
|
47
50
|
* @returns The method returns either a node (`N`) or `undefined`.
|
|
48
51
|
*/
|
|
49
52
|
add(keyOrNode: BTNKey | N | null | undefined, value?: V): N | undefined;
|
|
50
|
-
createNode(key: BTNKey, value?: V, color?: RBTNColor): N;
|
|
51
53
|
/**
|
|
52
54
|
* Time Complexity: O(log n) on average (where n is the number of nodes in the tree)
|
|
53
55
|
* Space Complexity: O(1)
|
|
@@ -21,7 +21,7 @@ exports.RedBlackTreeNode = RedBlackTreeNode;
|
|
|
21
21
|
/**
|
|
22
22
|
* 1. Each node is either red or black.
|
|
23
23
|
* 2. The root node is always black.
|
|
24
|
-
* 3. Leaf nodes are typically
|
|
24
|
+
* 3. Leaf nodes are typically Sentinel nodes and are considered black.
|
|
25
25
|
* 4. Red nodes must have black children.
|
|
26
26
|
* 5. Black balance: Every path from any node to each of its leaf nodes contains the same number of black nodes.
|
|
27
27
|
*/
|
|
@@ -33,9 +33,15 @@ class RedBlackTree extends bst_1.BST {
|
|
|
33
33
|
*/
|
|
34
34
|
constructor(options) {
|
|
35
35
|
super(options);
|
|
36
|
-
this.
|
|
36
|
+
this.Sentinel = new RedBlackTreeNode(NaN);
|
|
37
37
|
this._size = 0;
|
|
38
|
-
|
|
38
|
+
if (options) {
|
|
39
|
+
this.options = Object.assign({ iterationType: types_1.IterationType.ITERATIVE, comparator: (a, b) => a - b }, options);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.options = { iterationType: types_1.IterationType.ITERATIVE, comparator: (a, b) => a - b };
|
|
43
|
+
}
|
|
44
|
+
this._root = this.Sentinel;
|
|
39
45
|
}
|
|
40
46
|
get root() {
|
|
41
47
|
return this._root;
|
|
@@ -43,6 +49,12 @@ class RedBlackTree extends bst_1.BST {
|
|
|
43
49
|
get size() {
|
|
44
50
|
return this._size;
|
|
45
51
|
}
|
|
52
|
+
createNode(key, value, color = types_1.RBTNColor.BLACK) {
|
|
53
|
+
return new RedBlackTreeNode(key, value, color);
|
|
54
|
+
}
|
|
55
|
+
createTree(options) {
|
|
56
|
+
return new RedBlackTree(Object.assign(Object.assign({}, this.options), options));
|
|
57
|
+
}
|
|
46
58
|
/**
|
|
47
59
|
* Time Complexity: O(log n) on average (where n is the number of nodes in the tree)
|
|
48
60
|
* Space Complexity: O(1)
|
|
@@ -75,11 +87,11 @@ class RedBlackTree extends bst_1.BST {
|
|
|
75
87
|
else {
|
|
76
88
|
return;
|
|
77
89
|
}
|
|
78
|
-
node.left = this.
|
|
79
|
-
node.right = this.
|
|
90
|
+
node.left = this.Sentinel;
|
|
91
|
+
node.right = this.Sentinel;
|
|
80
92
|
let y = undefined;
|
|
81
93
|
let x = this.root;
|
|
82
|
-
while (x !== this.
|
|
94
|
+
while (x !== this.Sentinel) {
|
|
83
95
|
y = x;
|
|
84
96
|
if (x) {
|
|
85
97
|
if (node.key < x.key) {
|
|
@@ -115,9 +127,6 @@ class RedBlackTree extends bst_1.BST {
|
|
|
115
127
|
this._fixInsert(node);
|
|
116
128
|
this._size++;
|
|
117
129
|
}
|
|
118
|
-
createNode(key, value, color = types_1.RBTNColor.BLACK) {
|
|
119
|
-
return new RedBlackTreeNode(key, value, color);
|
|
120
|
-
}
|
|
121
130
|
/**
|
|
122
131
|
* Time Complexity: O(log n) on average (where n is the number of nodes in the tree)
|
|
123
132
|
* Space Complexity: O(1)
|
|
@@ -142,9 +151,9 @@ class RedBlackTree extends bst_1.BST {
|
|
|
142
151
|
if (identifier === null)
|
|
143
152
|
return ans;
|
|
144
153
|
const helper = (node) => {
|
|
145
|
-
let z = this.
|
|
154
|
+
let z = this.Sentinel;
|
|
146
155
|
let x, y;
|
|
147
|
-
while (node !== this.
|
|
156
|
+
while (node !== this.Sentinel) {
|
|
148
157
|
if (node && callback(node) === identifier) {
|
|
149
158
|
z = node;
|
|
150
159
|
}
|
|
@@ -155,17 +164,17 @@ class RedBlackTree extends bst_1.BST {
|
|
|
155
164
|
node = node === null || node === void 0 ? void 0 : node.left;
|
|
156
165
|
}
|
|
157
166
|
}
|
|
158
|
-
if (z === this.
|
|
167
|
+
if (z === this.Sentinel) {
|
|
159
168
|
this._size--;
|
|
160
169
|
return;
|
|
161
170
|
}
|
|
162
171
|
y = z;
|
|
163
172
|
let yOriginalColor = y.color;
|
|
164
|
-
if (z.left === this.
|
|
173
|
+
if (z.left === this.Sentinel) {
|
|
165
174
|
x = z.right;
|
|
166
175
|
this._rbTransplant(z, z.right);
|
|
167
176
|
}
|
|
168
|
-
else if (z.right === this.
|
|
177
|
+
else if (z.right === this.Sentinel) {
|
|
169
178
|
x = z.left;
|
|
170
179
|
this._rbTransplant(z, z.left);
|
|
171
180
|
}
|
|
@@ -196,7 +205,7 @@ class RedBlackTree extends bst_1.BST {
|
|
|
196
205
|
return ans;
|
|
197
206
|
}
|
|
198
207
|
isRealNode(node) {
|
|
199
|
-
return node !== this.
|
|
208
|
+
return node !== this.Sentinel && node !== undefined;
|
|
200
209
|
}
|
|
201
210
|
/**
|
|
202
211
|
* Time Complexity: O(log n) on average (where n is the number of nodes in the tree)
|
|
@@ -223,7 +232,7 @@ class RedBlackTree extends bst_1.BST {
|
|
|
223
232
|
* `getNodes` method, which is called within the `getNode` method.
|
|
224
233
|
* @returns a value of type `N`, `null`, or `undefined`.
|
|
225
234
|
*/
|
|
226
|
-
getNode(identifier, callback = this._defaultOneParamCallback, beginRoot = this.root, iterationType = this.iterationType) {
|
|
235
|
+
getNode(identifier, callback = this._defaultOneParamCallback, beginRoot = this.root, iterationType = this.options.iterationType) {
|
|
227
236
|
var _a;
|
|
228
237
|
if (identifier instanceof binary_tree_1.BinaryTreeNode)
|
|
229
238
|
callback = (node => node);
|
|
@@ -244,11 +253,11 @@ class RedBlackTree extends bst_1.BST {
|
|
|
244
253
|
*/
|
|
245
254
|
getSuccessor(x) {
|
|
246
255
|
var _a;
|
|
247
|
-
if (x.right !== this.
|
|
256
|
+
if (x.right !== this.Sentinel) {
|
|
248
257
|
return (_a = this.getLeftMost(x.right)) !== null && _a !== void 0 ? _a : undefined;
|
|
249
258
|
}
|
|
250
259
|
let y = x.parent;
|
|
251
|
-
while (y !== this.
|
|
260
|
+
while (y !== this.Sentinel && y !== undefined && x === y.right) {
|
|
252
261
|
x = y;
|
|
253
262
|
y = y.parent;
|
|
254
263
|
}
|
|
@@ -268,18 +277,18 @@ class RedBlackTree extends bst_1.BST {
|
|
|
268
277
|
* @returns the predecessor of the given RedBlackTreeNode 'x'.
|
|
269
278
|
*/
|
|
270
279
|
getPredecessor(x) {
|
|
271
|
-
if (x.left !== this.
|
|
280
|
+
if (x.left !== this.Sentinel) {
|
|
272
281
|
return this.getRightMost(x.left);
|
|
273
282
|
}
|
|
274
283
|
let y = x.parent;
|
|
275
|
-
while (y !== this.
|
|
284
|
+
while (y !== this.Sentinel && x === y.left) {
|
|
276
285
|
x = y;
|
|
277
286
|
y = y.parent;
|
|
278
287
|
}
|
|
279
288
|
return y;
|
|
280
289
|
}
|
|
281
290
|
clear() {
|
|
282
|
-
this._root = this.
|
|
291
|
+
this._root = this.Sentinel;
|
|
283
292
|
this._size = 0;
|
|
284
293
|
}
|
|
285
294
|
_setRoot(v) {
|
|
@@ -303,7 +312,7 @@ class RedBlackTree extends bst_1.BST {
|
|
|
303
312
|
if (x.right) {
|
|
304
313
|
const y = x.right;
|
|
305
314
|
x.right = y.left;
|
|
306
|
-
if (y.left !== this.
|
|
315
|
+
if (y.left !== this.Sentinel) {
|
|
307
316
|
if (y.left)
|
|
308
317
|
y.left.parent = x;
|
|
309
318
|
}
|
|
@@ -337,7 +346,7 @@ class RedBlackTree extends bst_1.BST {
|
|
|
337
346
|
if (x.left) {
|
|
338
347
|
const y = x.left;
|
|
339
348
|
x.left = y.right;
|
|
340
|
-
if (y.right !== this.
|
|
349
|
+
if (y.right !== this.Sentinel) {
|
|
341
350
|
if (y.right)
|
|
342
351
|
y.right.parent = x;
|
|
343
352
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rb-tree.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/rb-tree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rb-tree.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/rb-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
8
|
import type { BTNKey, TreeMultimapNodeNested, TreeMultimapOptions } from '../../types';
|
|
9
|
-
import { BiTreeDeleteResult, BTNCallback, IterationType } from '../../types';
|
|
9
|
+
import { BiTreeDeleteResult, BTNCallback, IterationType, TreeMultimapNested } from '../../types';
|
|
10
10
|
import { IBinaryTree } from '../../interfaces';
|
|
11
11
|
import { AVLTree, AVLTreeNode } from './avl-tree';
|
|
12
12
|
export declare class TreeMultimapNode<V = any, N extends TreeMultimapNode<V, N> = TreeMultimapNodeNested<V>> extends AVLTreeNode<V, N> {
|
|
@@ -26,7 +26,8 @@ export declare class TreeMultimapNode<V = any, N extends TreeMultimapNode<V, N>
|
|
|
26
26
|
/**
|
|
27
27
|
* The only distinction between a TreeMultimap and a AVLTree lies in the ability of the former to store duplicate nodes through the utilization of counters.
|
|
28
28
|
*/
|
|
29
|
-
export declare class TreeMultimap<V = any, N extends TreeMultimapNode<V, N> = TreeMultimapNode<V, TreeMultimapNodeNested<V>>> extends AVLTree<V, N> implements IBinaryTree<V, N> {
|
|
29
|
+
export declare class TreeMultimap<V = any, N extends TreeMultimapNode<V, N> = TreeMultimapNode<V, TreeMultimapNodeNested<V>>, TREE extends TreeMultimap<V, N, TREE> = TreeMultimap<V, N, TreeMultimapNested<V, N>>> extends AVLTree<V, N, TREE> implements IBinaryTree<V, N, TREE> {
|
|
30
|
+
options: TreeMultimapOptions;
|
|
30
31
|
/**
|
|
31
32
|
* The constructor function for a TreeMultimap class in TypeScript, which extends another class and sets an option to
|
|
32
33
|
* merge duplicated values.
|
|
@@ -46,6 +47,7 @@ export declare class TreeMultimap<V = any, N extends TreeMultimapNode<V, N> = Tr
|
|
|
46
47
|
* @returns A new instance of the BSTNode class with the specified key, value, and count (if provided).
|
|
47
48
|
*/
|
|
48
49
|
createNode(key: BTNKey, value?: V, count?: number): N;
|
|
50
|
+
createTree(options?: TreeMultimapOptions): TREE;
|
|
49
51
|
/**
|
|
50
52
|
* Time Complexity: O(log n) - logarithmic time, where "n" is the number of nodes in the tree. The add method of the superclass (AVLTree) has logarithmic time complexity.
|
|
51
53
|
* Space Complexity: O(1) - constant space, as it doesn't use additional data structures that scale with input size.
|
|
@@ -98,7 +100,7 @@ export declare class TreeMultimap<V = any, N extends TreeMultimapNode<V, N> = Tr
|
|
|
98
100
|
* values:
|
|
99
101
|
* @returns a boolean value.
|
|
100
102
|
*/
|
|
101
|
-
perfectlyBalance(iterationType?: IterationType): boolean;
|
|
103
|
+
perfectlyBalance(iterationType?: IterationType | undefined): boolean;
|
|
102
104
|
/**
|
|
103
105
|
* Time Complexity: O(n log n) - logarithmic time for each insertion, where "n" is the number of nodes in the tree. This is because the method calls the add method for each node.
|
|
104
106
|
* Space Complexity: O(n) - linear space, as it creates an array to store the sorted nodes.
|
|
@@ -30,9 +30,15 @@ class TreeMultimap extends avl_tree_1.AVLTree {
|
|
|
30
30
|
* @param {TreeMultimapOptions} [options] - An optional object that contains additional configuration options for the
|
|
31
31
|
* TreeMultimap.
|
|
32
32
|
*/
|
|
33
|
-
constructor(options) {
|
|
33
|
+
constructor(options = { iterationType: types_1.IterationType.ITERATIVE }) {
|
|
34
34
|
super(options);
|
|
35
35
|
this._count = 0;
|
|
36
|
+
if (options) {
|
|
37
|
+
this.options = Object.assign({ iterationType: types_1.IterationType.ITERATIVE, comparator: (a, b) => a - b }, options);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.options = { iterationType: types_1.IterationType.ITERATIVE, comparator: (a, b) => a - b };
|
|
41
|
+
}
|
|
36
42
|
}
|
|
37
43
|
get count() {
|
|
38
44
|
return this._count;
|
|
@@ -49,6 +55,9 @@ class TreeMultimap extends avl_tree_1.AVLTree {
|
|
|
49
55
|
createNode(key, value, count) {
|
|
50
56
|
return new TreeMultimapNode(key, value, count);
|
|
51
57
|
}
|
|
58
|
+
createTree(options) {
|
|
59
|
+
return new TreeMultimap(Object.assign(Object.assign({}, this.options), options));
|
|
60
|
+
}
|
|
52
61
|
/**
|
|
53
62
|
* Time Complexity: O(log n) - logarithmic time, where "n" is the number of nodes in the tree. The add method of the superclass (AVLTree) has logarithmic time complexity.
|
|
54
63
|
* Space Complexity: O(1) - constant space, as it doesn't use additional data structures that scale with input size.
|
|
@@ -194,7 +203,7 @@ class TreeMultimap extends avl_tree_1.AVLTree {
|
|
|
194
203
|
* values:
|
|
195
204
|
* @returns a boolean value.
|
|
196
205
|
*/
|
|
197
|
-
perfectlyBalance(iterationType = this.iterationType) {
|
|
206
|
+
perfectlyBalance(iterationType = this.options.iterationType) {
|
|
198
207
|
const sorted = this.dfs(node => node, 'in'), n = sorted.length;
|
|
199
208
|
if (sorted.length < 1)
|
|
200
209
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-multimap.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/tree-multimap.ts"],"names":[],"mappings":";;;AAQA,
|
|
1
|
+
{"version":3,"file":"tree-multimap.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/tree-multimap.ts"],"names":[],"mappings":"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"}
|