data-structure-typed 1.42.6 → 1.42.7

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 (50) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +122 -122
  3. package/benchmark/report.html +12 -12
  4. package/benchmark/report.json +101 -101
  5. package/dist/cjs/src/data-structures/binary-tree/avl-tree.d.ts +5 -5
  6. package/dist/cjs/src/data-structures/binary-tree/avl-tree.js +19 -14
  7. package/dist/cjs/src/data-structures/binary-tree/avl-tree.js.map +1 -1
  8. package/dist/cjs/src/data-structures/binary-tree/binary-tree.d.ts +108 -60
  9. package/dist/cjs/src/data-structures/binary-tree/binary-tree.js +189 -89
  10. package/dist/cjs/src/data-structures/binary-tree/binary-tree.js.map +1 -1
  11. package/dist/cjs/src/data-structures/binary-tree/bst.d.ts +30 -8
  12. package/dist/cjs/src/data-structures/binary-tree/bst.js +77 -28
  13. package/dist/cjs/src/data-structures/binary-tree/bst.js.map +1 -1
  14. package/dist/cjs/src/data-structures/binary-tree/rb-tree.d.ts +35 -28
  15. package/dist/cjs/src/data-structures/binary-tree/rb-tree.js +44 -45
  16. package/dist/cjs/src/data-structures/binary-tree/rb-tree.js.map +1 -1
  17. package/dist/cjs/src/data-structures/binary-tree/tree-multimap.d.ts +7 -12
  18. package/dist/cjs/src/data-structures/binary-tree/tree-multimap.js +38 -37
  19. package/dist/cjs/src/data-structures/binary-tree/tree-multimap.js.map +1 -1
  20. package/dist/cjs/src/interfaces/binary-tree.d.ts +2 -2
  21. package/dist/cjs/src/types/data-structures/binary-tree/binary-tree.d.ts +1 -1
  22. package/dist/cjs/src/types/data-structures/binary-tree/binary-tree.js +6 -0
  23. package/dist/cjs/src/types/data-structures/binary-tree/binary-tree.js.map +1 -1
  24. package/dist/cjs/src/types/data-structures/binary-tree/rb-tree.d.ts +2 -2
  25. package/dist/mjs/src/data-structures/binary-tree/avl-tree.d.ts +5 -5
  26. package/dist/mjs/src/data-structures/binary-tree/avl-tree.js +19 -14
  27. package/dist/mjs/src/data-structures/binary-tree/binary-tree.d.ts +108 -60
  28. package/dist/mjs/src/data-structures/binary-tree/binary-tree.js +191 -89
  29. package/dist/mjs/src/data-structures/binary-tree/bst.d.ts +30 -8
  30. package/dist/mjs/src/data-structures/binary-tree/bst.js +78 -27
  31. package/dist/mjs/src/data-structures/binary-tree/rb-tree.d.ts +35 -28
  32. package/dist/mjs/src/data-structures/binary-tree/rb-tree.js +43 -45
  33. package/dist/mjs/src/data-structures/binary-tree/tree-multimap.d.ts +7 -12
  34. package/dist/mjs/src/data-structures/binary-tree/tree-multimap.js +38 -37
  35. package/dist/mjs/src/interfaces/binary-tree.d.ts +2 -2
  36. package/dist/mjs/src/types/data-structures/binary-tree/binary-tree.d.ts +1 -1
  37. package/dist/mjs/src/types/data-structures/binary-tree/binary-tree.js +6 -0
  38. package/dist/mjs/src/types/data-structures/binary-tree/rb-tree.d.ts +2 -2
  39. package/dist/umd/data-structure-typed.min.js +1 -1
  40. package/dist/umd/data-structure-typed.min.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/data-structures/binary-tree/avl-tree.ts +24 -18
  43. package/src/data-structures/binary-tree/binary-tree.ts +248 -142
  44. package/src/data-structures/binary-tree/bst.ts +88 -38
  45. package/src/data-structures/binary-tree/rb-tree.ts +52 -58
  46. package/src/data-structures/binary-tree/tree-multimap.ts +50 -54
  47. package/src/interfaces/binary-tree.ts +2 -2
  48. package/src/types/data-structures/binary-tree/binary-tree.ts +7 -1
  49. package/src/types/data-structures/binary-tree/rb-tree.ts +2 -2
  50. package/test/unit/data-structures/binary-tree/rb-tree.test.ts +9 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "data-structure-typed",
