data-structure-typed 1.52.7 → 1.52.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.
Files changed (49) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +13 -13
  3. package/benchmark/report.html +13 -13
  4. package/benchmark/report.json +146 -146
  5. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +4 -4
  6. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +4 -4
  7. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
  8. package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +3 -3
  9. package/dist/cjs/data-structures/binary-tree/avl-tree.js +3 -3
  10. package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
  11. package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +62 -5
  12. package/dist/cjs/data-structures/binary-tree/binary-tree.js +26 -11
  13. package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
  14. package/dist/cjs/data-structures/binary-tree/bst.js +9 -14
  15. package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
  16. package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +3 -3
  17. package/dist/cjs/data-structures/binary-tree/rb-tree.js +8 -6
  18. package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
  19. package/dist/cjs/data-structures/binary-tree/tree-multi-map.d.ts +4 -5
  20. package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +9 -8
  21. package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
  22. package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +1 -1
  23. package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +4 -4
  24. package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js +4 -4
  25. package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +3 -3
  26. package/dist/mjs/data-structures/binary-tree/avl-tree.js +3 -3
  27. package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +62 -5
  28. package/dist/mjs/data-structures/binary-tree/binary-tree.js +26 -11
  29. package/dist/mjs/data-structures/binary-tree/bst.js +9 -14
  30. package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +3 -3
  31. package/dist/mjs/data-structures/binary-tree/rb-tree.js +8 -6
  32. package/dist/mjs/data-structures/binary-tree/tree-multi-map.d.ts +4 -5
  33. package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +9 -8
  34. package/dist/mjs/types/data-structures/binary-tree/binary-tree.d.ts +1 -1
  35. package/dist/umd/data-structure-typed.js +58 -45
  36. package/dist/umd/data-structure-typed.min.js +5 -5
  37. package/dist/umd/data-structure-typed.min.js.map +1 -1
  38. package/package.json +6 -6
  39. package/src/data-structures/binary-tree/avl-tree-multi-map.ts +4 -5
  40. package/src/data-structures/binary-tree/avl-tree.ts +3 -4
  41. package/src/data-structures/binary-tree/binary-tree.ts +26 -30
  42. package/src/data-structures/binary-tree/bst.ts +16 -19
  43. package/src/data-structures/binary-tree/rb-tree.ts +8 -6
  44. package/src/data-structures/binary-tree/tree-multi-map.ts +9 -8
  45. package/src/types/data-structures/binary-tree/binary-tree.ts +1 -1
  46. package/test/integration/bst.test.ts +2 -2
  47. package/test/unit/data-structures/binary-tree/avl-tree.test.ts +20 -0
  48. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +37 -17
  49. package/test/unit/data-structures/binary-tree/bst.test.ts +11 -6
@@ -184,7 +184,7 @@ class RedBlackTree extends bst_1.BST {
184
184
  *
185
185
  * The function overrides the delete method in a binary tree data structure to remove a node based on
186
186
  * a given predicate and maintain the binary search tree properties.
187
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} predicate - The `predicate`
187
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw - The `keyOrNodeOrEntryOrRaw`
188
188
  * parameter in the `override delete` method is used to specify the condition or key based on which a
189
189
  * node should be deleted from the binary tree. It can be a key, a node, an entry, or a predicate
190
190
  * function that determines which node(s) should be deleted.
