data-structure-typed 1.46.9 → 1.47.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/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +36 -4
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +33 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +36 -4
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +33 -1
- package/dist/umd/data-structure-typed.js +33 -1
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +1 -1
- package/src/data-structures/binary-tree/avl-tree.ts +1 -1
- package/src/data-structures/binary-tree/binary-tree.ts +37 -5
package/CHANGELOG.md
CHANGED
|
@@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
- [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
|
|
9
9
|
- [`auto-changelog`](https://github.com/CookPete/auto-changelog)
|
|
10
10
|
|
|
11
|
-
## [v1.
|
|
11
|
+
## [v1.47.1](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)
|
|
12
12
|
|
|
13
13
|
### Changes
|
|
14
14
|
|
|
@@ -430,10 +430,42 @@ export declare class BinaryTree<V = any, N extends BinaryTreeNode<V, N> = Binary
|
|
|
430
430
|
* by the return type of the `callback` function.
|
|
431
431
|
*/
|
|
432
432
|
morris<C extends BTNCallback<N>>(callback?: C, pattern?: DFSOrderPattern, beginRoot?: BTNKey | N | null | undefined): ReturnType<C>[];
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
433
|
+
/**
|
|
434
|
+
* The `forEach` function iterates over each entry in a tree and calls a callback function with the
|
|
435
|
+
* entry and the tree as arguments.
|
|
436
|
+
* @param callback - The callback parameter is a function that will be called for each entry in the
|
|
437
|
+
* tree. It takes two parameters: entry and tree.
|
|
438
|
+
*/
|
|
439
|
+
forEach(callback: (entry: [BTNKey, V | undefined], tree: this) => void): void;
|
|
440
|
+
/**
|
|
441
|
+
* The `filter` function creates a new tree by iterating over the entries of the current tree and
|
|
442
|
+
* adding the entries that satisfy the given predicate.
|
|
443
|
+
* @param predicate - The `predicate` parameter is a function that takes two arguments: `entry` and
|
|
444
|
+
* `tree`.
|
|
445
|
+
* @returns The `filter` method is returning a new tree object that contains only the entries that
|
|
446
|
+
* satisfy the given predicate function.
|
|
447
|
+
*/
|
|
448
|
+
filter(predicate: (entry: [BTNKey, V | undefined], tree: this) => boolean): TREE;
|
|
449
|
+
/**
|
|
450
|
+
* The `map` function creates a new tree by applying a callback function to each entry in the current
|
|
451
|
+
* tree.
|
|
452
|
+
* @param callback - The callback parameter is a function that takes two arguments: entry and tree.
|
|
453
|
+
* @returns The `map` method is returning a new tree object.
|
|
454
|
+
*/
|
|
455
|
+
map(callback: (entry: [BTNKey, V | undefined], tree: this) => V): TREE;
|
|
456
|
+
/**
|
|
457
|
+
* The `reduce` function iterates over the entries of a tree and applies a callback function to each
|
|
458
|
+
* entry, accumulating a single value.
|
|
459
|
+
* @param callback - The callback parameter is a function that takes three arguments: accumulator,
|
|
460
|
+
* entry, and tree. It is called for each entry in the tree and is used to accumulate a single value
|
|
461
|
+
* based on the logic defined in the callback function.
|
|
462
|
+
* @param {T} initialValue - The initialValue parameter is the initial value of the accumulator. It
|
|
463
|
+
* is the value that will be passed as the first argument to the callback function when reducing the
|
|
464
|
+
* elements of the tree.
|
|
465
|
+
* @returns The `reduce` method is returning the final value of the accumulator after iterating over
|
|
466
|
+
* all the entries in the tree and applying the callback function to each entry.
|
|
467
|
+
*/
|
|
468
|
+
reduce<T>(callback: (accumulator: T, entry: [BTNKey, V | undefined], tree: this) => T, initialValue: T): T;
|
|
437
469
|
/**
|
|
438
470
|
* The above function is an iterator for a binary tree that can be used to traverse the tree in
|
|
439
471
|
* either an iterative or recursive manner.
|
|
@@ -1411,11 +1411,25 @@ class BinaryTree {
|
|
|
1411
1411
|
}
|
|
1412
1412
|
return ans;
|
|
1413
1413
|
}
|
|
1414
|
+
/**
|
|
1415
|
+
* The `forEach` function iterates over each entry in a tree and calls a callback function with the
|
|
1416
|
+
* entry and the tree as arguments.
|
|
1417
|
+
* @param callback - The callback parameter is a function that will be called for each entry in the
|
|
1418
|
+
* tree. It takes two parameters: entry and tree.
|
|
1419
|
+
*/
|
|
1414
1420
|
forEach(callback) {
|
|
1415
1421
|
for (const entry of this) {
|
|
1416
1422
|
callback(entry, this);
|
|
1417
1423
|
}
|
|
1418
1424
|
}
|
|
1425
|
+
/**
|
|
1426
|
+
* The `filter` function creates a new tree by iterating over the entries of the current tree and
|
|
1427
|
+
* adding the entries that satisfy the given predicate.
|
|
1428
|
+
* @param predicate - The `predicate` parameter is a function that takes two arguments: `entry` and
|
|
1429
|
+
* `tree`.
|
|
1430
|
+
* @returns The `filter` method is returning a new tree object that contains only the entries that
|
|
1431
|
+
* satisfy the given predicate function.
|
|
1432
|
+
*/
|
|
1419
1433
|
filter(predicate) {
|
|
1420
1434
|
const newTree = this.createTree();
|
|
1421
1435
|
for (const [key, value] of this) {
|
|
@@ -1426,13 +1440,19 @@ class BinaryTree {
|
|
|
1426
1440
|
return newTree;
|
|
1427
1441
|
}
|
|
1428
1442
|
// TODO Type error, need to return a TREE<NV> that is a value type only for callback function.
|
|
1429
|
-
// map<NV>(callback: (entry: [BTNKey, V | undefined], tree:
|
|
1443
|
+
// map<NV>(callback: (entry: [BTNKey, V | undefined], tree: this) => NV) {
|
|
1430
1444
|
// const newTree = this.createTree();
|
|
1431
1445
|
// for (const [key, value] of this) {
|
|
1432
1446
|
// newTree.add(key, callback([key, value], this));
|
|
1433
1447
|
// }
|
|
1434
1448
|
// return newTree;
|
|
1435
1449
|
// }
|
|
1450
|
+
/**
|
|
1451
|
+
* The `map` function creates a new tree by applying a callback function to each entry in the current
|
|
1452
|
+
* tree.
|
|
1453
|
+
* @param callback - The callback parameter is a function that takes two arguments: entry and tree.
|
|
1454
|
+
* @returns The `map` method is returning a new tree object.
|
|
1455
|
+
*/
|
|
1436
1456
|
map(callback) {
|
|
1437
1457
|
const newTree = this.createTree();
|
|
1438
1458
|
for (const [key, value] of this) {
|
|
@@ -1440,6 +1460,18 @@ class BinaryTree {
|
|
|
1440
1460
|
}
|
|
1441
1461
|
return newTree;
|
|
1442
1462
|
}
|
|
1463
|
+
/**
|
|
1464
|
+
* The `reduce` function iterates over the entries of a tree and applies a callback function to each
|
|
1465
|
+
* entry, accumulating a single value.
|
|
1466
|
+
* @param callback - The callback parameter is a function that takes three arguments: accumulator,
|
|
1467
|
+
* entry, and tree. It is called for each entry in the tree and is used to accumulate a single value
|
|
1468
|
+
* based on the logic defined in the callback function.
|
|
1469
|
+
* @param {T} initialValue - The initialValue parameter is the initial value of the accumulator. It
|
|
1470
|
+
* is the value that will be passed as the first argument to the callback function when reducing the
|
|
1471
|
+
* elements of the tree.
|
|
1472
|
+
* @returns The `reduce` method is returning the final value of the accumulator after iterating over
|
|
1473
|
+
* all the entries in the tree and applying the callback function to each entry.
|
|
1474
|
+
*/
|
|
1443
1475
|
reduce(callback, initialValue) {
|
|
1444
1476
|
let accumulator = initialValue;
|
|
1445
1477
|
for (const [key, value] of this) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-tree.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/binary-tree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"binary-tree.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/binary-tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -430,10 +430,42 @@ export declare class BinaryTree<V = any, N extends BinaryTreeNode<V, N> = Binary
|
|
|
430
430
|
* by the return type of the `callback` function.
|
|
431
431
|
*/
|
|
432
432
|
morris<C extends BTNCallback<N>>(callback?: C, pattern?: DFSOrderPattern, beginRoot?: BTNKey | N | null | undefined): ReturnType<C>[];
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
433
|
+
/**
|
|
434
|
+
* The `forEach` function iterates over each entry in a tree and calls a callback function with the
|
|
435
|
+
* entry and the tree as arguments.
|
|
436
|
+
* @param callback - The callback parameter is a function that will be called for each entry in the
|
|
437
|
+
* tree. It takes two parameters: entry and tree.
|
|
438
|
+
*/
|
|
439
|
+
forEach(callback: (entry: [BTNKey, V | undefined], tree: this) => void): void;
|
|
440
|
+
/**
|
|
441
|
+
* The `filter` function creates a new tree by iterating over the entries of the current tree and
|
|
442
|
+
* adding the entries that satisfy the given predicate.
|
|
443
|
+
* @param predicate - The `predicate` parameter is a function that takes two arguments: `entry` and
|
|
444
|
+
* `tree`.
|
|
445
|
+
* @returns The `filter` method is returning a new tree object that contains only the entries that
|
|
446
|
+
* satisfy the given predicate function.
|
|
447
|
+
*/
|
|
448
|
+
filter(predicate: (entry: [BTNKey, V | undefined], tree: this) => boolean): TREE;
|
|
449
|
+
/**
|
|
450
|
+
* The `map` function creates a new tree by applying a callback function to each entry in the current
|
|
451
|
+
* tree.
|
|
452
|
+
* @param callback - The callback parameter is a function that takes two arguments: entry and tree.
|
|
453
|
+
* @returns The `map` method is returning a new tree object.
|
|
454
|
+
*/
|
|
455
|
+
map(callback: (entry: [BTNKey, V | undefined], tree: this) => V): TREE;
|
|
456
|
+
/**
|
|
457
|
+
* The `reduce` function iterates over the entries of a tree and applies a callback function to each
|
|
458
|
+
* entry, accumulating a single value.
|
|
459
|
+
* @param callback - The callback parameter is a function that takes three arguments: accumulator,
|
|
460
|
+
* entry, and tree. It is called for each entry in the tree and is used to accumulate a single value
|
|
461
|
+
* based on the logic defined in the callback function.
|
|
462
|
+
* @param {T} initialValue - The initialValue parameter is the initial value of the accumulator. It
|
|
463
|
+
* is the value that will be passed as the first argument to the callback function when reducing the
|
|
464
|
+
* elements of the tree.
|
|
465
|
+
* @returns The `reduce` method is returning the final value of the accumulator after iterating over
|
|
466
|
+
* all the entries in the tree and applying the callback function to each entry.
|
|
467
|
+
*/
|
|
468
|
+
reduce<T>(callback: (accumulator: T, entry: [BTNKey, V | undefined], tree: this) => T, initialValue: T): T;
|
|
437
469
|
/**
|
|
438
470
|
* The above function is an iterator for a binary tree that can be used to traverse the tree in
|
|
439
471
|
* either an iterative or recursive manner.
|
|
@@ -1420,11 +1420,25 @@ export class BinaryTree {
|
|
|
1420
1420
|
}
|
|
1421
1421
|
return ans;
|
|
1422
1422
|
}
|
|
1423
|
+
/**
|
|
1424
|
+
* The `forEach` function iterates over each entry in a tree and calls a callback function with the
|
|
1425
|
+
* entry and the tree as arguments.
|
|
1426
|
+
* @param callback - The callback parameter is a function that will be called for each entry in the
|
|
1427
|
+
* tree. It takes two parameters: entry and tree.
|
|
1428
|
+
*/
|
|
1423
1429
|
forEach(callback) {
|
|
1424
1430
|
for (const entry of this) {
|
|
1425
1431
|
callback(entry, this);
|
|
1426
1432
|
}
|
|
1427
1433
|
}
|
|
1434
|
+
/**
|
|
1435
|
+
* The `filter` function creates a new tree by iterating over the entries of the current tree and
|
|
1436
|
+
* adding the entries that satisfy the given predicate.
|
|
1437
|
+
* @param predicate - The `predicate` parameter is a function that takes two arguments: `entry` and
|
|
1438
|
+
* `tree`.
|
|
1439
|
+
* @returns The `filter` method is returning a new tree object that contains only the entries that
|
|
1440
|
+
* satisfy the given predicate function.
|
|
1441
|
+
*/
|
|
1428
1442
|
filter(predicate) {
|
|
1429
1443
|
const newTree = this.createTree();
|
|
1430
1444
|
for (const [key, value] of this) {
|
|
@@ -1435,13 +1449,19 @@ export class BinaryTree {
|
|
|
1435
1449
|
return newTree;
|
|
1436
1450
|
}
|
|
1437
1451
|
// TODO Type error, need to return a TREE<NV> that is a value type only for callback function.
|
|
1438
|
-
// map<NV>(callback: (entry: [BTNKey, V | undefined], tree:
|
|
1452
|
+
// map<NV>(callback: (entry: [BTNKey, V | undefined], tree: this) => NV) {
|
|
1439
1453
|
// const newTree = this.createTree();
|
|
1440
1454
|
// for (const [key, value] of this) {
|
|
1441
1455
|
// newTree.add(key, callback([key, value], this));
|
|
1442
1456
|
// }
|
|
1443
1457
|
// return newTree;
|
|
1444
1458
|
// }
|
|
1459
|
+
/**
|
|
1460
|
+
* The `map` function creates a new tree by applying a callback function to each entry in the current
|
|
1461
|
+
* tree.
|
|
1462
|
+
* @param callback - The callback parameter is a function that takes two arguments: entry and tree.
|
|
1463
|
+
* @returns The `map` method is returning a new tree object.
|
|
1464
|
+
*/
|
|
1445
1465
|
map(callback) {
|
|
1446
1466
|
const newTree = this.createTree();
|
|
1447
1467
|
for (const [key, value] of this) {
|
|
@@ -1449,6 +1469,18 @@ export class BinaryTree {
|
|
|
1449
1469
|
}
|
|
1450
1470
|
return newTree;
|
|
1451
1471
|
}
|
|
1472
|
+
/**
|
|
1473
|
+
* The `reduce` function iterates over the entries of a tree and applies a callback function to each
|
|
1474
|
+
* entry, accumulating a single value.
|
|
1475
|
+
* @param callback - The callback parameter is a function that takes three arguments: accumulator,
|
|
1476
|
+
* entry, and tree. It is called for each entry in the tree and is used to accumulate a single value
|
|
1477
|
+
* based on the logic defined in the callback function.
|
|
1478
|
+
* @param {T} initialValue - The initialValue parameter is the initial value of the accumulator. It
|
|
1479
|
+
* is the value that will be passed as the first argument to the callback function when reducing the
|
|
1480
|
+
* elements of the tree.
|
|
1481
|
+
* @returns The `reduce` method is returning the final value of the accumulator after iterating over
|
|
1482
|
+
* all the entries in the tree and applying the callback function to each entry.
|
|
1483
|
+
*/
|
|
1452
1484
|
reduce(callback, initialValue) {
|
|
1453
1485
|
let accumulator = initialValue;
|
|
1454
1486
|
for (const [key, value] of this) {
|
|
@@ -7913,11 +7913,25 @@ var dataStructureTyped = (() => {
|
|
|
7913
7913
|
}
|
|
7914
7914
|
return ans;
|
|
7915
7915
|
}
|
|
7916
|
+
/**
|
|
7917
|
+
* The `forEach` function iterates over each entry in a tree and calls a callback function with the
|
|
7918
|
+
* entry and the tree as arguments.
|
|
7919
|
+
* @param callback - The callback parameter is a function that will be called for each entry in the
|
|
7920
|
+
* tree. It takes two parameters: entry and tree.
|
|
7921
|
+
*/
|
|
7916
7922
|
forEach(callback) {
|
|
7917
7923
|
for (const entry of this) {
|
|
7918
7924
|
callback(entry, this);
|
|
7919
7925
|
}
|
|
7920
7926
|
}
|
|
7927
|
+
/**
|
|
7928
|
+
* The `filter` function creates a new tree by iterating over the entries of the current tree and
|
|
7929
|
+
* adding the entries that satisfy the given predicate.
|
|
7930
|
+
* @param predicate - The `predicate` parameter is a function that takes two arguments: `entry` and
|
|
7931
|
+
* `tree`.
|
|
7932
|
+
* @returns The `filter` method is returning a new tree object that contains only the entries that
|
|
7933
|
+
* satisfy the given predicate function.
|
|
7934
|
+
*/
|
|
7921
7935
|
filter(predicate) {
|
|
7922
7936
|
const newTree = this.createTree();
|
|
7923
7937
|
for (const [key, value] of this) {
|
|
@@ -7928,13 +7942,19 @@ var dataStructureTyped = (() => {
|
|
|
7928
7942
|
return newTree;
|
|
7929
7943
|
}
|
|
7930
7944
|
// TODO Type error, need to return a TREE<NV> that is a value type only for callback function.
|
|
7931
|
-
// map<NV>(callback: (entry: [BTNKey, V | undefined], tree:
|
|
7945
|
+
// map<NV>(callback: (entry: [BTNKey, V | undefined], tree: this) => NV) {
|
|
7932
7946
|
// const newTree = this.createTree();
|
|
7933
7947
|
// for (const [key, value] of this) {
|
|
7934
7948
|
// newTree.add(key, callback([key, value], this));
|
|
7935
7949
|
// }
|
|
7936
7950
|
// return newTree;
|
|
7937
7951
|
// }
|
|
7952
|
+
/**
|
|
7953
|
+
* The `map` function creates a new tree by applying a callback function to each entry in the current
|
|
7954
|
+
* tree.
|
|
7955
|
+
* @param callback - The callback parameter is a function that takes two arguments: entry and tree.
|
|
7956
|
+
* @returns The `map` method is returning a new tree object.
|
|
7957
|
+
*/
|
|
7938
7958
|
map(callback) {
|
|
7939
7959
|
const newTree = this.createTree();
|
|
7940
7960
|
for (const [key, value] of this) {
|
|
@@ -7942,6 +7962,18 @@ var dataStructureTyped = (() => {
|
|
|
7942
7962
|
}
|
|
7943
7963
|
return newTree;
|
|
7944
7964
|
}
|
|
7965
|
+
/**
|
|
7966
|
+
* The `reduce` function iterates over the entries of a tree and applies a callback function to each
|
|
7967
|
+
* entry, accumulating a single value.
|
|
7968
|
+
* @param callback - The callback parameter is a function that takes three arguments: accumulator,
|
|
7969
|
+
* entry, and tree. It is called for each entry in the tree and is used to accumulate a single value
|
|
7970
|
+
* based on the logic defined in the callback function.
|
|
7971
|
+
* @param {T} initialValue - The initialValue parameter is the initial value of the accumulator. It
|
|
7972
|
+
* is the value that will be passed as the first argument to the callback function when reducing the
|
|
7973
|
+
* elements of the tree.
|
|
7974
|
+
* @returns The `reduce` method is returning the final value of the accumulator after iterating over
|
|
7975
|
+
* all the entries in the tree and applying the callback function to each entry.
|
|
7976
|
+
*/
|
|
7945
7977
|
reduce(callback, initialValue) {
|
|
7946
7978
|
let accumulator = initialValue;
|
|
7947
7979
|
for (const [key, value] of this) {
|