3
- "version": "1.42.6",
3
+ "version": "1.42.7",
4
4
  "description": "Data Structures of Javascript & TypeScript. Binary Tree, BST, Graph, Heap, Priority Queue, Linked List, Queue, Deque, Stack, AVL Tree, Tree Multiset, Trie, Directed Graph, Undirected Graph, Singly Linked List, Doubly Linked List, Max Heap, Max Priority Queue, Min Heap, Min Priority Queue.",
5
5
  "main": "dist/cjs/src/index.js",
6
6
  "module": "dist/mjs/src/index.js",
@@ -6,7 +6,7 @@
6
6
  * @license MIT License
7
7
  */
8
8
  import {BST, BSTNode} from './bst';
9
- import type {AVLTreeNodeNested, AVLTreeOptions, BinaryTreeDeletedResult, BTNKey} from '../../types';
9
+ import type {AVLTreeNodeNested, AVLTreeOptions, BiTreeDeleteResult, BTNKey} from '../../types';
10
10
  import {BTNCallback} from '../../types';
11
11
  import {IBinaryTree} from '../../interfaces';
12
12
 
@@ -71,13 +71,13 @@ export class AVLTree<V = any, N extends AVLTreeNode<V, N> = AVLTreeNode<V, AVLTr
71
71
  * @param callback - The `callback` parameter is a function that takes a node as input and returns a
72
72
  * value. This value is compared with the `identifier` parameter to determine if the node should be
73
73
  * included in the result. The `callback` parameter has a default value of
74
- * `this.defaultOneParamCallback`
75
- * @returns The method is returning an array of `BinaryTreeDeletedResult<N>` objects.
74
+ * `this._defaultOneParamCallback`
75
+ * @returns The method is returning an array of `BiTreeDeleteResult<N>` objects.
76
76
  */
77
77
  override delete<C extends BTNCallback<N>>(
78
78
  identifier: ReturnType<C>,
79
- callback: C = this.defaultOneParamCallback as C
80
- ): BinaryTreeDeletedResult<N>[] {
79
+ callback: C = this._defaultOneParamCallback as C
80
+ ): BiTreeDeleteResult<N>[] {
81
81
  if ((identifier as any) instanceof AVLTreeNode) callback = (node => node) as C;
82
82
  const deletedResults = super.delete(identifier, callback);
83
83
  for (const {needBalanced} of deletedResults) {
@@ -96,23 +96,29 @@ export class AVLTree<V = any, N extends AVLTreeNode<V, N> = AVLTreeNode<V, AVLTr
96
96
  * from the source node (`srcNode`) will be swapped to.
97
97
  * @returns The method is returning the `destNode` after swapping its properties with the `srcNode`.
98
98
  */
99
- protected override _swap(srcNode: N, destNode: N): N {
100
- const {key, value, height} = destNode;
101
- const tempNode = this.createNode(key, value);
99
+ protected override _swap(srcNode: BTNKey | N | undefined, destNode: BTNKey | N | undefined): N | undefined {
100
+ srcNode = this.ensureNotKey(srcNode);
101
+ destNode = this.ensureNotKey(destNode);
102
102
 
103
- if (tempNode) {
104
- tempNode.height = height;
103
+ if (srcNode && destNode) {
104
+ const {key, value, height} = destNode;
105
+ const tempNode = this.createNode(key, value);
105
106
 
106
- destNode.key = srcNode.key;
107
- destNode.value = srcNode.value;
108
- destNode.height = srcNode.height;
107
+ if (tempNode) {
108
+ tempNode.height = height;
109
109
 
110
- srcNode.key = tempNode.key;
111
- srcNode.value = tempNode.value;
112
- srcNode.height = tempNode.height;
113
- }
110
+ destNode.key = srcNode.key;
111
+ destNode.value = srcNode.value;
112
+ destNode.height = srcNode.height;
113
+
114
+ srcNode.key = tempNode.key;
115
+ srcNode.value = tempNode.value;
116
+ srcNode.height = tempNode.height;
117
+ }
114
118
 
115
- return destNode;
119
+ return destNode;
120
+ }
121
+ return undefined;
116
122
  }
117
123
 
118
124
  /**