data-structure-typed 1.50.9 → 1.51.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 +1 -1
- package/README.md +14 -14
- package/benchmark/report.html +37 -1
- package/benchmark/report.json +378 -12
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +2 -2
- package/dist/cjs/data-structures/binary-tree/avl-tree.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 +73 -73
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.js +39 -39
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +3 -3
- 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 +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +2 -2
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js +1 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +1 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree.js +2 -2
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +1 -1
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +73 -73
- package/dist/mjs/data-structures/binary-tree/bst.js +39 -39
- package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +1 -1
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +3 -3
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.d.ts +1 -1
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +2 -2
- package/dist/umd/data-structure-typed.js +119 -119
- package/dist/umd/data-structure-typed.min.js +2 -2
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +7 -7
- package/src/data-structures/binary-tree/avl-tree-multi-map.ts +1 -1
- package/src/data-structures/binary-tree/avl-tree.ts +2 -2
- package/src/data-structures/binary-tree/binary-tree.ts +71 -71
- package/src/data-structures/binary-tree/bst.ts +33 -33
- package/src/data-structures/binary-tree/rb-tree.ts +3 -3
- package/src/data-structures/binary-tree/tree-multi-map.ts +2 -2
- package/test/integration/avl-tree.test.ts +4 -4
- package/test/integration/bst.test.ts +7 -7
- package/test/integration/index.html +2 -2
- package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +1 -0
- package/test/utils/big-o.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avl-tree-multi-map.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/avl-tree-multi-map.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"avl-tree-multi-map.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/avl-tree-multi-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,7 +108,7 @@ export declare class AVLTree<K = any, V = any, NODE extends AVLTreeNode<K, V, NO
|
|
|
108
108
|
* `callback` function.
|
|
109
109
|
* @param {C} callback - The `callback` parameter is a function that will be called for each node
|
|
110
110
|
* that is deleted from the binary tree. It is an optional parameter and if not provided, it will
|
|
111
|
-
* default to the `
|
|
111
|
+
* default to the `_DEFAULT_CALLBACK` function. The `callback` function should have a single
|
|
112
112
|
* parameter of type `NODE
|
|
113
113
|
* @returns The method is returning an array of `BinaryTreeDeleteResult<NODE>`.
|
|
114
114
|
*/
|
|
@@ -133,11 +133,11 @@ class AVLTree extends bst_1.BST {
|
|
|
133
133
|
* `callback` function.
|
|
134
134
|
* @param {C} callback - The `callback` parameter is a function that will be called for each node
|
|
135
135
|
* that is deleted from the binary tree. It is an optional parameter and if not provided, it will
|
|
136
|
-
* default to the `
|
|
136
|
+
* default to the `_DEFAULT_CALLBACK` function. The `callback` function should have a single
|
|
137
137
|
* parameter of type `NODE
|
|
138
138
|
* @returns The method is returning an array of `BinaryTreeDeleteResult<NODE>`.
|
|
139
139
|
*/
|
|
140
|
-
delete(identifier, callback = this.
|
|
140
|
+
delete(identifier, callback = this._DEFAULT_CALLBACK) {
|
|
141
141
|
if (identifier instanceof AVLTreeNode)
|
|
142
142
|
callback = (node => node);
|
|
143
143
|
const deletedResults = super.delete(identifier, callback);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avl-tree.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/avl-tree.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,+BAAqC;AAYrC,MAAa,WAIX,SAAQ,aAAmB;IAC3B;;;;;;;OAOG;IACH,YAAY,GAAM,EAAE,KAAS;QAC3B,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAID;;;OAGG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;CACF;AApCD,kCAoCC;AAED;;;;;;;;GAQG;AACH,MAAa,OAMX,SAAQ,SAAqB;IAE7B;;;;;;;;OAQG;IACH,YAAY,uBAA+D,EAAE,EAAE,OAA2B;QACxG,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnB,IAAI,oBAAoB;YAAE,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;OAQG;IACM,UAAU,CAAC,GAAM,EAAE,KAAS;QACnC,OAAO,IAAI,WAAW,CAAa,GAAG,EAAE,KAAK,CAAS,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACM,UAAU,CAAC,OAA2B;QAC7C,OAAO,IAAI,OAAO,CAAmB,EAAE,kBACrC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO,IAClB,OAAO,EACF,CAAC;IACb,CAAC;IAED;;;;OAIG;IACM,MAAM,CAAC,gBAA8C;QAC5D,OAAO,gBAAgB,YAAY,WAAW,CAAC;IACjD,CAAC;IAED;;;;OAIG;IAEH;;;;;;;;;;;OAWG;IACM,GAAG,CAAC,gBAA8C,EAAE,KAAS;QACpE,IAAI,gBAAgB,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,QAAQ;YAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;OAcG;IACM,MAAM,CACb,UAAyB,EACzB,WAAc,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"avl-tree.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/avl-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -576,7 +576,7 @@ export declare class BinaryTree<K = any, V = any, NODE extends BinaryTreeNode<K,
|
|
|
576
576
|
* 4. `middleIndex`: The index of the middle character
|
|
577
577
|
*/
|
|
578
578
|
protected _displayAux(node: NODE | null | undefined, options: BinaryTreePrintOptions): NodeDisplayLayout;
|
|
579
|
-
protected
|
|
579
|
+
protected _DEFAULT_CALLBACK: (node: NODE | null | undefined) => K | undefined;
|
|
580
580
|
/**
|
|
581
581
|
* Swap the data of two nodes in the binary tree.
|
|
582
582
|
* @param {NODE} srcNode - The source node to swap.
|
|
@@ -107,7 +107,7 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
107
107
|
super();
|
|
108
108
|
this.iterationType = 'ITERATIVE';
|
|
109
109
|
this._extractor = (key) => (typeof key === 'number' ? key : Number(key));
|
|
110
|
-
this.
|
|
110
|
+
this._DEFAULT_CALLBACK = (node) => (node ? node.key : undefined);
|
|
111
111
|
if (options) {
|
|
112
112
|
const { iterationType, extractor } = options;
|
|
113
113
|
if (iterationType)
|
|
@@ -217,23 +217,23 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
217
217
|
* itself if it is not a valid node key.
|
|
218
218
|
*/
|
|
219
219
|
ensureNode(keyOrNodeOrEntry, iterationType = 'ITERATIVE') {
|
|
220
|
-
let res;
|
|
221
220
|
if (this.isRealNode(keyOrNodeOrEntry)) {
|
|
222
|
-
|
|
221
|
+
return keyOrNodeOrEntry;
|
|
223
222
|
}
|
|
224
223
|
else if (this.isEntry(keyOrNodeOrEntry)) {
|
|
225
224
|
if (keyOrNodeOrEntry[0] === null)
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
225
|
+
return null;
|
|
226
|
+
if (keyOrNodeOrEntry[0] === undefined)
|
|
227
|
+
return;
|
|
228
|
+
return this.getNodeByKey(keyOrNodeOrEntry[0], iterationType);
|
|
229
229
|
}
|
|
230
230
|
else {
|
|
231
231
|
if (keyOrNodeOrEntry === null)
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
232
|
+
return null;
|
|
233
|
+
if (keyOrNodeOrEntry === undefined)
|
|
234
|
+
return;
|
|
235
|
+
return this.getNodeByKey(keyOrNodeOrEntry, iterationType);
|
|
235
236
|
}
|
|
236
|
-
return res;
|
|
237
237
|
}
|
|
238
238
|
/**
|
|
239
239
|
* The function "isNode" checks if an keyOrNodeOrEntry is an instance of the BinaryTreeNode class.
|
|
@@ -409,14 +409,14 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
409
409
|
* specific node based on its value or object.
|
|
410
410
|
* @param {C} callback - The `callback` parameter is a function that is used to determine the
|
|
411
411
|
* identifier of the node to be deleted. It is optional and has a default value of
|
|
412
|
-
* `this.
|
|
412
|
+
* `this._DEFAULT_CALLBACK`. The `callback` function should return the identifier of the node.
|
|
413
413
|
* @returns an array of `BinaryTreeDeleteResult<NODE>`.
|
|
414
414
|
*/
|
|
415
|
-
delete(identifier, callback = this.
|
|
415
|
+
delete(identifier, callback = this._DEFAULT_CALLBACK) {
|
|
416
416
|
const deletedResult = [];
|
|
417
417
|
if (!this.root)
|
|
418
418
|
return deletedResult;
|
|
419
|
-
if ((!callback || callback === this.
|
|
419
|
+
if ((!callback || callback === this._DEFAULT_CALLBACK) && identifier instanceof BinaryTreeNode)
|
|
420
420
|
callback = (node => node);
|
|
421
421
|
const curr = this.getNode(identifier, callback);
|
|
422
422
|
if (!curr)
|
|
@@ -475,7 +475,7 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
475
475
|
* specific value.
|
|
476
476
|
* @param {C} callback - The `callback` parameter is a function that takes a node of type `NODE` as
|
|
477
477
|
* input and returns a value of type `C`. It is used to determine if a node matches the given
|
|
478
|
-
* identifier. If no callback is provided, the `
|
|
478
|
+
* identifier. If no callback is provided, the `_DEFAULT_CALLBACK` function is used as the
|
|
479
479
|
* default
|
|
480
480
|
* @param [onlyOne=false] - A boolean value indicating whether to only return the first node that
|
|
481
481
|
* matches the identifier. If set to true, the function will stop iterating once it finds a matching
|
|
@@ -488,15 +488,15 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
488
488
|
* traverse the binary tree. It can have two possible values:
|
|
489
489
|
* @returns an array of nodes of type `NODE`.
|
|
490
490
|
*/
|
|
491
|
-
getNodes(identifier, callback = this.
|
|
492
|
-
if ((!callback || callback === this.
|
|
491
|
+
getNodes(identifier, callback = this._DEFAULT_CALLBACK, onlyOne = false, beginRoot = this.root, iterationType = this.iterationType) {
|
|
492
|
+
if ((!callback || callback === this._DEFAULT_CALLBACK) && identifier instanceof BinaryTreeNode)
|
|
493
493
|
callback = (node => node);
|
|
494
494
|
beginRoot = this.ensureNode(beginRoot);
|
|
495
495
|
if (!beginRoot)
|
|
496
496
|
return [];
|
|
497
497
|
const ans = [];
|
|
498
498
|
if (iterationType === 'RECURSIVE') {
|
|
499
|
-
const
|
|
499
|
+
const dfs = (cur) => {
|
|
500
500
|
if (callback(cur) === identifier) {
|
|
501
501
|
ans.push(cur);
|
|
502
502
|
if (onlyOne)
|
|
@@ -504,23 +504,23 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
504
504
|
}
|
|
505
505
|
if (!cur.left && !cur.right)
|
|
506
506
|
return;
|
|
507
|
-
cur.left &&
|
|
508
|
-
cur.right &&
|
|
507
|
+
cur.left && dfs(cur.left);
|
|
508
|
+
cur.right && dfs(cur.right);
|
|
509
509
|
};
|
|
510
|
-
|
|
510
|
+
dfs(beginRoot);
|
|
511
511
|
}
|
|
512
512
|
else {
|
|
513
|
-
const
|
|
514
|
-
while (
|
|
515
|
-
const cur =
|
|
513
|
+
const stack = [beginRoot];
|
|
514
|
+
while (stack.length > 0) {
|
|
515
|
+
const cur = stack.pop();
|
|
516
516
|
if (cur) {
|
|
517
517
|
if (callback(cur) === identifier) {
|
|
518
518
|
ans.push(cur);
|
|
519
519
|
if (onlyOne)
|
|
520
520
|
return ans;
|
|
521
521
|
}
|
|
522
|
-
cur.left &&
|
|
523
|
-
cur.right &&
|
|
522
|
+
cur.left && stack.push(cur.left);
|
|
523
|
+
cur.right && stack.push(cur.right);
|
|
524
524
|
}
|
|
525
525
|
}
|
|
526
526
|
}
|
|
@@ -551,9 +551,9 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
551
551
|
* nodes are visited during the search.
|
|
552
552
|
* @returns a value of type `NODE | null | undefined`.
|
|
553
553
|
*/
|
|
554
|
-
getNode(identifier, callback = this.
|
|
554
|
+
getNode(identifier, callback = this._DEFAULT_CALLBACK, beginRoot = this.root, iterationType = this.iterationType) {
|
|
555
555
|
var _a;
|
|
556
|
-
if ((!callback || callback === this.
|
|
556
|
+
if ((!callback || callback === this._DEFAULT_CALLBACK) && identifier instanceof BinaryTreeNode)
|
|
557
557
|
callback = (node => node);
|
|
558
558
|
return (_a = this.getNodes(identifier, callback, true, beginRoot, iterationType)[0]) !== null && _a !== void 0 ? _a : null;
|
|
559
559
|
}
|
|
@@ -579,27 +579,27 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
579
579
|
if (!this.root)
|
|
580
580
|
return undefined;
|
|
581
581
|
if (iterationType === 'RECURSIVE') {
|
|
582
|
-
const
|
|
582
|
+
const dfs = (cur) => {
|
|
583
583
|
if (cur.key === key)
|
|
584
584
|
return cur;
|
|
585
585
|
if (!cur.left && !cur.right)
|
|
586
586
|
return;
|
|
587
587
|
if (cur.left)
|
|
588
|
-
return
|
|
588
|
+
return dfs(cur.left);
|
|
589
589
|
if (cur.right)
|
|
590
|
-
return
|
|
590
|
+
return dfs(cur.right);
|
|
591
591
|
};
|
|
592
|
-
return
|
|
592
|
+
return dfs(this.root);
|
|
593
593
|
}
|
|
594
594
|
else {
|
|
595
|
-
const
|
|
596
|
-
while (
|
|
597
|
-
const cur =
|
|
595
|
+
const stack = [this.root];
|
|
596
|
+
while (stack.length > 0) {
|
|
597
|
+
const cur = stack.pop();
|
|
598
598
|
if (cur) {
|
|
599
599
|
if (cur.key === key)
|
|
600
600
|
return cur;
|
|
601
|
-
cur.left &&
|
|
602
|
-
cur.right &&
|
|
601
|
+
cur.left && stack.push(cur.left);
|
|
602
|
+
cur.right && stack.push(cur.right);
|
|
603
603
|
}
|
|
604
604
|
}
|
|
605
605
|
}
|
|
@@ -630,9 +630,9 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
630
630
|
* @returns The value of the node with the given identifier is being returned. If the node is not
|
|
631
631
|
* found, `undefined` is returned.
|
|
632
632
|
*/
|
|
633
|
-
get(identifier, callback = this.
|
|
633
|
+
get(identifier, callback = this._DEFAULT_CALLBACK, beginRoot = this.root, iterationType = this.iterationType) {
|
|
634
634
|
var _a, _b;
|
|
635
|
-
if ((!callback || callback === this.
|
|
635
|
+
if ((!callback || callback === this._DEFAULT_CALLBACK) && identifier instanceof BinaryTreeNode)
|
|
636
636
|
callback = (node => node);
|
|
637
637
|
return (_b = (_a = this.getNode(identifier, callback, beginRoot, iterationType)) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : undefined;
|
|
638
638
|
}
|
|
@@ -661,8 +661,8 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
661
661
|
* be performed in a pre-order, in-order, or post-order manner.
|
|
662
662
|
* @returns a boolean value.
|
|
663
663
|
*/
|
|
664
|
-
has(identifier, callback = this.
|
|
665
|
-
if ((!callback || callback === this.
|
|
664
|
+
has(identifier, callback = this._DEFAULT_CALLBACK, beginRoot = this.root, iterationType = this.iterationType) {
|
|
665
|
+
if ((!callback || callback === this._DEFAULT_CALLBACK) && identifier instanceof BinaryTreeNode)
|
|
666
666
|
callback = (node => node);
|
|
667
667
|
return this.getNodes(identifier, callback, true, beginRoot, iterationType).length > 0;
|
|
668
668
|
}
|
|
@@ -967,21 +967,21 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
967
967
|
if (!this.isRealNode(beginRoot))
|
|
968
968
|
return beginRoot;
|
|
969
969
|
if (iterationType === 'RECURSIVE') {
|
|
970
|
-
const
|
|
970
|
+
const dfs = (cur) => {
|
|
971
971
|
if (!this.isRealNode(cur.left))
|
|
972
972
|
return cur;
|
|
973
|
-
return
|
|
973
|
+
return dfs(cur.left);
|
|
974
974
|
};
|
|
975
|
-
return
|
|
975
|
+
return dfs(beginRoot);
|
|
976
976
|
}
|
|
977
977
|
else {
|
|
978
978
|
// Indirect implementation of iteration using tail recursion optimization
|
|
979
|
-
const
|
|
979
|
+
const dfs = (0, utils_1.trampoline)((cur) => {
|
|
980
980
|
if (!this.isRealNode(cur.left))
|
|
981
981
|
return cur;
|
|
982
|
-
return
|
|
982
|
+
return dfs.cont(cur.left);
|
|
983
983
|
});
|
|
984
|
-
return
|
|
984
|
+
return dfs(beginRoot);
|
|
985
985
|
}
|
|
986
986
|
}
|
|
987
987
|
/**
|
|
@@ -1011,21 +1011,21 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
1011
1011
|
if (!beginRoot)
|
|
1012
1012
|
return beginRoot;
|
|
1013
1013
|
if (iterationType === 'RECURSIVE') {
|
|
1014
|
-
const
|
|
1014
|
+
const dfs = (cur) => {
|
|
1015
1015
|
if (!this.isRealNode(cur.right))
|
|
1016
1016
|
return cur;
|
|
1017
|
-
return
|
|
1017
|
+
return dfs(cur.right);
|
|
1018
1018
|
};
|
|
1019
|
-
return
|
|
1019
|
+
return dfs(beginRoot);
|
|
1020
1020
|
}
|
|
1021
1021
|
else {
|
|
1022
1022
|
// Indirect implementation of iteration using tail recursion optimization
|
|
1023
|
-
const
|
|
1023
|
+
const dfs = (0, utils_1.trampoline)((cur) => {
|
|
1024
1024
|
if (!this.isRealNode(cur.right))
|
|
1025
1025
|
return cur;
|
|
1026
|
-
return
|
|
1026
|
+
return dfs.cont(cur.right);
|
|
1027
1027
|
});
|
|
1028
|
-
return
|
|
1028
|
+
return dfs(beginRoot);
|
|
1029
1029
|
}
|
|
1030
1030
|
}
|
|
1031
1031
|
/**
|
|
@@ -1110,65 +1110,65 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
1110
1110
|
* `false`, null or undefined
|
|
1111
1111
|
* @returns an array of values that are the return values of the callback function.
|
|
1112
1112
|
*/
|
|
1113
|
-
dfs(callback = this.
|
|
1113
|
+
dfs(callback = this._DEFAULT_CALLBACK, pattern = 'IN', beginRoot = this.root, iterationType = 'ITERATIVE', includeNull = false) {
|
|
1114
1114
|
beginRoot = this.ensureNode(beginRoot);
|
|
1115
1115
|
if (!beginRoot)
|
|
1116
1116
|
return [];
|
|
1117
1117
|
const ans = [];
|
|
1118
1118
|
if (iterationType === 'RECURSIVE') {
|
|
1119
|
-
const
|
|
1119
|
+
const dfs = (node) => {
|
|
1120
1120
|
switch (pattern) {
|
|
1121
1121
|
case 'IN':
|
|
1122
1122
|
if (includeNull) {
|
|
1123
1123
|
if (this.isRealNode(node) && this.isNodeOrNull(node.left))
|
|
1124
|
-
|
|
1124
|
+
dfs(node.left);
|
|
1125
1125
|
this.isNodeOrNull(node) && ans.push(callback(node));
|
|
1126
1126
|
if (this.isRealNode(node) && this.isNodeOrNull(node.right))
|
|
1127
|
-
|
|
1127
|
+
dfs(node.right);
|
|
1128
1128
|
}
|
|
1129
1129
|
else {
|
|
1130
1130
|
if (this.isRealNode(node) && this.isRealNode(node.left))
|
|
1131
|
-
|
|
1131
|
+
dfs(node.left);
|
|
1132
1132
|
this.isRealNode(node) && ans.push(callback(node));
|
|
1133
1133
|
if (this.isRealNode(node) && this.isRealNode(node.right))
|
|
1134
|
-
|
|
1134
|
+
dfs(node.right);
|
|
1135
1135
|
}
|
|
1136
1136
|
break;
|
|
1137
1137
|
case 'PRE':
|
|
1138
1138
|
if (includeNull) {
|
|
1139
1139
|
this.isNodeOrNull(node) && ans.push(callback(node));
|
|
1140
1140
|
if (this.isRealNode(node) && this.isNodeOrNull(node.left))
|
|
1141
|
-
|
|
1141
|
+
dfs(node.left);
|
|
1142
1142
|
if (this.isRealNode(node) && this.isNodeOrNull(node.right))
|
|
1143
|
-
|
|
1143
|
+
dfs(node.right);
|
|
1144
1144
|
}
|
|
1145
1145
|
else {
|
|
1146
1146
|
this.isRealNode(node) && ans.push(callback(node));
|
|
1147
1147
|
if (this.isRealNode(node) && this.isRealNode(node.left))
|
|
1148
|
-
|
|
1148
|
+
dfs(node.left);
|
|
1149
1149
|
if (this.isRealNode(node) && this.isRealNode(node.right))
|
|
1150
|
-
|
|
1150
|
+
dfs(node.right);
|
|
1151
1151
|
}
|
|
1152
1152
|
break;
|
|
1153
1153
|
case 'POST':
|
|
1154
1154
|
if (includeNull) {
|
|
1155
1155
|
if (this.isRealNode(node) && this.isNodeOrNull(node.left))
|
|
1156
|
-
|
|
1156
|
+
dfs(node.left);
|
|
1157
1157
|
if (this.isRealNode(node) && this.isNodeOrNull(node.right))
|
|
1158
|
-
|
|
1158
|
+
dfs(node.right);
|
|
1159
1159
|
this.isNodeOrNull(node) && ans.push(callback(node));
|
|
1160
1160
|
}
|
|
1161
1161
|
else {
|
|
1162
1162
|
if (this.isRealNode(node) && this.isRealNode(node.left))
|
|
1163
|
-
|
|
1163
|
+
dfs(node.left);
|
|
1164
1164
|
if (this.isRealNode(node) && this.isRealNode(node.right))
|
|
1165
|
-
|
|
1165
|
+
dfs(node.right);
|
|
1166
1166
|
this.isRealNode(node) && ans.push(callback(node));
|
|
1167
1167
|
}
|
|
1168
1168
|
break;
|
|
1169
1169
|
}
|
|
1170
1170
|
};
|
|
1171
|
-
|
|
1171
|
+
dfs(beginRoot);
|
|
1172
1172
|
}
|
|
1173
1173
|
else {
|
|
1174
1174
|
// 0: visit, 1: print
|
|
@@ -1241,14 +1241,14 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
1241
1241
|
* @returns an array of values that are the result of invoking the callback function on each node in
|
|
1242
1242
|
* the breadth-first traversal of a binary tree.
|
|
1243
1243
|
*/
|
|
1244
|
-
bfs(callback = this.
|
|
1244
|
+
bfs(callback = this._DEFAULT_CALLBACK, beginRoot = this.root, iterationType = this.iterationType, includeNull = false) {
|
|
1245
1245
|
beginRoot = this.ensureNode(beginRoot);
|
|
1246
1246
|
if (!beginRoot)
|
|
1247
1247
|
return [];
|
|
1248
1248
|
const ans = [];
|
|
1249
1249
|
if (iterationType === 'RECURSIVE') {
|
|
1250
1250
|
const queue = new queue_1.Queue([beginRoot]);
|
|
1251
|
-
const
|
|
1251
|
+
const dfs = (level) => {
|
|
1252
1252
|
if (queue.size === 0)
|
|
1253
1253
|
return;
|
|
1254
1254
|
const current = queue.shift();
|
|
@@ -1265,9 +1265,9 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
1265
1265
|
if (this.isRealNode(current.right))
|
|
1266
1266
|
queue.push(current.right);
|
|
1267
1267
|
}
|
|
1268
|
-
|
|
1268
|
+
dfs(level + 1);
|
|
1269
1269
|
};
|
|
1270
|
-
|
|
1270
|
+
dfs(0);
|
|
1271
1271
|
}
|
|
1272
1272
|
else {
|
|
1273
1273
|
const queue = new queue_1.Queue([beginRoot]);
|
|
@@ -1318,7 +1318,7 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
1318
1318
|
* be excluded
|
|
1319
1319
|
* @returns The function `listLevels` returns a two-dimensional array of type `ReturnType<C>[][]`.
|
|
1320
1320
|
*/
|
|
1321
|
-
listLevels(callback = this.
|
|
1321
|
+
listLevels(callback = this._DEFAULT_CALLBACK, beginRoot = this.root, iterationType = this.iterationType, includeNull = false) {
|
|
1322
1322
|
beginRoot = this.ensureNode(beginRoot);
|
|
1323
1323
|
const levelsNodes = [];
|
|
1324
1324
|
if (!beginRoot)
|
|
@@ -1390,7 +1390,7 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
1390
1390
|
* `callback` function on each node in the binary tree. The type of the array nodes is determined
|
|
1391
1391
|
* by the return type of the `callback` function.
|
|
1392
1392
|
*/
|
|
1393
|
-
morris(callback = this.
|
|
1393
|
+
morris(callback = this._DEFAULT_CALLBACK, pattern = 'IN', beginRoot = this.root) {
|
|
1394
1394
|
beginRoot = this.ensureNode(beginRoot);
|
|
1395
1395
|
if (beginRoot === null)
|
|
1396
1396
|
return [];
|