data-structure-typed 1.50.7 → 1.50.8
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 +27 -19
- package/benchmark/report.html +1 -37
- package/benchmark/report.json +16 -394
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +1 -2
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +3 -4
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +3 -3
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +23 -24
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +7 -5
- package/dist/cjs/data-structures/binary-tree/bst.js +59 -38
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +6 -7
- 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 +1 -2
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
- package/dist/cjs/types/common.d.ts +5 -28
- package/dist/cjs/types/common.js +0 -40
- package/dist/cjs/types/common.js.map +1 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +1 -2
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js +3 -4
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +3 -3
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +23 -24
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +7 -5
- package/dist/mjs/data-structures/binary-tree/bst.js +59 -38
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +7 -8
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.d.ts +1 -2
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +2 -2
- package/dist/mjs/types/common.d.ts +5 -28
- package/dist/mjs/types/common.js +1 -39
- package/dist/umd/data-structure-typed.js +86 -118
- package/dist/umd/data-structure-typed.min.js +2 -2
- 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 +3 -4
- package/src/data-structures/binary-tree/binary-tree.ts +23 -26
- package/src/data-structures/binary-tree/bst.ts +59 -36
- package/src/data-structures/binary-tree/rb-tree.ts +6 -6
- package/src/data-structures/binary-tree/tree-multi-map.ts +2 -2
- package/src/types/common.ts +5 -29
- package/test/integration/all-in-one.test.ts +2 -2
- package/test/integration/avl-tree.test.ts +1 -1
- package/test/integration/bst.test.ts +2 -2
- package/test/performance/data-structures/binary-tree/rb-tree.test.ts +13 -22
- package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +8 -16
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +4 -4
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +118 -65
- package/test/unit/data-structures/binary-tree/bst.test.ts +12 -12
- package/test/unit/data-structures/binary-tree/overall.test.ts +7 -7
- package/test/unit/data-structures/binary-tree/rb-tree.test.ts +10 -5
- package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +7 -15
package/benchmark/report.json
CHANGED
|
@@ -1,415 +1,37 @@
|
|
|
1
1
|
{
|
|
2
|
-
"heap": {
|
|
3
|
-
"benchmarks": [
|
|
4
|
-
{
|
|
5
|
-
"test name": "100,000 add",
|
|
6
|
-
"time taken (ms)": "6.34",
|
|
7
|
-
"executions per sec": "157.68",
|
|
8
|
-
"sample deviation": "1.57e-4"
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
"test name": "100,000 add & poll",
|
|
12
|
-
"time taken (ms)": "31.54",
|
|
13
|
-
"executions per sec": "31.70",
|
|
14
|
-
"sample deviation": "9.20e-4"
|
|
15
|
-
}
|
|
16
|
-
],
|
|
17
|
-
"testName": "heap"
|
|
18
|
-
},
|
|
19
2
|
"rb-tree": {
|
|
20
3
|
"benchmarks": [
|
|
21
4
|
{
|
|
22
|
-
"test name": "100,000 add
|
|
23
|
-
"time taken (ms)": "
|
|
24
|
-
"executions per sec": "
|
|
25
|
-
"sample deviation": "0.00"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"test name": "100,000 delete orderly",
|
|
29
|
-
"time taken (ms)": "10.65",
|
|
30
|
-
"executions per sec": "93.90",
|
|
31
|
-
"sample deviation": "9.11e-5"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"test name": "100,000 add randomly",
|
|
35
|
-
"time taken (ms)": "114.65",
|
|
36
|
-
"executions per sec": "8.72",
|
|
5
|
+
"test name": "100,000 add",
|
|
6
|
+
"time taken (ms)": "92.86",
|
|
7
|
+
"executions per sec": "10.77",
|
|
37
8
|
"sample deviation": "0.00"
|
|
38
9
|
},
|
|
39
10
|
{
|
|
40
|
-
"test name": "100,000
|
|
41
|
-
"time taken (ms)": "
|
|
42
|
-
"executions per sec": "
|
|
43
|
-
"sample deviation": "
|
|
11
|
+
"test name": "100,000 get",
|
|
12
|
+
"time taken (ms)": "112.39",
|
|
13
|
+
"executions per sec": "8.90",
|
|
14
|
+
"sample deviation": "8.37e-4"
|
|
44
15
|
},
|
|
45
16
|
{
|
|
46
|
-
"test name": "100,000
|
|
47
|
-
"time taken (ms)": "
|
|
48
|
-
"executions per sec": "
|
|
17
|
+
"test name": "100,000 iterator",
|
|
18
|
+
"time taken (ms)": "30.56",
|
|
19
|
+
"executions per sec": "32.72",
|
|
49
20
|
"sample deviation": "0.00"
|
|
50
21
|
},
|
|
51
22
|
{
|
|
52
|
-
"test name": "100,000 delete
|
|
53
|
-
"time taken (ms)": "
|
|
54
|
-
"executions per sec": "
|
|
55
|
-
"sample deviation": "6.25e-5"
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"test name": "100,000 getNode randomly",
|
|
59
|
-
"time taken (ms)": "9.53",
|
|
60
|
-
"executions per sec": "104.98",
|
|
61
|
-
"sample deviation": "6.20e-5"
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"test name": "100,000 add & iterator",
|
|
65
|
-
"time taken (ms)": "146.46",
|
|
66
|
-
"executions per sec": "6.83",
|
|
23
|
+
"test name": "100,000 add & delete orderly",
|
|
24
|
+
"time taken (ms)": "175.06",
|
|
25
|
+
"executions per sec": "5.71",
|
|
67
26
|
"sample deviation": "0.02"
|
|
68
|
-
}
|
|
69
|
-
],
|
|
70
|
-
"testName": "rb-tree"
|
|
71
|
-
},
|
|
72
|
-
"queue": {
|
|
73
|
-
"benchmarks": [
|
|
74
|
-
{
|
|
75
|
-
"test name": "1,000,000 push",
|
|
76
|
-
"time taken (ms)": "41.59",
|
|
77
|
-
"executions per sec": "24.05",
|
|
78
|
-
"sample deviation": "0.01"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"test name": "100,000 push & shift",
|
|
82
|
-
"time taken (ms)": "4.54",
|
|
83
|
-
"executions per sec": "220.29",
|
|
84
|
-
"sample deviation": "1.10e-4"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"test name": "Native JS Array 100,000 push & shift",
|
|
88
|
-
"time taken (ms)": "2243.54",
|
|
89
|
-
"executions per sec": "0.45",
|
|
90
|
-
"sample deviation": "0.10"
|
|
91
|
-
}
|
|
92
|
-
],
|
|
93
|
-
"testName": "queue"
|
|
94
|
-
},
|
|
95
|
-
"deque": {
|
|
96
|
-
"benchmarks": [
|
|
97
|
-
{
|
|
98
|
-
"test name": "1,000,000 push",
|
|
99
|
-
"time taken (ms)": "23.20",
|
|
100
|
-
"executions per sec": "43.10",
|
|
101
|
-
"sample deviation": "0.00"
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
"test name": "1,000,000 push & pop",
|
|
105
|
-
"time taken (ms)": "30.14",
|
|
106
|
-
"executions per sec": "33.18",
|
|
107
|
-
"sample deviation": "0.00"
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"test name": "1,000,000 push & shift",
|
|
111
|
-
"time taken (ms)": "29.94",
|
|
112
|
-
"executions per sec": "33.40",
|
|
113
|
-
"sample deviation": "0.00"
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
"test name": "100,000 push & shift",
|
|
117
|
-
"time taken (ms)": "3.18",
|
|
118
|
-
"executions per sec": "314.70",
|
|
119
|
-
"sample deviation": "3.27e-4"
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
"test name": "Native JS Array 100,000 push & shift",
|
|
123
|
-
"time taken (ms)": "2238.52",
|
|
124
|
-
"executions per sec": "0.45",
|
|
125
|
-
"sample deviation": "0.09"
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
"test name": "100,000 unshift & shift",
|
|
129
|
-
"time taken (ms)": "2.85",
|
|
130
|
-
"executions per sec": "350.27",
|
|
131
|
-
"sample deviation": "2.85e-4"
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"test name": "Native JS Array 100,000 unshift & shift",
|
|
135
|
-
"time taken (ms)": "4149.34",
|
|
136
|
-
"executions per sec": "0.24",
|
|
137
|
-
"sample deviation": "0.10"
|
|
138
|
-
}
|
|
139
|
-
],
|
|
140
|
-
"testName": "deque"
|
|
141
|
-
},
|
|
142
|
-
"hash-map": {
|
|
143
|
-
"benchmarks": [
|
|
144
|
-
{
|
|
145
|
-
"test name": "1,000,000 set",
|
|
146
|
-
"time taken (ms)": "113.24",
|
|
147
|
-
"executions per sec": "8.83",
|
|
148
|
-
"sample deviation": "0.03"
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
"test name": "Native JS Map 1,000,000 set",
|
|
152
|
-
"time taken (ms)": "205.14",
|
|
153
|
-
"executions per sec": "4.87",
|
|
154
|
-
"sample deviation": "0.00"
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
"test name": "Native JS Set 1,000,000 add",
|
|
158
|
-
"time taken (ms)": "174.38",
|
|
159
|
-
"executions per sec": "5.73",
|
|
160
|
-
"sample deviation": "0.01"
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
"test name": "1,000,000 set & get",
|
|
164
|
-
"time taken (ms)": "114.96",
|
|
165
|
-
"executions per sec": "8.70",
|
|
166
|
-
"sample deviation": "0.03"
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
"test name": "Native JS Map 1,000,000 set & get",
|
|
170
|
-
"time taken (ms)": "267.57",
|
|
171
|
-
"executions per sec": "3.74",
|
|
172
|
-
"sample deviation": "0.00"
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
"test name": "Native JS Set 1,000,000 add & has",
|
|
176
|
-
"time taken (ms)": "172.94",
|
|
177
|
-
"executions per sec": "5.78",
|
|
178
|
-
"sample deviation": "0.01"
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
"test name": "1,000,000 ObjKey set & get",
|
|
182
|
-
"time taken (ms)": "327.38",
|
|
183
|
-
"executions per sec": "3.05",
|
|
184
|
-
"sample deviation": "0.03"
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
"test name": "Native JS Map 1,000,000 ObjKey set & get",
|
|
188
|
-
"time taken (ms)": "297.64",
|
|
189
|
-
"executions per sec": "3.36",
|
|
190
|
-
"sample deviation": "0.03"
|
|
191
27
|
},
|
|
192
28
|
{
|
|
193
|
-
"test name": "
|
|
194
|
-
"time taken (ms)": "263.
|
|
29
|
+
"test name": "100,000 add & delete randomly",
|
|
30
|
+
"time taken (ms)": "263.48",
|
|
195
31
|
"executions per sec": "3.80",
|
|
196
|
-
"sample deviation": "0.04"
|
|
197
|
-
}
|
|
198
|
-
],
|
|
199
|
-
"testName": "hash-map"
|
|
200
|
-
},
|
|
201
|
-
"trie": {
|
|
202
|
-
"benchmarks": [
|
|
203
|
-
{
|
|
204
|
-
"test name": "100,000 push",
|
|
205
|
-
"time taken (ms)": "43.65",
|
|
206
|
-
"executions per sec": "22.91",
|
|
207
|
-
"sample deviation": "0.00"
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
"test name": "100,000 getWords",
|
|
211
|
-
"time taken (ms)": "82.64",
|
|
212
|
-
"executions per sec": "12.10",
|
|
213
32
|
"sample deviation": "0.00"
|
|
214
33
|
}
|
|
215
34
|
],
|
|
216
|
-
"testName": "
|
|
217
|
-
},
|
|
218
|
-
"avl-tree": {
|
|
219
|
-
"benchmarks": [
|
|
220
|
-
{
|
|
221
|
-
"test name": "10,000 add randomly",
|
|
222
|
-
"time taken (ms)": "133.02",
|
|
223
|
-
"executions per sec": "7.52",
|
|
224
|
-
"sample deviation": "0.00"
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
"test name": "10,000 get",
|
|
228
|
-
"time taken (ms)": "61.42",
|
|
229
|
-
"executions per sec": "16.28",
|
|
230
|
-
"sample deviation": "5.07e-4"
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
"test name": "10,000 add & delete randomly",
|
|
234
|
-
"time taken (ms)": "204.19",
|
|
235
|
-
"executions per sec": "4.90",
|
|
236
|
-
"sample deviation": "0.00"
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
"test name": "10,000 addMany",
|
|
240
|
-
"time taken (ms)": "142.69",
|
|
241
|
-
"executions per sec": "7.01",
|
|
242
|
-
"sample deviation": "0.00"
|
|
243
|
-
}
|
|
244
|
-
],
|
|
245
|
-
"testName": "avl-tree"
|
|
246
|
-
},
|
|
247
|
-
"binary-tree-overall": {
|
|
248
|
-
"benchmarks": [
|
|
249
|
-
{
|
|
250
|
-
"test name": "10,000 RBTree add",
|
|
251
|
-
"time taken (ms)": "9.28",
|
|
252
|
-
"executions per sec": "107.79",
|
|
253
|
-
"sample deviation": "1.15e-4"
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
"test name": "10,000 RBTree add & delete randomly",
|
|
257
|
-
"time taken (ms)": "60.56",
|
|
258
|
-
"executions per sec": "16.51",
|
|
259
|
-
"sample deviation": "6.63e-4"
|
|
260
|
-
},
|
|
261
|
-
{
|
|
262
|
-
"test name": "10,000 RBTree get",
|
|
263
|
-
"time taken (ms)": "1.11",
|
|
264
|
-
"executions per sec": "902.48",
|
|
265
|
-
"sample deviation": "8.41e-6"
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
"test name": "10,000 AVLTree add",
|
|
269
|
-
"time taken (ms)": "134.17",
|
|
270
|
-
"executions per sec": "7.45",
|
|
271
|
-
"sample deviation": "0.01"
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
"test name": "10,000 AVLTree get",
|
|
275
|
-
"time taken (ms)": "60.97",
|
|
276
|
-
"executions per sec": "16.40",
|
|
277
|
-
"sample deviation": "4.05e-4"
|
|
278
|
-
},
|
|
279
|
-
{
|
|
280
|
-
"test name": "10,000 AVLTree add & delete randomly",
|
|
281
|
-
"time taken (ms)": "201.72",
|
|
282
|
-
"executions per sec": "4.96",
|
|
283
|
-
"sample deviation": "0.00"
|
|
284
|
-
}
|
|
285
|
-
],
|
|
286
|
-
"testName": "binary-tree-overall"
|
|
287
|
-
},
|
|
288
|
-
"directed-graph": {
|
|
289
|
-
"benchmarks": [
|
|
290
|
-
{
|
|
291
|
-
"test name": "1,000 addVertex",
|
|
292
|
-
"time taken (ms)": "0.10",
|
|
293
|
-
"executions per sec": "1.00e+4",
|
|
294
|
-
"sample deviation": "7.24e-7"
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
"test name": "1,000 addEdge",
|
|
298
|
-
"time taken (ms)": "6.20",
|
|
299
|
-
"executions per sec": "161.25",
|
|
300
|
-
"sample deviation": "8.47e-4"
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
"test name": "1,000 getVertex",
|
|
304
|
-
"time taken (ms)": "0.05",
|
|
305
|
-
"executions per sec": "2.17e+4",
|
|
306
|
-
"sample deviation": "3.59e-7"
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
"test name": "1,000 getEdge",
|
|
310
|
-
"time taken (ms)": "22.60",
|
|
311
|
-
"executions per sec": "44.24",
|
|
312
|
-
"sample deviation": "0.00"
|
|
313
|
-
},
|
|
314
|
-
{
|
|
315
|
-
"test name": "tarjan",
|
|
316
|
-
"time taken (ms)": "207.15",
|
|
317
|
-
"executions per sec": "4.83",
|
|
318
|
-
"sample deviation": "0.02"
|
|
319
|
-
},
|
|
320
|
-
{
|
|
321
|
-
"test name": "topologicalSort",
|
|
322
|
-
"time taken (ms)": "175.86",
|
|
323
|
-
"executions per sec": "5.69",
|
|
324
|
-
"sample deviation": "0.00"
|
|
325
|
-
}
|
|
326
|
-
],
|
|
327
|
-
"testName": "directed-graph"
|
|
328
|
-
},
|
|
329
|
-
"doubly-linked-list": {
|
|
330
|
-
"benchmarks": [
|
|
331
|
-
{
|
|
332
|
-
"test name": "1,000,000 push",
|
|
333
|
-
"time taken (ms)": "235.16",
|
|
334
|
-
"executions per sec": "4.25",
|
|
335
|
-
"sample deviation": "0.06"
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
"test name": "1,000,000 unshift",
|
|
339
|
-
"time taken (ms)": "225.37",
|
|
340
|
-
"executions per sec": "4.44",
|
|
341
|
-
"sample deviation": "0.04"
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
"test name": "1,000,000 unshift & shift",
|
|
345
|
-
"time taken (ms)": "170.75",
|
|
346
|
-
"executions per sec": "5.86",
|
|
347
|
-
"sample deviation": "0.03"
|
|
348
|
-
},
|
|
349
|
-
{
|
|
350
|
-
"test name": "1,000,000 addBefore",
|
|
351
|
-
"time taken (ms)": "324.45",
|
|
352
|
-
"executions per sec": "3.08",
|
|
353
|
-
"sample deviation": "0.07"
|
|
354
|
-
}
|
|
355
|
-
],
|
|
356
|
-
"testName": "doubly-linked-list"
|
|
357
|
-
},
|
|
358
|
-
"singly-linked-list": {
|
|
359
|
-
"benchmarks": [
|
|
360
|
-
{
|
|
361
|
-
"test name": "1,000,000 push & shift",
|
|
362
|
-
"time taken (ms)": "215.08",
|
|
363
|
-
"executions per sec": "4.65",
|
|
364
|
-
"sample deviation": "0.07"
|
|
365
|
-
},
|
|
366
|
-
{
|
|
367
|
-
"test name": "10,000 push & pop",
|
|
368
|
-
"time taken (ms)": "212.54",
|
|
369
|
-
"executions per sec": "4.71",
|
|
370
|
-
"sample deviation": "0.01"
|
|
371
|
-
},
|
|
372
|
-
{
|
|
373
|
-
"test name": "10,000 addBefore",
|
|
374
|
-
"time taken (ms)": "250.10",
|
|
375
|
-
"executions per sec": "4.00",
|
|
376
|
-
"sample deviation": "0.01"
|
|
377
|
-
}
|
|
378
|
-
],
|
|
379
|
-
"testName": "singly-linked-list"
|
|
380
|
-
},
|
|
381
|
-
"priority-queue": {
|
|
382
|
-
"benchmarks": [
|
|
383
|
-
{
|
|
384
|
-
"test name": "100,000 add",
|
|
385
|
-
"time taken (ms)": "26.71",
|
|
386
|
-
"executions per sec": "37.44",
|
|
387
|
-
"sample deviation": "2.40e-4"
|
|
388
|
-
},
|
|
389
|
-
{
|
|
390
|
-
"test name": "100,000 add & poll",
|
|
391
|
-
"time taken (ms)": "74.78",
|
|
392
|
-
"executions per sec": "13.37",
|
|
393
|
-
"sample deviation": "5.52e-4"
|
|
394
|
-
}
|
|
395
|
-
],
|
|
396
|
-
"testName": "priority-queue"
|
|
397
|
-
},
|
|
398
|
-
"stack": {
|
|
399
|
-
"benchmarks": [
|
|
400
|
-
{
|
|
401
|
-
"test name": "1,000,000 push",
|
|
402
|
-
"time taken (ms)": "37.19",
|
|
403
|
-
"executions per sec": "26.89",
|
|
404
|
-
"sample deviation": "0.00"
|
|
405
|
-
},
|
|
406
|
-
{
|
|
407
|
-
"test name": "1,000,000 push & pop",
|
|
408
|
-
"time taken (ms)": "46.11",
|
|
409
|
-
"executions per sec": "21.69",
|
|
410
|
-
"sample deviation": "0.00"
|
|
411
|
-
}
|
|
412
|
-
],
|
|
413
|
-
"testName": "stack"
|
|
35
|
+
"testName": "rb-tree"
|
|
414
36
|
}
|
|
415
37
|
}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
8
|
import type { AVLTreeMultiMapNested, AVLTreeMultiMapNodeNested, AVLTreeMultiMapOptions, BinaryTreeDeleteResult, BSTNKeyOrNode, BTNCallback, KeyOrNodeOrEntry } from '../../types';
|
|
9
|
-
import { IterationType } from '../../types';
|
|
10
9
|
import { IBinaryTree } from '../../interfaces';
|
|
11
10
|
import { AVLTree, AVLTreeNode } from './avl-tree';
|
|
12
11
|
export declare class AVLTreeMultiMapNode<K = any, V = any, NODE extends AVLTreeMultiMapNode<K, V, NODE> = AVLTreeMultiMapNodeNested<K, V>> extends AVLTreeNode<K, V, NODE> {
|
|
@@ -157,7 +156,7 @@ export declare class AVLTreeMultiMap<K = any, V = any, NODE extends AVLTreeMulti
|
|
|
157
156
|
* values:
|
|
158
157
|
* @returns a boolean value.
|
|
159
158
|
*/
|
|
160
|
-
perfectlyBalance(iterationType?: IterationType): boolean;
|
|
159
|
+
perfectlyBalance(iterationType?: import("../../types").IterationType): boolean;
|
|
161
160
|
/**
|
|
162
161
|
* Time complexity: O(n)
|
|
163
162
|
* Space complexity: O(n)
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AVLTreeMultiMap = exports.AVLTreeMultiMapNode = void 0;
|
|
4
|
-
const types_1 = require("../../types");
|
|
5
4
|
const avl_tree_1 = require("./avl-tree");
|
|
6
5
|
class AVLTreeMultiMapNode extends avl_tree_1.AVLTreeNode {
|
|
7
6
|
/**
|
|
@@ -205,10 +204,10 @@ class AVLTreeMultiMap extends avl_tree_1.AVLTree {
|
|
|
205
204
|
}
|
|
206
205
|
else {
|
|
207
206
|
const { familyPosition: fp } = curr;
|
|
208
|
-
if (fp ===
|
|
207
|
+
if (fp === 'LEFT' || fp === 'ROOT_LEFT') {
|
|
209
208
|
parent.left = curr.right;
|
|
210
209
|
}
|
|
211
|
-
else if (fp ===
|
|
210
|
+
else if (fp === 'RIGHT' || fp === 'ROOT_RIGHT') {
|
|
212
211
|
parent.right = curr.right;
|
|
213
212
|
}
|
|
214
213
|
needBalanced = parent;
|
|
@@ -275,7 +274,7 @@ class AVLTreeMultiMap extends avl_tree_1.AVLTree {
|
|
|
275
274
|
if (sorted.length < 1)
|
|
276
275
|
return false;
|
|
277
276
|
this.clear();
|
|
278
|
-
if (iterationType ===
|
|
277
|
+
if (iterationType === 'RECURSIVE') {
|
|
279
278
|
const buildBalanceBST = (l, r) => {
|
|
280
279
|
if (l > r)
|
|
281
280
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avl-tree-multi-map.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/avl-tree-multi-map.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"avl-tree-multi-map.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/avl-tree-multi-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -135,11 +135,11 @@ export declare class BinaryTree<K = any, V = any, NODE extends BinaryTreeNode<K,
|
|
|
135
135
|
* `null`, or `undefined`. It represents a key used to identify a node in a binary tree.
|
|
136
136
|
* @param iterationType - The `iterationType` parameter is an optional parameter that specifies the
|
|
137
137
|
* type of iteration to be used when searching for a node by key. It has a default value of
|
|
138
|
-
* `
|
|
138
|
+
* `'ITERATIVE'`.
|
|
139
139
|
* @returns either the node corresponding to the given key if it is a valid node key, or the key
|
|
140
140
|
* itself if it is not a valid node key.
|
|
141
141
|
*/
|
|
142
|
-
ensureNode(keyOrNodeOrEntry: KeyOrNodeOrEntry<K, V, NODE>, iterationType?:
|
|
142
|
+
ensureNode(keyOrNodeOrEntry: KeyOrNodeOrEntry<K, V, NODE>, iterationType?: string): NODE | null | undefined;
|
|
143
143
|
/**
|
|
144
144
|
* The function "isNode" checks if an keyOrNodeOrEntry is an instance of the BinaryTreeNode class.
|
|
145
145
|
* @param keyOrNodeOrEntry - The `keyOrNodeOrEntry` parameter is a variable of type `KeyOrNodeOrEntry<K, V,NODE>`.
|
|
@@ -248,7 +248,7 @@ export declare class BinaryTree<K = any, V = any, NODE extends BinaryTreeNode<K,
|
|
|
248
248
|
* @returns The function `getNodeByKey` returns a node (`NODE`) if a node with the specified key is
|
|
249
249
|
* found in the binary tree. If no node is found, it returns `undefined`.
|
|
250
250
|
*/
|
|
251
|
-
getNodeByKey(key: K, iterationType?:
|
|
251
|
+
getNodeByKey(key: K, iterationType?: string): NODE | undefined;
|
|
252
252
|
get<C extends BTNCallback<NODE, K>>(identifier: K, callback?: C, beginRoot?: KeyOrNodeOrEntry<K, V, NODE>, iterationType?: IterationType): V | undefined;
|
|
253
253
|
get<C extends BTNCallback<NODE, NODE>>(identifier: NODE | null | undefined, callback?: C, beginRoot?: KeyOrNodeOrEntry<K, V, NODE>, iterationType?: IterationType): V | undefined;
|
|
254
254
|
get<C extends BTNCallback<NODE>>(identifier: ReturnType<C>, callback: C, beginRoot?: KeyOrNodeOrEntry<K, V, NODE>, iterationType?: IterationType): V | undefined;
|