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
@@ -3,27 +3,27 @@
3
3
  "benchmarks": [
4
4
  {
5
5
  "test name": "10,000 add randomly",
6
- "time taken (ms)": "30.52",
7
- "executions per sec": "32.76",
8
- "sample deviation": "3.28e-4"
6
+ "time taken (ms)": "45.48",
7
+ "executions per sec": "21.99",
8
+ "sample deviation": "0.04"
9
9
  },
10
10
  {
11
11
  "test name": "10,000 add & delete randomly",
12
- "time taken (ms)": "66.96",
13
- "executions per sec": "14.94",
14
- "sample deviation": "0.00"
12
+ "time taken (ms)": "132.35",
13
+ "executions per sec": "7.56",
14
+ "sample deviation": "0.10"
15
15
  },
16
16
  {
17
17
  "test name": "10,000 addMany",
18
- "time taken (ms)": "39.78",
19
- "executions per sec": "25.14",
20
- "sample deviation": "3.67e-4"
18
+ "time taken (ms)": "79.22",
19
+ "executions per sec": "12.62",
20
+ "sample deviation": "0.07"
21
21
  },
22
22
  {
23
23
  "test name": "10,000 get",
24
- "time taken (ms)": "27.38",
25
- "executions per sec": "36.52",
26
- "sample deviation": "0.00"
24
+ "time taken (ms)": "93.13",
25
+ "executions per sec": "10.74",
26
+ "sample deviation": "0.06"
27
27
  }
28
28
  ],
29
29
  "testName": "avl-tree"
@@ -32,45 +32,45 @@
32
32
  "benchmarks": [
33
33
  {
34
34
  "test name": "1,000 add randomly",
35
- "time taken (ms)": "10.50",
36
- "executions per sec": "95.20",
37
- "sample deviation": "2.30e-4"
35
+ "time taken (ms)": "23.89",
36
+ "executions per sec": "41.85",
37
+ "sample deviation": "0.01"
38
38
  },
39
39
  {
40
40
  "test name": "1,000 add & delete randomly",
41
- "time taken (ms)": "16.18",
42
- "executions per sec": "61.81",
43
- "sample deviation": "2.48e-4"
41
+ "time taken (ms)": "22.84",
42
+ "executions per sec": "43.78",
43
+ "sample deviation": "0.01"
44
44
  },
45
45
  {
46
46
  "test name": "1,000 addMany",
47
- "time taken (ms)": "10.80",
48
- "executions per sec": "92.62",
49
- "sample deviation": "1.83e-4"
47
+ "time taken (ms)": "10.61",
48
+ "executions per sec": "94.22",
49
+ "sample deviation": "4.91e-4"
50
50
  },
51
51
  {
52
52
  "test name": "1,000 get",
53
- "time taken (ms)": "18.03",
54
- "executions per sec": "55.45",
55
- "sample deviation": "1.41e-4"
53
+ "time taken (ms)": "18.56",
54
+ "executions per sec": "53.87",
55
+ "sample deviation": "8.86e-4"
56
56
  },
57
57
  {
58
58
  "test name": "1,000 dfs",
59
- "time taken (ms)": "157.86",
60
- "executions per sec": "6.33",
59
+ "time taken (ms)": "158.90",
60
+ "executions per sec": "6.29",
61
61
  "sample deviation": "0.00"
62
62
  },
63
63
  {
64
64
  "test name": "1,000 bfs",
65
- "time taken (ms)": "56.68",
66
- "executions per sec": "17.64",
65
+ "time taken (ms)": "58.59",
66
+ "executions per sec": "17.07",
67
67
  "sample deviation": "0.00"
68
68
  },
69
69
  {
70
70
  "test name": "1,000 morris",
71
- "time taken (ms)": "37.21",
72
- "executions per sec": "26.88",
73
- "sample deviation": "2.79e-4"
71
+ "time taken (ms)": "269.91",
72
+ "executions per sec": "3.70",
73
+ "sample deviation": "0.01"
74
74
  }
75
75
  ],