@@ -192,15 +192,17 @@ class RedBlackTree extends bst_1.BST {
192
192
  * objects. Each object in the array contains information about the deleted node and whether
193
193
  * balancing is needed.
194
194
  */
195
- delete(predicate) {
196
- if (predicate === null)
195
+ delete(keyOrNodeOrEntryOrRaw) {
196
+ if (keyOrNodeOrEntryOrRaw === null)
197
197
  return [];
198
198
  const results = [];
199
199
  let nodeToDelete;
200
- if (this._isPredicated(predicate))
201
- nodeToDelete = this.getNode(predicate);
200
+ if (this._isPredicated(keyOrNodeOrEntryOrRaw))
201
+ nodeToDelete = this.getNode(keyOrNodeOrEntryOrRaw);
202
202
  else
203
- nodeToDelete = this.isRealNode(predicate) ? predicate : this.getNode(predicate);
203
+ nodeToDelete = this.isRealNode(keyOrNodeOrEntryOrRaw)
204
+ ? keyOrNodeOrEntryOrRaw
205
+ : this.getNode(keyOrNodeOrEntryOrRaw);
204
206
  if (!nodeToDelete) {
205
207
  return results;
206
208
  }
@@ -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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"}
@@ -5,7 +5,7 @@
5
5
  * @copyright Copyright (c) 2022 Pablo Zeng <zrwusa@gmail.com>
6
6
  * @license MIT License
7
7
  */
8
- import type { BinaryTreeDeleteResult, BSTNKeyOrNode, BTNKeyOrNodeOrEntry, BTNPredicate, IterationType, RBTNColor, TreeMultiMapNested, TreeMultiMapNodeNested, TreeMultiMapOptions, BTNEntry } from '../../types';
8
+ import type { BinaryTreeDeleteResult, BSTNKeyOrNode, BTNKeyOrNodeOrEntry, IterationType, RBTNColor, TreeMultiMapNested, TreeMultiMapNodeNested, TreeMultiMapOptions, BTNEntry } from '../../types';
9
9
  import { IBinaryTree } from '../../interfaces';
10
10
  import { RedBlackTree, RedBlackTreeNode } from './rb-tree';
11
11
  export declare class TreeMultiMapNode<K = any, V = any, NODE extends TreeMultiMapNode<K, V, NODE> = TreeMultiMapNodeNested<K, V>> extends RedBlackTreeNode<K, V, NODE> {
@@ -128,17 +128,16 @@ export declare class TreeMultiMap<K = any, V = any, R = BTNEntry<K, V>, NODE ext
128
128
  *
129
129
  * The function `delete` in TypeScript overrides the deletion operation in a binary tree data
130
130
  * structure, handling cases where nodes have children and maintaining balance in the tree.
131
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} predicate - The `predicate`
131
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw - The `predicate`
132
132
  * parameter in the `delete` method is used to specify the condition or key based on which a node
133
- * should be deleted from the binary tree. It can be a key, a node, an entry, or a predicate
134
- * function.
133
+ * should be deleted from the binary tree. It can be a key, a node, or an entry.
135
134
  * @param [ignoreCount=false] - The `ignoreCount` parameter in the `override delete` method is a
136
135
  * boolean flag that determines whether to ignore the count of nodes when performing deletion. If
137
136
  * `ignoreCount` is set to `true`, the method will delete the node regardless of its count. If
138
137
  * `ignoreCount` is `false
139
138
  * @returns The `override delete` method returns an array of `BinaryTreeDeleteResult<NODE>` objects.
140
139
  */
141
- delete(predicate: BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>, ignoreCount?: boolean): BinaryTreeDeleteResult<NODE>[];
140
+ delete(keyOrNodeOrEntryOrRaw: BTNKeyOrNodeOrEntry<K, V, NODE> | R, ignoreCount?: boolean): BinaryTreeDeleteResult<NODE>[];
142
141
  /**
143
142
  * Time Complexity: O(1)
144
143
  * Space Complexity: O(1)
@@ -178,25 +178,26 @@ class TreeMultiMap extends rb_tree_1.RedBlackTree {
178
178
  *
179
179
  * The function `delete` in TypeScript overrides the deletion operation in a binary tree data
180
180
  * structure, handling cases where nodes have children and maintaining balance in the tree.
181
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} predicate - The `predicate`
181
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw - The `predicate`
182
182
  * parameter in the `delete` method is used to specify the condition or key based on which a node
183
- * should be deleted from the binary tree. It can be a key, a node, an entry, or a predicate
184
- * function.
183
+ * should be deleted from the binary tree. It can be a key, a node, or an entry.
185
184
  * @param [ignoreCount=false] - The `ignoreCount` parameter in the `override delete` method is a
186
185
  * boolean flag that determines whether to ignore the count of nodes when performing deletion. If
187
186
  * `ignoreCount` is set to `true`, the method will delete the node regardless of its count. If
188
187
  * `ignoreCount` is `false
189
188
  * @returns The `override delete` method returns an array of `BinaryTreeDeleteResult<NODE>` objects.
190
189
  */
191
- delete(predicate, ignoreCount = false) {
192
- if (predicate === null)
190
+ delete(keyOrNodeOrEntryOrRaw, ignoreCount = false) {
191
+ if (keyOrNodeOrEntryOrRaw === null)
193
192
  return [];
194
193
  const results = [];
195
194
  let nodeToDelete;
196
- if (this._isPredicated(predicate))
197
- nodeToDelete = this.getNode(predicate);
195
+ if (this._isPredicated(keyOrNodeOrEntryOrRaw))
196
+ nodeToDelete = this.getNode(keyOrNodeOrEntryOrRaw);
198
197
  else
199
- nodeToDelete = this.isRealNode(predicate) ? predicate : this.getNode(predicate);
198
+ nodeToDelete = this.isRealNode(keyOrNodeOrEntryOrRaw)
199
+ ? keyOrNodeOrEntryOrRaw
200
+ : this.getNode(keyOrNodeOrEntryOrRaw);
200
201
  if (!nodeToDelete) {
201
202
  return results;
202
203
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tree-multi-map.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/tree-multi-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-multi-map.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/tree-multi-map.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { BinaryTree, BinaryTreeNode } from '../../../data-structures';
2
2
  import { IterationType, OptValue } from '../../common';
3
- import { DFSOperation } from "bst-typed";
3
+ import { DFSOperation } from '../../../constants';
4
4
  export type BinaryTreeNodeNested<K, V> = BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
5
5
  export type BinaryTreeNested<K, V, R, NODE extends BinaryTreeNode<K, V, NODE>> = BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, BinaryTree<K, V, R, NODE, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
6
6
  export type BinaryTreeOptions<K, V, R> = {
@@ -5,7 +5,7 @@
5
5
  * @copyright Copyright (c) 2022 Pablo Zeng <zrwusa@gmail.com>
6
6
  * @license MIT License
7
7
  */
8
- import type { AVLTreeMultiMapNested, AVLTreeMultiMapNodeNested, AVLTreeMultiMapOptions, BinaryTreeDeleteResult, BSTNKeyOrNode, BTNKeyOrNodeOrEntry, BTNPredicate, IterationType, BTNEntry } from '../../types';
8
+ import type { AVLTreeMultiMapNested, AVLTreeMultiMapNodeNested, AVLTreeMultiMapOptions, BinaryTreeDeleteResult, BSTNKeyOrNode, BTNKeyOrNodeOrEntry, IterationType, BTNEntry } from '../../types';
9
9
  import { IBinaryTree } from '../../interfaces';
10
10
  import { AVLTree, AVLTreeNode } from './avl-tree';
11
11
  export declare class AVLTreeMultiMapNode<K = any, V = any, NODE extends AVLTreeMultiMapNode<K, V, NODE> = AVLTreeMultiMapNodeNested<K, V>> extends AVLTreeNode<K, V, NODE> {
@@ -127,9 +127,9 @@ export declare class AVLTreeMultiMap<K = any, V = any, R = BTNEntry<K, V>, NODE
127
127
  *
128
128
  * The function overrides the delete method in a binary tree data structure, handling deletion of
129
129
  * nodes and maintaining balance in the tree.
130
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} predicate - The `predicate`
130
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw - The `predicate`
131
131
  * parameter in the `delete` method is used to specify the condition for deleting a node from the
132
- * binary tree. It can be a key, node, entry, or a custom predicate function that determines which
132
+ * binary tree. It can be a key, node, or entry that determines which
133
133
  * node(s) should be deleted.
134
134
  * @param [ignoreCount=false] - The `ignoreCount` parameter in the `override delete` method is a
135
135
  * boolean flag that determines whether to ignore the count of the node being deleted. If
@@ -140,7 +140,7 @@ export declare class AVLTreeMultiMap<K = any, V = any, R = BTNEntry<K, V>, NODE
140
140
  * method returns an array of `BinaryTreeDeleteResult` objects, each containing information about the
141
141
  * deleted node and whether balancing is needed in the tree.
142
142
  */
143
- delete(predicate: BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>, ignoreCount?: boolean): BinaryTreeDeleteResult<NODE>[];
143
+ delete(keyOrNodeOrEntryOrRaw: BTNKeyOrNodeOrEntry<K, V, NODE> | R, ignoreCount?: boolean): BinaryTreeDeleteResult<NODE>[];
144
144
  /**
145
145
  * Time Complexity: O(1)
146
146
  * Space Complexity: O(1)
@@ -176,9 +176,9 @@ export class AVLTreeMultiMap extends AVLTree {
176
176
  *
177
177
  * The function overrides the delete method in a binary tree data structure, handling deletion of
178
178
  * nodes and maintaining balance in the tree.
179
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} predicate - The `predicate`
179
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw - The `predicate`
180
180
  * parameter in the `delete` method is used to specify the condition for deleting a node from the
181
- * binary tree. It can be a key, node, entry, or a custom predicate function that determines which
181
+ * binary tree. It can be a key, node, or entry that determines which
182
182
  * node(s) should be deleted.
183
183
  * @param [ignoreCount=false] - The `ignoreCount` parameter in the `override delete` method is a
184
184
  * boolean flag that determines whether to ignore the count of the node being deleted. If
@@ -189,11 +189,11 @@ export class AVLTreeMultiMap extends AVLTree {
189
189
  * method returns an array of `BinaryTreeDeleteResult` objects, each containing information about the
190
190
  * deleted node and whether balancing is needed in the tree.
191
191
  */
192
- delete(predicate, ignoreCount = false) {
192
+ delete(keyOrNodeOrEntryOrRaw, ignoreCount = false) {
193
193
  const deletedResult = [];
194
194
  if (!this.root)
195
195
  return deletedResult;
196
- const curr = this.getNode(predicate) ?? undefined;
196
+ const curr = this.getNode(keyOrNodeOrEntryOrRaw) ?? undefined;
197
197
  if (!curr)
198
198
  return deletedResult;
199
199
  const parent = curr?.parent ? curr.parent : undefined;
@@ -6,7 +6,7 @@
6
6
  * @license MIT License
7
7
  */
8
8
  import { BST, BSTNode } from './bst';
9
- import type { AVLTreeNested, AVLTreeNodeNested, AVLTreeOptions, BinaryTreeDeleteResult, BSTNKeyOrNode, BTNKeyOrNodeOrEntry, BTNPredicate, BTNEntry } from '../../types';
9
+ import type { AVLTreeNested, AVLTreeNodeNested, AVLTreeOptions, BinaryTreeDeleteResult, BSTNKeyOrNode, BTNKeyOrNodeOrEntry, BTNEntry } from '../../types';
10
10
  import { IBinaryTree } from '../../interfaces';
11
11
  export declare class AVLTreeNode<K = any, V = any, NODE extends AVLTreeNode<K, V, NODE> = AVLTreeNodeNested<K, V>> extends BSTNode<K, V, NODE> {
12
12
  /**
@@ -99,14 +99,14 @@ export declare class AVLTree<K = any, V = any, R = BTNEntry<K, V>, NODE extends
99
99
  *
100
100
  * The function overrides the delete method in a TypeScript class, performs deletion, and then
101
101
  * balances the tree if necessary.
102
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} predicate - The `predicate`
102
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw - The `keyOrNodeOrEntryOrRaw`
103
103
  * parameter in the `override delete` method can be one of the following types:
104
104
  * @returns The `delete` method is being overridden in this code snippet. It first calls the `delete`
105
105
  * method from the superclass (presumably a parent class) with the provided `predicate`, which could
106
106
  * be a key, node, entry, or a custom predicate. The result of this deletion operation is stored in
107
107
  * `deletedResults`, which is an array of `BinaryTreeDeleteResult` objects.
108
108
  */
109
- delete(predicate: BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>): BinaryTreeDeleteResult<NODE>[];
109
+ delete(keyOrNodeOrEntryOrRaw: BTNKeyOrNodeOrEntry<K, V, NODE> | R): BinaryTreeDeleteResult<NODE>[];
110
110
  /**
111
111
  * Time Complexity: O(1)
112
112
  * Space Complexity: O(1)
@@ -126,15 +126,15 @@ export class AVLTree extends BST {
126
126
  *
127
127
  * The function overrides the delete method in a TypeScript class, performs deletion, and then
128
128
  * balances the tree if necessary.
129
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} predicate - The `predicate`
129
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw - The `keyOrNodeOrEntryOrRaw`
130
130
  * parameter in the `override delete` method can be one of the following types:
131
131
  * @returns The `delete` method is being overridden in this code snippet. It first calls the `delete`
132
132
  * method from the superclass (presumably a parent class) with the provided `predicate`, which could
133
133
  * be a key, node, entry, or a custom predicate. The result of this deletion operation is stored in
134
134
  * `deletedResults`, which is an array of `BinaryTreeDeleteResult` objects.
135
135
  */
136
- delete(predicate) {
137
- const deletedResults = super.delete(predicate);
136
+ delete(keyOrNodeOrEntryOrRaw) {
137
+ const deletedResults = super.delete(keyOrNodeOrEntryOrRaw);
138
138
  for (const { needBalanced } of deletedResults) {
139
139
  if (needBalanced) {
140
140
  this._balancePath(needBalanced);
@@ -235,16 +235,16 @@ export declare class BinaryTree<K = any, V = any, R = BTNEntry<K, V>, NODE exten
235
235
  *
236
236
  * The function `delete` in TypeScript implements the deletion of a node in a binary tree and returns
237
237
  * the deleted node along with information for tree balancing.
238
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} keyOrNodeOrEntryOrRawOrPredicate
238
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw
239
239
  * - The `delete` method you provided is used to delete a node from a binary tree based on the key,
240
- * node, entry, raw data, or a custom predicate. The method returns an array of
240
+ * node, entry or raw data. The method returns an array of
241
241
  * `BinaryTreeDeleteResult` objects containing information about the deleted node and whether
242
242
  * balancing is needed.
243
243
  * @returns The `delete` method returns an array of `BinaryTreeDeleteResult` objects. Each object in
244
244
  * the array contains information about the node that was deleted (`deleted`) and the node that may
245
245
  * need to be balanced (`needBalanced`).
246
246
  */
247
- delete(keyOrNodeOrEntryOrRawOrPredicate: BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>): BinaryTreeDeleteResult<NODE>[];
247
+ delete(keyOrNodeOrEntryOrRaw: BTNKeyOrNodeOrEntry<K, V, NODE> | R): BinaryTreeDeleteResult<NODE>[];
248
248
  /**
249
249
  * Time Complexity: O(n)
250
250
  * Space Complexity: O(k + log n)
@@ -657,8 +657,65 @@ export declare class BinaryTree<K = any, V = any, R = BTNEntry<K, V>, NODE exten
657
657
  * binary tree with the specified options.
658
658
  */
659
659
  toVisual(beginRoot?: BTNKeyOrNodeOrEntry<K, V, NODE> | R, options?: BinaryTreePrintOptions): string;
660
- protected _dfs<C extends BTNCallback<NODE>>(callback?: C, pattern?: DFSOrderPattern, beginRoot?: BTNKeyOrNodeOrEntry<K, V, NODE> | R, iterationType?: IterationType): ReturnType<C>[];
661
- protected _dfs<C extends BTNCallback<NODE | null>>(callback?: C, pattern?: DFSOrderPattern, beginRoot?: BTNKeyOrNodeOrEntry<K, V, NODE> | R, iterationType?: IterationType, includeNull?: boolean): ReturnType<C>[];
660
+ /**
661
+ * Time Complexity: O(n)
662
+ * Space Complexity: O(n)
663
+ *
664
+ * The function `print` in TypeScript overrides the default print behavior to log a visual
665
+ * representation of the binary tree to the console.
666
+ * @param {BinaryTreePrintOptions} [options] - The `options` parameter is used to specify the
667
+ * printing options for the binary tree. It is an optional parameter that allows you to customize how
668
+ * the binary tree is printed, such as choosing between different traversal orders or formatting
669
+ * options.
670
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} beginRoot - The `beginRoot` parameter in the
671
+ * `override print` method is used to specify the starting point for printing the binary tree. It can
672
+ * be either a key, a node, an entry, or the root of the tree. If no specific starting point is
673
+ * provided, the default value is set to
674
+ */
675
+ print(options?: BinaryTreePrintOptions, beginRoot?: BTNKeyOrNodeOrEntry<K, V, NODE> | R): void;
676
+ /**
677
+ * Time complexity: O(n)
678
+ * Space complexity: O(n)
679
+ *
680
+ * The `_dfs` function performs a depth-first search traversal on a binary tree structure based on
681
+ * the specified order pattern and callback function.
682
+ * @param {C} callback - The `callback` parameter in the `_dfs` method is a function that will be
683
+ * called on each node visited during the depth-first search traversal. It is of type `C`, which
684
+ * extends `BTNCallback<OptBTNOrNull<NODE>>`. The default value for this parameter is `this._DEFAULT
685
+ * @param {DFSOrderPattern} [pattern=IN] - The `pattern` parameter in the `_dfs` method specifies the
686
+ * order in which the nodes are visited during the Depth-First Search traversal. It can have one of
687
+ * the following values:
688
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} beginRoot - The `beginRoot` parameter in the `_dfs`
689
+ * method is used to specify the starting point for the depth-first search traversal in a binary
690
+ * tree. It can be provided as either a `BTNKeyOrNodeOrEntry` object or a reference to the root node
691
+ * of the tree. If no specific
692
+ * @param {IterationType} iterationType - The `iterationType` parameter in the `_dfs` method
693
+ * specifies the type of iteration to be performed during the Depth-First Search (DFS) traversal of a
694
+ * binary tree. It can have two possible values:
695
+ * @param [includeNull=false] - The `includeNull` parameter in the `_dfs` method is a boolean flag
696
+ * that determines whether null nodes should be included in the depth-first search traversal. If
697
+ * `includeNull` is set to `true`, null nodes will be considered during the traversal process. If it
698
+ * is set to `false`,
699
+ * @param shouldVisitLeft - The `shouldVisitLeft` parameter is a function that takes a node as input
700
+ * and returns a boolean value. It is used to determine whether the left child of a node should be
701
+ * visited during the depth-first search traversal. By default, it checks if the node is truthy (not
702
+ * null or undefined
703
+ * @param shouldVisitRight - The `shouldVisitRight` parameter is a function that takes a node as an
704
+ * argument and returns a boolean value. It is used to determine whether the right child of a node
705
+ * should be visited during the depth-first search traversal. The default implementation checks if
706
+ * the node is truthy before visiting the right child
707
+ * @param shouldVisitRoot - The `shouldVisitRoot` parameter is a function that takes a node as an
708
+ * argument and returns a boolean value. It is used to determine whether the root node should be
709
+ * visited during the depth-first search traversal based on certain conditions. The default
710
+ * implementation checks if the node is a real node or null based
711
+ * @param shouldProcessRoot - The `shouldProcessRoot` parameter is a function that takes a node as an
712
+ * argument and returns a boolean value indicating whether the node should be processed during the
713
+ * depth-first search traversal. The default implementation checks if the node is a real node or null
714
+ * based on the `includeNull` flag. If `
715
+ * @returns The function `_dfs` returns an array of the return type of the callback function provided
716
+ * as input.
717
+ */
718
+ protected _dfs<C extends BTNCallback<OptBTNOrNull<NODE>>>(callback?: C, pattern?: DFSOrderPattern, beginRoot?: BTNKeyOrNodeOrEntry<K, V, NODE> | R, iterationType?: IterationType, includeNull?: boolean, shouldVisitLeft?: (node: OptBTNOrNull<NODE>) => boolean, shouldVisitRight?: (node: OptBTNOrNull<NODE>) => boolean, shouldVisitRoot?: (node: OptBTNOrNull<NODE>) => boolean, shouldProcessRoot?: (node: OptBTNOrNull<NODE>) => boolean): ReturnType<C>[];
662
719
  /**
663
720
  * Time Complexity: O(1)
664
721
  * Space Complexity: O(1)
@@ -436,20 +436,20 @@ export class BinaryTree extends IterableEntryBase {
436
436
  *
437
437
  * The function `delete` in TypeScript implements the deletion of a node in a binary tree and returns
438
438
  * the deleted node along with information for tree balancing.
439
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} keyOrNodeOrEntryOrRawOrPredicate
439
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw
440
440
  * - The `delete` method you provided is used to delete a node from a binary tree based on the key,
441
- * node, entry, raw data, or a custom predicate. The method returns an array of
441
+ * node, entry or raw data. The method returns an array of
442
442
  * `BinaryTreeDeleteResult` objects containing information about the deleted node and whether
443
443
  * balancing is needed.
444
444
  * @returns The `delete` method returns an array of `BinaryTreeDeleteResult` objects. Each object in
445
445
  * the array contains information about the node that was deleted (`deleted`) and the node that may
446
446
  * need to be balanced (`needBalanced`).
447
447
  */
448
- delete(keyOrNodeOrEntryOrRawOrPredicate) {
448
+ delete(keyOrNodeOrEntryOrRaw) {
449
449
  const deletedResult = [];
450
450
  if (!this._root)
451
451
  return deletedResult;
452
- const curr = this.getNode(keyOrNodeOrEntryOrRawOrPredicate);
452
+ const curr = this.getNode(keyOrNodeOrEntryOrRaw);
453
453
  if (!curr)
454
454
  return deletedResult;
455
455
  const parent = curr?.parent;
@@ -1496,20 +1496,17 @@ export class BinaryTree extends IterableEntryBase {
1496
1496
  * binary tree with the specified options.
1497
1497
  */
1498
1498
  toVisual(beginRoot = this._root, options) {
1499
- const opts = { isShowUndefined: false, isShowNull: false, isShowRedBlackNIL: false, ...options };
1499
+ const opts = { isShowUndefined: false, isShowNull: true, isShowRedBlackNIL: false, ...options };
1500
1500
  beginRoot = this.ensureNode(beginRoot);
1501
1501
  let output = '';
1502
1502
  if (!beginRoot)
1503
1503
  return output;
1504
1504
  if (opts.isShowUndefined)
1505
- output += `U for undefined
1506
- `;
1505
+ output += `U for undefined\n`;
1507
1506
  if (opts.isShowNull)
1508
- output += `N for null
1509
- `;
1507
+ output += `N for null\n`;
1510
1508
  if (opts.isShowRedBlackNIL)
1511
- output += `S for Sentinel Node(NIL)
1512
- `;
1509
+ output += `S for Sentinel Node(NIL)\n`;
1513
1510
  const display = (root) => {
1514
1511
  const [lines, , ,] = this._displayAux(root, opts);
1515
1512
  let paragraph = '';
@@ -1521,6 +1518,24 @@ export class BinaryTree extends IterableEntryBase {
1521
1518
  display(beginRoot);
1522
1519
  return output;
1523
1520
  }
1521
+ /**
1522
+ * Time Complexity: O(n)
1523
+ * Space Complexity: O(n)
1524
+ *
1525
+ * The function `print` in TypeScript overrides the default print behavior to log a visual
1526
+ * representation of the binary tree to the console.
1527
+ * @param {BinaryTreePrintOptions} [options] - The `options` parameter is used to specify the
1528
+ * printing options for the binary tree. It is an optional parameter that allows you to customize how
1529
+ * the binary tree is printed, such as choosing between different traversal orders or formatting
1530
+ * options.
1531
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} beginRoot - The `beginRoot` parameter in the
1532
+ * `override print` method is used to specify the starting point for printing the binary tree. It can
1533
+ * be either a key, a node, an entry, or the root of the tree. If no specific starting point is
1534
+ * provided, the default value is set to
1535
+ */
1536
+ print(options, beginRoot = this._root) {
1537
+ console.log(this.toVisual(beginRoot, options));
1538
+ }
1524
1539
  /**
1525
1540
  * Time complexity: O(n)
1526
1541
  * Space complexity: O(n)
@@ -237,23 +237,18 @@ export class BST extends BinaryTree {
237
237
  if (!isBalanceAdd) {
238
238
  for (const kve of keysOrNodesOrEntriesOrRaws) {
239
239
  const value = valuesIterator?.next().value;
240
- const nn = this.add(kve, value);
241
- inserted.push(nn);
240
+ inserted.push(this.add(kve, value));
242
241
  }
243
242
  return inserted;
244
243
  }
245
244
  const realBTNExemplars = [];
246
- const isRealBTNExemplar = (kve) => {
247
- if (kve === undefined || kve === null)
248
- return false;
249
- return !(this.isEntry(kve) && (kve[0] === undefined || kve[0] === null));
250
- };
245
+ let i = 0;
251
246
  for (const kve of keysOrNodesOrEntriesOrRaws) {
252
- if (isRealBTNExemplar(kve))
253
- realBTNExemplars.push(kve);
247
+ realBTNExemplars.push({ key: kve, value: valuesIterator?.next().value, orgIndex: i });
248
+ i++;
254
249
  }
255
250
  let sorted = [];
256
- sorted = realBTNExemplars.sort((a, b) => {
251
+ sorted = realBTNExemplars.sort(({ key: a }, { key: b }) => {
257
252
  let keyA, keyB;
258
253
  if (this.isEntry(a))
259
254
  keyA = a[0];
@@ -284,8 +279,8 @@ export class BST extends BinaryTree {
284
279
  if (arr.length === 0)
285
280
  return;
286
281
  const mid = Math.floor((arr.length - 1) / 2);
287
- const newNode = this.add(arr[mid]);
288
- inserted.push(newNode);
282
+ const { key, value, orgIndex } = arr[mid];
283
+ inserted[orgIndex] = this.add(key, value);
289
284
  _dfs(arr.slice(0, mid));
290
285
  _dfs(arr.slice(mid + 1));
291
286
  };
@@ -298,8 +293,8 @@ export class BST extends BinaryTree {
298
293
  const [l, r] = popped;
299
294
  if (l <= r) {
300
295
  const m = l + Math.floor((r - l) / 2);
301
- const newNode = this.add(sorted[m]);
302
- inserted.push(newNode);
296
+ const { key, value, orgIndex } = sorted[m];
297
+ inserted[orgIndex] = this.add(key, value);
303
298
  stack.push([m + 1, r]);
304
299
  stack.push([l, m - 1]);
305
300
  }
@@ -1,4 +1,4 @@
1
- import type { BinaryTreeDeleteResult, BTNKeyOrNodeOrEntry, BTNPredicate, CRUD, RBTNColor, RBTreeOptions, RedBlackTreeNested, RedBlackTreeNodeNested, BTNEntry } from '../../types';
1
+ import type { BinaryTreeDeleteResult, BTNKeyOrNodeOrEntry, CRUD, RBTNColor, RBTreeOptions, RedBlackTreeNested, RedBlackTreeNodeNested, BTNEntry } from '../../types';
2
2
  import { BST, BSTNode } from './bst';
3
3
  import { IBinaryTree } from '../../interfaces';
4
4
  export declare class RedBlackTreeNode<K = any, V = any, NODE extends RedBlackTreeNode<K, V, NODE> = RedBlackTreeNodeNested<K, V>> extends BSTNode<K, V, NODE> {
@@ -107,7 +107,7 @@ export declare class RedBlackTree<K = any, V = any, R = BTNEntry<K, V>, NODE ext
107
107
  *
108
108
  * The function overrides the delete method in a binary tree data structure to remove a node based on
109
109
  * a given predicate and maintain the binary search tree properties.
110
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} predicate - The `predicate`
110
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw - The `keyOrNodeOrEntryOrRaw`
111
111
  * parameter in the `override delete` method is used to specify the condition or key based on which a
112
112
  * node should be deleted from the binary tree. It can be a key, a node, an entry, or a predicate
113
113
  * function that determines which node(s) should be deleted.
@@ -115,7 +115,7 @@ export declare class RedBlackTree<K = any, V = any, R = BTNEntry<K, V>, NODE ext
115
115
  * objects. Each object in the array contains information about the deleted node and whether
116
116
  * balancing is needed.
117
117
  */
118
- delete(predicate: BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>): BinaryTreeDeleteResult<NODE>[];
118
+ delete(keyOrNodeOrEntryOrRaw: BTNKeyOrNodeOrEntry<K, V, NODE> | R): BinaryTreeDeleteResult<NODE>[];
119
119
  /**
120
120
  * Time Complexity: O(1)
121
121
  * Space Complexity: O(1)
@@ -187,7 +187,7 @@ export class RedBlackTree extends BST {
187
187
  *
188
188
  * The function overrides the delete method in a binary tree data structure to remove a node based on
189
189
  * a given predicate and maintain the binary search tree properties.
190
- * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R | BTNPredicate<NODE>} predicate - The `predicate`
190
+ * @param {BTNKeyOrNodeOrEntry<K, V, NODE> | R} keyOrNodeOrEntryOrRaw - The `keyOrNodeOrEntryOrRaw`
191
191
  * parameter in the `override delete` method is used to specify the condition or key based on which a
192
192
  * node should be deleted from the binary tree. It can be a key, a node, an entry, or a predicate
193
193
  * function that determines which node(s) should be deleted.
@@ -195,15 +195,17 @@ export class RedBlackTree extends BST {
195
195
  * objects. Each object in the array contains information about the deleted node and whether
196
196
  * balancing is needed.
197
197
  */
198
- delete(predicate) {
199
- if (predicate === null)
198
+ delete(keyOrNodeOrEntryOrRaw) {
199
+ if (keyOrNodeOrEntryOrRaw === null)
200
200
  return [];
201
201
  const results = [];
202
202
  let nodeToDelete;
203
- if (this._isPredicated(predicate))
204
- nodeToDelete = this.getNode(predicate);
203
+ if (this._isPredicated(keyOrNodeOrEntryOrRaw))
204
+ nodeToDelete = this.getNode(keyOrNodeOrEntryOrRaw);
205
205
  else
206
- nodeToDelete = this.isRealNode(predicate) ? predicate : this.getNode(predicate);
206
+ nodeToDelete = this.isRealNode(keyOrNodeOrEntryOrRaw)
207
+ ? keyOrNodeOrEntryOrRaw
208
+ : this.getNode(keyOrNodeOrEntryOrRaw);
207
209
  if (!nodeToDelete) {
208
210
  return results;
209
211
  }