data-structure-typed 1.52.8 → 1.53.0
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 +13 -13
- package/benchmark/report.html +13 -13
- package/benchmark/report.json +151 -151
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +22 -22
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +64 -47
- 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 +20 -20
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +28 -26
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +240 -141
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +395 -269
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +56 -56
- package/dist/cjs/data-structures/binary-tree/bst.js +114 -91
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +13 -13
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +35 -31
- 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 +22 -23
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +59 -48
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
- package/dist/cjs/data-structures/trie/trie.js +3 -3
- package/dist/cjs/interfaces/binary-tree.d.ts +5 -5
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +13 -13
- package/dist/cjs/types/data-structures/binary-tree/bst.d.ts +3 -3
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +22 -22
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js +64 -46
- package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +20 -20
- package/dist/mjs/data-structures/binary-tree/avl-tree.js +28 -25
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +240 -141
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +395 -268
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +56 -56
- package/dist/mjs/data-structures/binary-tree/bst.js +114 -89
- package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +13 -13
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +35 -30
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.d.ts +22 -23
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +59 -47
- package/dist/mjs/data-structures/trie/trie.js +3 -3
- package/dist/mjs/interfaces/binary-tree.d.ts +5 -5
- package/dist/mjs/types/data-structures/binary-tree/binary-tree.d.ts +13 -13
- package/dist/mjs/types/data-structures/binary-tree/bst.d.ts +3 -3
- package/dist/umd/data-structure-typed.js +617 -482
- package/dist/umd/data-structure-typed.min.js +5 -5
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +6 -6
- package/src/data-structures/binary-tree/avl-tree-multi-map.ts +60 -55
- package/src/data-structures/binary-tree/avl-tree.ts +31 -35
- package/src/data-structures/binary-tree/binary-tree.ts +461 -385
- package/src/data-structures/binary-tree/bst.ts +155 -128
- package/src/data-structures/binary-tree/rb-tree.ts +37 -39
- package/src/data-structures/binary-tree/tree-multi-map.ts +57 -60
- package/src/data-structures/trie/trie.ts +3 -3
- package/src/interfaces/binary-tree.ts +6 -6
- package/src/types/data-structures/binary-tree/binary-tree.ts +14 -15
- package/src/types/data-structures/binary-tree/bst.ts +4 -4
- package/test/integration/bst.test.ts +2 -2
- package/test/performance/data-structures/binary-tree/avl-tree.test.ts +1 -1
- package/test/performance/data-structures/binary-tree/binary-tree-overall.test.ts +2 -2
- package/test/performance/data-structures/binary-tree/binary-tree.test.ts +1 -1
- package/test/performance/data-structures/binary-tree/bst.test.ts +1 -1
- package/test/performance/data-structures/binary-tree/rb-tree.test.ts +1 -1
- package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +113 -1
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +107 -1
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +169 -26
- package/test/unit/data-structures/binary-tree/bst.test.ts +326 -21
- package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +139 -1
|
@@ -52,7 +52,7 @@ class AVLTree extends bst_1.BST {
|
|
|
52
52
|
/**
|
|
53
53
|
* This is a constructor function for an AVLTree class that initializes the tree with keys, nodes,
|
|
54
54
|
* entries, or raw elements.
|
|
55
|
-
* @param
|
|
55
|
+
* @param keysNodesEntriesOrRaws - The `keysNodesEntriesOrRaws` parameter is an
|
|
56
56
|
* iterable object that can contain either keys, nodes, entries, or raw elements. These elements will
|
|
57
57
|
* be used to initialize the AVLTree.
|
|
58
58
|
* @param [options] - The `options` parameter is an optional object that can be used to customize the
|
|
@@ -60,10 +60,10 @@ class AVLTree extends bst_1.BST {
|
|
|
60
60
|
* keys), `allowDuplicates` (a boolean indicating whether duplicate keys are allowed), and
|
|
61
61
|
* `nodeBuilder` (
|
|
62
62
|
*/
|
|
63
|
-
constructor(
|
|
63
|
+
constructor(keysNodesEntriesOrRaws = [], options) {
|
|
64
64
|
super([], options);
|
|
65
|
-
if (
|
|
66
|
-
super.addMany(
|
|
65
|
+
if (keysNodesEntriesOrRaws)
|
|
66
|
+
super.addMany(keysNodesEntriesOrRaws);
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
69
|
* The function creates a new AVL tree node with the given key and value.
|
|
@@ -85,17 +85,17 @@ class AVLTree extends bst_1.BST {
|
|
|
85
85
|
* @returns a new AVLTree object.
|
|
86
86
|
*/
|
|
87
87
|
createTree(options) {
|
|
88
|
-
return new AVLTree([], Object.assign({ iterationType: this.iterationType, comparator: this._comparator, toEntryFn: this._toEntryFn }, options));
|
|
88
|
+
return new AVLTree([], Object.assign({ iterationType: this.iterationType, isMapMode: this._isMapMode, comparator: this._comparator, toEntryFn: this._toEntryFn }, options));
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* The function checks if the input is an instance of AVLTreeNode.
|
|
92
|
-
* @param {
|
|
93
|
-
* `
|
|
94
|
-
* @returns a boolean value indicating whether the input parameter `
|
|
92
|
+
* @param {BTNRep<K, V, NODE> | R} keyNodeEntryOrRaw - The parameter
|
|
93
|
+
* `keyNodeEntryOrRaw` can be of type `R` or `BTNRep<K, V, NODE>`.
|
|
94
|
+
* @returns a boolean value indicating whether the input parameter `keyNodeEntryOrRaw` is
|
|
95
95
|
* an instance of the `AVLTreeNode` class.
|
|
96
96
|
*/
|
|
97
|
-
isNode(
|
|
98
|
-
return
|
|
97
|
+
isNode(keyNodeEntryOrRaw) {
|
|
98
|
+
return keyNodeEntryOrRaw instanceof AVLTreeNode;
|
|
99
99
|
}
|
|
100
100
|
/**
|
|
101
101
|
* Time Complexity: O(log n)
|
|
@@ -103,19 +103,19 @@ class AVLTree extends bst_1.BST {
|
|
|
103
103
|
*
|
|
104
104
|
* The function overrides the add method of a class and inserts a key-value pair into a data
|
|
105
105
|
* structure, then balances the path.
|
|
106
|
-
* @param {
|
|
107
|
-
* `
|
|
106
|
+
* @param {BTNRep<K, V, NODE> | R} keyNodeEntryOrRaw - The parameter
|
|
107
|
+
* `keyNodeEntryOrRaw` can accept values of type `R`, `BTNRep<K, V, NODE>`, or
|
|
108
108
|
* `RawElement`.
|
|
109
109
|
* @param {V} [value] - The `value` parameter is an optional value that you want to associate with
|
|
110
110
|
* the key or node being added to the data structure.
|
|
111
111
|
* @returns The method is returning a boolean value.
|
|
112
112
|
*/
|
|
113
|
-
add(
|
|
114
|
-
if (
|
|
113
|
+
add(keyNodeEntryOrRaw, value) {
|
|
114
|
+
if (keyNodeEntryOrRaw === null)
|
|
115
115
|
return false;
|
|
116
|
-
const inserted = super.add(
|
|
116
|
+
const inserted = super.add(keyNodeEntryOrRaw, value);
|
|
117
117
|
if (inserted)
|
|
118
|
-
this._balancePath(
|
|
118
|
+
this._balancePath(keyNodeEntryOrRaw);
|
|
119
119
|
return inserted;
|
|
120
120
|
}
|
|
121
121
|
/**
|
|
@@ -124,15 +124,15 @@ class AVLTree extends bst_1.BST {
|
|
|
124
124
|
*
|
|
125
125
|
* The function overrides the delete method in a TypeScript class, performs deletion, and then
|
|
126
126
|
* balances the tree if necessary.
|
|
127
|
-
* @param {
|
|
127
|
+
* @param {BTNRep<K, V, NODE> | R} keyNodeEntryOrRaw - The `keyNodeEntryOrRaw`
|
|
128
128
|
* parameter in the `override delete` method can be one of the following types:
|
|
129
129
|
* @returns The `delete` method is being overridden in this code snippet. It first calls the `delete`
|
|
130
130
|
* method from the superclass (presumably a parent class) with the provided `predicate`, which could
|
|
131
131
|
* be a key, node, entry, or a custom predicate. The result of this deletion operation is stored in
|
|
132
132
|
* `deletedResults`, which is an array of `BinaryTreeDeleteResult` objects.
|
|
133
133
|
*/
|
|
134
|
-
delete(
|
|
135
|
-
const deletedResults = super.delete(
|
|
134
|
+
delete(keyNodeEntryOrRaw) {
|
|
135
|
+
const deletedResults = super.delete(keyNodeEntryOrRaw);
|
|
136
136
|
for (const { needBalanced } of deletedResults) {
|
|
137
137
|
if (needBalanced) {
|
|
138
138
|
this._balancePath(needBalanced);
|
|
@@ -146,10 +146,10 @@ class AVLTree extends bst_1.BST {
|
|
|
146
146
|
*
|
|
147
147
|
* The `_swapProperties` function swaps the key, value, and height properties between two nodes in a
|
|
148
148
|
* binary search tree.
|
|
149
|
-
* @param {R |
|
|
149
|
+
* @param {R | BSTNOptKeyOrNode<K, NODE>} srcNode - The `srcNode` parameter represents either a node
|
|
150
150
|
* object (`NODE`) or a key-value pair (`R`) that is being swapped with another node.
|
|
151
|
-
* @param {R |
|
|
152
|
-
* `R` or an instance of `
|
|
151
|
+
* @param {R | BSTNOptKeyOrNode<K, NODE>} destNode - The `destNode` parameter is either an instance of
|
|
152
|
+
* `R` or an instance of `BSTNOptKeyOrNode<K, NODE>`.
|
|
153
153
|
* @returns The method is returning the `destNodeEnsured` object if both `srcNodeEnsured` and
|
|
154
154
|
* `destNodeEnsured` are truthy. Otherwise, it returns `undefined`.
|
|
155
155
|
*/
|
|
@@ -162,10 +162,12 @@ class AVLTree extends bst_1.BST {
|
|
|
162
162
|
if (tempNode) {
|
|
163
163
|
tempNode.height = height;
|
|
164
164
|
destNodeEnsured.key = srcNodeEnsured.key;
|
|
165
|
-
|
|
165
|
+
if (!this._isMapMode)
|
|
166
|
+
destNodeEnsured.value = srcNodeEnsured.value;
|
|
166
167
|
destNodeEnsured.height = srcNodeEnsured.height;
|
|
167
168
|
srcNodeEnsured.key = tempNode.key;
|
|
168
|
-
|
|
169
|
+
if (!this._isMapMode)
|
|
170
|
+
srcNodeEnsured.value = tempNode.value;
|
|
169
171
|
srcNodeEnsured.height = tempNode.height;
|
|
170
172
|
}
|
|
171
173
|
return destNodeEnsured;
|
|
@@ -402,8 +404,8 @@ class AVLTree extends bst_1.BST {
|
|
|
402
404
|
*
|
|
403
405
|
* The `_balancePath` function is used to update the heights of nodes and perform rotation operations
|
|
404
406
|
* to restore balance in an AVL tree after inserting a node.
|
|
405
|
-
* @param {
|
|
406
|
-
* `
|
|
407
|
+
* @param {BTNRep<K, V, NODE> | R} node - The `node` parameter can be of type `R` or
|
|
408
|
+
* `BTNRep<K, V, NODE>`.
|
|
407
409
|
*/
|
|
408
410
|
_balancePath(node) {
|
|
409
411
|
node = this.ensureNode(node);
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"avl-tree.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/avl-tree.ts"],"names":[],"mappings":"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"}
|