76
76
  "testName": "binary-tree"
@@ -79,27 +79,27 @@
79
79
  "benchmarks": [
80
80
  {
81
81
  "test name": "10,000 add randomly",
82
- "time taken (ms)": "27.61",
83
- "executions per sec": "36.21",
84
- "sample deviation": "4.73e-4"
82
+ "time taken (ms)": "31.66",
83
+ "executions per sec": "31.59",
84
+ "sample deviation": "8.90e-4"
85
85
  },
86
86
  {
87
87
  "test name": "10,000 add & delete randomly",
88
- "time taken (ms)": "62.93",
89
- "executions per sec": "15.89",
90
- "sample deviation": "5.86e-4"
88
+ "time taken (ms)": "73.97",
89
+ "executions per sec": "13.52",
90
+ "sample deviation": "0.00"
91
91
  },
92
92
  {
93
93
  "test name": "10,000 addMany",
94
- "time taken (ms)": "28.70",
95
- "executions per sec": "34.84",
94
+ "time taken (ms)": "31.66",
95
+ "executions per sec": "31.58",
96
96
  "sample deviation": "0.00"
97
97
  },
98
98
  {
99
99
  "test name": "10,000 get",
100
- "time taken (ms)": "27.67",
101
- "executions per sec": "36.14",
102
- "sample deviation": "2.92e-4"
100
+ "time taken (ms)": "29.75",
101
+ "executions per sec": "33.61",
102
+ "sample deviation": "5.49e-4"
103
103
  }
104
104
  ],
105
105
  "testName": "bst"
@@ -108,21 +108,21 @@
108
108
  "benchmarks": [
109
109
  {
110
110
  "test name": "100,000 add randomly",
111
- "time taken (ms)": "87.51",
112
- "executions per sec": "11.43",
113
- "sample deviation": "0.01"
111
+ "time taken (ms)": "87.24",
112
+ "executions per sec": "11.46",
113
+ "sample deviation": "0.00"
114
114
  },
115
115
  {
116
116
  "test name": "100,000 add & delete randomly",
117
- "time taken (ms)": "189.06",
118
- "executions per sec": "5.29",
117
+ "time taken (ms)": "218.78",
118
+ "executions per sec": "4.57",
119
119
  "sample deviation": "0.01"
120
120
  },
121
121
  {
122
122
  "test name": "100,000 getNode",
123
- "time taken (ms)": "35.33",
124
- "executions per sec": "28.31",
125
- "sample deviation": "8.93e-4"
123
+ "time taken (ms)": "91.39",
124
+ "executions per sec": "10.94",
125
+ "sample deviation": "0.00"
126
126
  }
127
127
  ],
128
128
  "testName": "rb-tree"
@@ -132,43 +132,43 @@
132
132
  {
133
133
  "test name": "1,000 addVertex",
134
134
  "time taken (ms)": "0.10",
135
- "executions per sec": "9899.91",
136
- "sample deviation": "8.58e-7"
135
+ "executions per sec": "9631.84",
136
+ "sample deviation": "5.21e-6"
137
137
  },
138
138
  {
139
139
  "test name": "1,000 addEdge",
140
- "time taken (ms)": "6.06",
141
- "executions per sec": "165.02",
142
- "sample deviation": "1.68e-4"
140
+ "time taken (ms)": "6.25",
141
+ "executions per sec": "160.06",
142
+ "sample deviation": "3.97e-4"
143
143
  },
144
144
  {
145
145
  "test name": "1,000 getVertex",
146
146
  "time taken (ms)": "0.05",
147
- "executions per sec": "2.17e+4",
148
- "sample deviation": "4.22e-7"
147
+ "executions per sec": "2.13e+4",
148
+ "sample deviation": "1.05e-6"
149
149
  },
150
150
  {
151
151
  "test name": "1,000 getEdge",
152
- "time taken (ms)": "23.05",
153
- "executions per sec": "43.38",
152
+ "time taken (ms)": "23.83",
153
+ "executions per sec": "41.97",
154
154
  "sample deviation": "0.00"
155
155
  },
156
156
  {
157
157
  "test name": "tarjan",
158
- "time taken (ms)": "222.59",
159
- "executions per sec": "4.49",
158
+ "time taken (ms)": "217.69",
159
+ "executions per sec": "4.59",
160
160
  "sample deviation": "0.01"
161
161
  },
162
162
  {
163
163
  "test name": "tarjan all",
164
- "time taken (ms)": "226.89",
165
- "executions per sec": "4.41",
164
+ "time taken (ms)": "226.43",
165
+ "executions per sec": "4.42",
166
166
  "sample deviation": "0.01"
167
167
  },
168
168
  {
169
169
  "test name": "topologicalSort",
170
- "time taken (ms)": "187.34",
171
- "executions per sec": "5.34",
170
+ "time taken (ms)": "180.71",
171
+ "executions per sec": "5.53",
172
172
  "sample deviation": "0.01"
173
173
  }
174
174
  ],
@@ -178,14 +178,14 @@
178
178
  "benchmarks": [
179
179
  {
180
180
  "test name": "10,000 add & pop",
181
- "time taken (ms)": "4.66",
182
- "executions per sec": "214.54",
183
- "sample deviation": "9.38e-5"
181
+ "time taken (ms)": "4.69",
182
+ "executions per sec": "213.13",
183
+ "sample deviation": "1.63e-4"
184
184
  },
185
185
  {
186
186
  "test name": "10,000 fib add & pop",
187
- "time taken (ms)": "364.30",
188
- "executions per sec": "2.74",
187
+ "time taken (ms)": "367.49",
188
+ "executions per sec": "2.72",
189
189
  "sample deviation": "0.01"
190
190
  }
191
191
  ],
@@ -195,21 +195,21 @@
195
195
  "benchmarks": [
196
196
  {
197
197
  "test name": "1,000,000 unshift",
198
- "time taken (ms)": "243.61",
199
- "executions per sec": "4.10",
200
- "sample deviation": "0.07"
198
+ "time taken (ms)": "221.10",
199
+ "executions per sec": "4.52",
200
+ "sample deviation": "0.06"
201
201
  },
202
202
  {
203
203
  "test name": "1,000,000 unshift & shift",
204
- "time taken (ms)": "173.32",
205
- "executions per sec": "5.77",
204
+ "time taken (ms)": "179.99",
205
+ "executions per sec": "5.56",
206
206
  "sample deviation": "0.03"
207
207
  },
208
208
  {
209
209
  "test name": "1,000,000 insertBefore",
210
- "time taken (ms)": "315.86",
211
- "executions per sec": "3.17",
212
- "sample deviation": "0.04"
210
+ "time taken (ms)": "331.29",
211
+ "executions per sec": "3.02",
212
+ "sample deviation": "0.06"
213
213
  }
214
214
  ],
215
215
  "testName": "doubly-linked-list"
@@ -218,14 +218,14 @@
218
218
  "benchmarks": [
219
219
  {
220
220
  "test name": "10,000 push & pop",
221
- "time taken (ms)": "228.06",
222
- "executions per sec": "4.38",
223
- "sample deviation": "0.03"
221
+ "time taken (ms)": "216.59",
222
+ "executions per sec": "4.62",
223
+ "sample deviation": "0.01"
224
224
  },
225
225
  {
226
226
  "test name": "10,000 insertBefore",
227
- "time taken (ms)": "252.07",
228
- "executions per sec": "3.97",
227
+ "time taken (ms)": "255.08",
228
+ "executions per sec": "3.92",
229
229
  "sample deviation": "0.01"
230
230
  }
231
231
  ],
@@ -235,9 +235,9 @@
235
235
  "benchmarks": [
236
236
  {
237
237
  "test name": "10,000 refill & poll",
238
- "time taken (ms)": "11.53",
239
- "executions per sec": "86.71",
240
- "sample deviation": "2.27e-4"
238
+ "time taken (ms)": "12.00",
239
+ "executions per sec": "83.34",
240
+ "sample deviation": "6.62e-4"
241
241
  }
242
242
  ],
243
243
  "testName": "max-priority-queue"
@@ -246,14 +246,14 @@
246
246
  "benchmarks": [
247
247
  {
248
248
  "test name": "1,000,000 push",
249
- "time taken (ms)": "227.24",
250
- "executions per sec": "4.40",
251
- "sample deviation": "0.07"
249
+ "time taken (ms)": "222.01",
250
+ "executions per sec": "4.50",
251
+ "sample deviation": "0.05"
252
252
  },
253
253
  {
254
254
  "test name": "1,000,000 shift",
255
- "time taken (ms)": "25.60",
256
- "executions per sec": "39.07",
255
+ "time taken (ms)": "25.35",
256
+ "executions per sec": "39.45",
257
257
  "sample deviation": "0.00"
258
258
  }
259
259
  ],
@@ -263,15 +263,15 @@
263
263
  "benchmarks": [
264
264
  {
265
265
  "test name": "1,000,000 push",
266
- "time taken (ms)": "45.98",
267
- "executions per sec": "21.75",
266
+ "time taken (ms)": "45.31",
267
+ "executions per sec": "22.07",
268
268
  "sample deviation": "0.01"
269
269
  },
270
270
  {
271
271
  "test name": "1,000,000 push & shift",
272
- "time taken (ms)": "81.12",
273
- "executions per sec": "12.33",
274
- "sample deviation": "0.00"
272
+ "time taken (ms)": "83.92",
273
+ "executions per sec": "11.92",
274
+ "sample deviation": "0.01"
275
275
  }
276
276
  ],
277
277
  "testName": "queue"
@@ -280,15 +280,15 @@
280
280
  "benchmarks": [
281
281
  {
282
282
  "test name": "100,000 push",
283
- "time taken (ms)": "59.40",
284
- "executions per sec": "16.83",
283
+ "time taken (ms)": "59.08",
284
+ "executions per sec": "16.92",
285
285
  "sample deviation": "0.01"
286
286
  },
287
287
  {
288
288
  "test name": "100,000 getWords",
289
- "time taken (ms)": "90.07",
290
- "executions per sec": "11.10",
291
- "sample deviation": "0.00"
289
+ "time taken (ms)": "95.74",
290
+ "executions per sec": "10.44",
291
+ "sample deviation": "0.01"
292
292
  }
293
293
  ],
294
294
  "testName": "trie"
@@ -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
  export declare class AVLTreeNode<V = any, N extends AVLTreeNode<V, N> = AVLTreeNodeNested<V>> extends BSTNode<V, N> {
@@ -50,10 +50,10 @@ export declare class AVLTree<V = any, N extends AVLTreeNode<V, N> = AVLTreeNode<
50
50
  * @param callback - The `callback` parameter is a function that takes a node as input and returns a
51
51
  * value. This value is compared with the `identifier` parameter to determine if the node should be
52
52
  * included in the result. The `callback` parameter has a default value of
53
- * `this.defaultOneParamCallback`
54
- * @returns The method is returning an array of `BinaryTreeDeletedResult<N>` objects.
53
+ * `this._defaultOneParamCallback`
54
+ * @returns The method is returning an array of `BiTreeDeleteResult<N>` objects.
55
55
  */
56
- delete<C extends BTNCallback<N>>(identifier: ReturnType<C>, callback?: C): BinaryTreeDeletedResult<N>[];
56
+ delete<C extends BTNCallback<N>>(identifier: ReturnType<C>, callback?: C): BiTreeDeleteResult<N>[];
57
57
  /**
58
58
  * The function swaps the key, value, and height properties between two nodes in a binary tree.
59
59
  * @param {N} srcNode - The `srcNode` parameter represents the source node that needs to be swapped
@@ -62,7 +62,7 @@ export declare class AVLTree<V = any, N extends AVLTreeNode<V, N> = AVLTreeNode<
62
62
  * from the source node (`srcNode`) will be swapped to.
63
63
  * @returns The method is returning the `destNode` after swapping its properties with the `srcNode`.
64
64
  */
65
- protected _swap(srcNode: N, destNode: N): N;
65
+ protected _swap(srcNode: BTNKey | N | undefined, destNode: BTNKey | N | undefined): N | undefined;
66
66
  /**
67
67
  * The function calculates the balance factor of a node in a binary tree.
68
68
  * @param {N} node - The parameter "node" represents a node in a binary tree data structure.
@@ -64,10 +64,10 @@ class AVLTree extends bst_1.BST {
64
64
  * @param callback - The `callback` parameter is a function that takes a node as input and returns a
65
65
  * value. This value is compared with the `identifier` parameter to determine if the node should be
66
66
  * included in the result. The `callback` parameter has a default value of
67
- * `this.defaultOneParamCallback`
68
- * @returns The method is returning an array of `BinaryTreeDeletedResult<N>` objects.
67
+ * `this._defaultOneParamCallback`
68
+ * @returns The method is returning an array of `BiTreeDeleteResult<N>` objects.
69
69
  */
70
- delete(identifier, callback = this.defaultOneParamCallback) {
70
+ delete(identifier, callback = this._defaultOneParamCallback) {
71
71
  if (identifier instanceof AVLTreeNode)
72
72
  callback = (node => node);
73
73
  const deletedResults = super.delete(identifier, callback);
@@ -87,18 +87,23 @@ class AVLTree extends bst_1.BST {
87
87
  * @returns The method is returning the `destNode` after swapping its properties with the `srcNode`.
88
88
  */
89
89
  _swap(srcNode, destNode) {
90
- const { key, value, height } = destNode;
91
- const tempNode = this.createNode(key, value);
92
- if (tempNode) {
93
- tempNode.height = height;
94
- destNode.key = srcNode.key;
95
- destNode.value = srcNode.value;
96
- destNode.height = srcNode.height;
97
- srcNode.key = tempNode.key;
98
- srcNode.value = tempNode.value;
99
- srcNode.height = tempNode.height;
90
+ srcNode = this.ensureNotKey(srcNode);
91
+ destNode = this.ensureNotKey(destNode);
92
+ if (srcNode && destNode) {
93
+ const { key, value, height } = destNode;
94
+ const tempNode = this.createNode(key, value);
95
+ if (tempNode) {
96
+ tempNode.height = height;
97
+ destNode.key = srcNode.key;
98
+ destNode.value = srcNode.value;
99
+ destNode.height = srcNode.height;
100
+ srcNode.key = tempNode.key;
101
+ srcNode.value = tempNode.value;
102
+ srcNode.height = tempNode.height;
103
+ }
104
+ return destNode;
100
105
  }
101
- return destNode;
106
+ return undefined;
102
107
  }
103
108
  /**
104
109
  * The function calculates the balance factor of a node in a binary tree.
@@ -1 +1 @@
1
- {"version":3,"file":"avl-tree.js","sourceRoot":"","sources":["../../../../../src/data-structures/binary-tree/avl-tree.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,+BAAmC;AAKnC,MAAa,WAAyE,SAAQ,aAAa;IAGzG,YAAY,GAAW,EAAE,KAAS;QAChC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAPD,kCAOC;AAED,MAAa,OACX,SAAQ,SAAS;IAGjB;;;;;OAKG;IACH,YAAY,OAAwB;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;OAQG;IACM,UAAU,CAAC,GAAW,EAAE,KAAS;QACxC,OAAO,IAAI,WAAW,CAAO,GAAG,EAAE,KAAK,CAAM,CAAC;IAChD,CAAC;IAED;;;;;;;;OAQG;IACM,GAAG,CAAC,SAAwC,EAAE,KAAS;QAC9D,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,QAAQ;YAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;OAWG;IACM,MAAM,CACb,UAAyB,EACzB,WAAc,IAAI,CAAC,uBAA4B;QAE/C,IAAK,UAAkB,YAAY,WAAW;YAAE,QAAQ,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAM,CAAC;QAC/E,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,KAAK,MAAM,EAAC,YAAY,EAAC,IAAI,cAAc,EAAE;YAC3C,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;aACjC;SACF;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACgB,KAAK,CAAC,OAAU,EAAE,QAAW;QAC9C,MAAM,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAC,GAAG,QAAQ,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE7C,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;YAEzB,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YAC3B,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC/B,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YAC3B,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC/B,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAClC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACO,cAAc,CAAC,IAAO;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK;YACb,4BAA4B;YAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;aACjB,IAAI,CAAC,IAAI,CAAC,IAAI;YACjB,2BAA2B;YAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACO,aAAa,CAAC,IAAO;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACnB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC;SAC/B;aAAM,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;YACtD,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACO,YAAY,CAAC,IAAO;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,4BAA4B;QAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,kBAAkB;YAClB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,+IAA+I;YAC/I,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;YACpC,sHAAsH;YACtH,6OAA6O;YAC7O,QACE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc;cACrC;gBACA,KAAK,CAAC,CAAC;oBACL,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;wBACf,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;4BACpC,cAAc;4BACd,wHAAwH;4BACxH,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;yBACpB;6BAAM;4BACL,+HAA+H;4BAC/H,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;yBACpB;qBACF;oBACD,MAAM;gBACR,KAAK,CAAC,CAAC;oBACL,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;wBAChB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;4BACrC,2HAA2H;4BAC3H,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;yBACpB;6BAAM;4BACL,+HAA+H;4BAC/H,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;yBACpB;qBACF;aACJ;YACD,oRAAoR;SACrR;IACH,CAAC;IAED;;;OAGG;IACO,UAAU,CAAC,CAAI;QACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;YAChB,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC;YAAE,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,CAAC,EAAE;gBACzB,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;aACpB;iBAAM;gBACL,IAAI,SAAS;oBAAE,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;aACpC;SACF;QAED,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;YACjB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;SACb;QACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACO,UAAU,CAAC,CAAI;QACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,SAAS,CAAC;QAClB,IAAI,CAAC,EAAE;YACL,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;SACb;QACD,IAAI,CAAC;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,CAAC,IAAI,EAAE;gBACV,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACnB;YACD,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACpB;YACD,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;SACtB;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,SAAS,EAAE;gBACb,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE;oBACxB,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;iBACpB;qBAAM;oBACL,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;iBACrB;aACF;SACF;QAED,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;YACjB,IAAI,CAAC;gBAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACX,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;SACb;QAED,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACO,UAAU,CAAC,CAAI;QACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,CAAC,IAAI,EAAE;gBACV,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACnB;YACD,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;SACtB;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,SAAS,EAAE;gBACb,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE;oBACxB,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;iBACpB;qBAAM;oBACL,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;iBACrB;aACF;SACF;QAED,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACjB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;SACZ;QACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACO,UAAU,CAAC,CAAI;QACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAClB,IAAI,CAAC,GAAG,SAAS,CAAC;QAClB,IAAI,CAAC,EAAE;YACL,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;SACZ;QAED,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACb,IAAI,CAAC;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,CAAC,IAAI,EAAE;gBACV,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACnB;YACD,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACpB;YACD,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;SACtB;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,SAAS,EAAE;gBACb,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE;oBACxB,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;iBACpB;qBAAM;oBACL,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;iBACrB;aACF;SACF;QAED,IAAI,CAAC;YAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC;YAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC;YAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC;YAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;CACF;AA1UD,0BA0UC"}
1
+ {"version":3,"file":"avl-tree.js","sourceRoot":"","sources":["../../../../../src/data-structures/binary-tree/avl-tree.ts"],"names":[],"mappings":"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"}