data-structure-typed 1.51.5 → 1.51.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.
- package/CHANGELOG.md +3 -1
- package/README.md +17 -16
- package/benchmark/report.html +37 -1
- package/benchmark/report.json +405 -3
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +1 -0
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +0 -2
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +2 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +24 -46
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +19 -19
- package/dist/cjs/data-structures/binary-tree/bst.js +59 -89
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +10 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +19 -0
- package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +1 -0
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js +1 -0
- package/dist/mjs/data-structures/binary-tree/avl-tree.js +0 -2
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +2 -1
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +23 -45
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +19 -19
- package/dist/mjs/data-structures/binary-tree/bst.js +59 -89
- package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +10 -1
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +19 -0
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +1 -0
- package/dist/umd/data-structure-typed.js +98 -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 +1 -0
- package/src/data-structures/binary-tree/avl-tree.ts +0 -1
- package/src/data-structures/binary-tree/binary-tree.ts +27 -38
- package/src/data-structures/binary-tree/bst.ts +59 -81
- package/src/data-structures/binary-tree/rb-tree.ts +19 -2
- package/src/data-structures/binary-tree/tree-multi-map.ts +1 -0
- package/test/performance/data-structures/binary-tree/binary-tree-overall.test.ts +7 -7
package/benchmark/report.json
CHANGED
|
@@ -1,13 +1,415 @@
|
|
|
1
1
|
{
|
|
2
|
+
"heap": {
|
|
3
|
+
"benchmarks": [
|
|
4
|
+
{
|
|
5
|
+
"test name": "100,000 add",
|
|
6
|
+
"time taken (ms)": "6.42",
|
|
7
|
+
"executions per sec": "155.78",
|
|
8
|
+
"sample deviation": "1.88e-4"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"test name": "100,000 add & poll",
|
|
12
|
+
"time taken (ms)": "31.60",
|
|
13
|
+
"executions per sec": "31.65",
|
|
14
|
+
"sample deviation": "9.13e-4"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"testName": "heap"
|
|
18
|
+
},
|
|
19
|
+
"rb-tree": {
|
|
20
|
+
"benchmarks": [
|
|
21
|
+
{
|
|
22
|
+
"test name": "100,000 add",
|
|
23
|
+
"time taken (ms)": "59.28",
|
|
24
|
+
"executions per sec": "16.87",
|
|
25
|
+
"sample deviation": "7.81e-4"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"test name": "100,000 add randomly",
|
|
29
|
+
"time taken (ms)": "71.61",
|
|
30
|
+
"executions per sec": "13.96",
|
|
31
|
+
"sample deviation": "9.02e-4"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"test name": "100,000 get",
|
|
35
|
+
"time taken (ms)": "104.13",
|
|
36
|
+
"executions per sec": "9.60",
|
|
37
|
+
"sample deviation": "0.00"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"test name": "100,000 iterator",
|
|
41
|
+
"time taken (ms)": "27.03",
|
|
42
|
+
"executions per sec": "37.00",
|
|
43
|
+
"sample deviation": "0.00"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"test name": "100,000 add & delete orderly",
|
|
47
|
+
"time taken (ms)": "126.42",
|
|
48
|
+
"executions per sec": "7.91",
|
|
49
|
+
"sample deviation": "0.00"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"test name": "100,000 add & delete randomly",
|
|
53
|
+
"time taken (ms)": "214.36",
|
|
54
|
+
"executions per sec": "4.66",
|
|
55
|
+
"sample deviation": "0.00"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"testName": "rb-tree"
|
|
59
|
+
},
|
|
60
|
+
"queue": {
|
|
61
|
+
"benchmarks": [
|
|
62
|
+
{
|
|
63
|
+
"test name": "1,000,000 push",
|
|
64
|
+
"time taken (ms)": "44.98",
|
|
65
|
+
"executions per sec": "22.23",
|
|
66
|
+
"sample deviation": "0.01"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"test name": "100,000 push & shift",
|
|
70
|
+
"time taken (ms)": "4.89",
|
|
71
|
+
"executions per sec": "204.39",
|
|
72
|
+
"sample deviation": "6.15e-4"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"test name": "Native JS Array 100,000 push & shift",
|
|
76
|
+
"time taken (ms)": "2251.13",
|
|
77
|
+
"executions per sec": "0.44",
|
|
78
|
+
"sample deviation": "0.26"
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"testName": "queue"
|
|
82
|
+
},
|
|
83
|
+
"deque": {
|
|
84
|
+
"benchmarks": [
|
|
85
|
+
{
|
|
86
|
+
"test name": "1,000,000 push",
|
|
87
|
+
"time taken (ms)": "22.21",
|
|
88
|
+
"executions per sec": "45.02",
|
|
89
|
+
"sample deviation": "0.00"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"test name": "1,000,000 push & pop",
|
|
93
|
+
"time taken (ms)": "30.97",
|
|
94
|
+
"executions per sec": "32.29",
|
|
95
|
+
"sample deviation": "0.00"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"test name": "1,000,000 push & shift",
|
|
99
|
+
"time taken (ms)": "30.81",
|
|
100
|
+
"executions per sec": "32.46",
|
|
101
|
+
"sample deviation": "0.00"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"test name": "100,000 push & shift",
|
|
105
|
+
"time taken (ms)": "3.24",
|
|
106
|
+
"executions per sec": "308.25",
|
|
107
|
+
"sample deviation": "2.08e-4"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"test name": "Native JS Array 100,000 push & shift",
|
|
111
|
+
"time taken (ms)": "2279.95",
|
|
112
|
+
"executions per sec": "0.44",
|
|
113
|
+
"sample deviation": "0.21"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"test name": "100,000 unshift & shift",
|
|
117
|
+
"time taken (ms)": "2.93",
|
|
118
|
+
"executions per sec": "341.78",
|
|
119
|
+
"sample deviation": "3.21e-4"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"test name": "Native JS Array 100,000 unshift & shift",
|
|
123
|
+
"time taken (ms)": "4076.04",
|
|
124
|
+
"executions per sec": "0.25",
|
|
125
|
+
"sample deviation": "0.42"
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"testName": "deque"
|
|
129
|
+
},
|
|
130
|
+
"hash-map": {
|
|
131
|
+
"benchmarks": [
|
|
132
|
+
{
|
|
133
|
+
"test name": "1,000,000 set",
|
|
134
|
+
"time taken (ms)": "118.11",
|
|
135
|
+
"executions per sec": "8.47",
|
|
136
|
+
"sample deviation": "0.02"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"test name": "Native JS Map 1,000,000 set",
|
|
140
|
+
"time taken (ms)": "206.18",
|
|
141
|
+
"executions per sec": "4.85",
|
|
142
|
+
"sample deviation": "0.01"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"test name": "Native JS Set 1,000,000 add",
|
|
146
|
+
"time taken (ms)": "167.50",
|
|
147
|
+
"executions per sec": "5.97",
|
|
148
|
+
"sample deviation": "0.01"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"test name": "1,000,000 set & get",
|
|
152
|
+
"time taken (ms)": "116.15",
|
|
153
|
+
"executions per sec": "8.61",
|
|
154
|
+
"sample deviation": "0.01"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"test name": "Native JS Map 1,000,000 set & get",
|
|
158
|
+
"time taken (ms)": "269.11",
|
|
159
|
+
"executions per sec": "3.72",
|
|
160
|
+
"sample deviation": "0.02"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"test name": "Native JS Set 1,000,000 add & has",
|
|
164
|
+
"time taken (ms)": "168.02",
|
|
165
|
+
"executions per sec": "5.95",
|
|
166
|
+
"sample deviation": "0.01"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"test name": "1,000,000 ObjKey set & get",
|
|
170
|
+
"time taken (ms)": "335.36",
|
|
171
|
+
"executions per sec": "2.98",
|
|
172
|
+
"sample deviation": "0.04"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"test name": "Native JS Map 1,000,000 ObjKey set & get",
|
|
176
|
+
"time taken (ms)": "327.78",
|
|
177
|
+
"executions per sec": "3.05",
|
|
178
|
+
"sample deviation": "0.06"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"test name": "Native JS Set 1,000,000 ObjKey add & has",
|
|
182
|
+
"time taken (ms)": "281.64",
|
|
183
|
+
"executions per sec": "3.55",
|
|
184
|
+
"sample deviation": "0.04"
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"testName": "hash-map"
|
|
188
|
+
},
|
|
189
|
+
"trie": {
|
|
190
|
+
"benchmarks": [
|
|
191
|
+
{
|
|
192
|
+
"test name": "100,000 push",
|
|
193
|
+
"time taken (ms)": "43.64",
|
|
194
|
+
"executions per sec": "22.91",
|
|
195
|
+
"sample deviation": "8.01e-4"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"test name": "100,000 getWords",
|
|
199
|
+
"time taken (ms)": "82.95",
|
|
200
|
+
"executions per sec": "12.06",
|
|
201
|
+
"sample deviation": "0.00"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"testName": "trie"
|
|
205
|
+
},
|
|
2
206
|
"avl-tree": {
|
|
3
207
|
"benchmarks": [
|
|
208
|
+
{
|
|
209
|
+
"test name": "100,000 add",
|
|
210
|
+
"time taken (ms)": "263.01",
|
|
211
|
+
"executions per sec": "3.80",
|
|
212
|
+
"sample deviation": "0.02"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"test name": "100,000 add randomly",
|
|
216
|
+
"time taken (ms)": "353.89",
|
|
217
|
+
"executions per sec": "2.83",
|
|
218
|
+
"sample deviation": "0.01"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"test name": "100,000 get",
|
|
222
|
+
"time taken (ms)": "131.65",
|
|
223
|
+
"executions per sec": "7.60",
|
|
224
|
+
"sample deviation": "0.00"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"test name": "100,000 iterator",
|
|
228
|
+
"time taken (ms)": "31.62",
|
|
229
|
+
"executions per sec": "31.63",
|
|
230
|
+
"sample deviation": "0.01"
|
|
231
|
+
},
|
|
4
232
|
{
|
|
5
233
|
"test name": "100,000 add & delete orderly",
|
|
6
|
-
"time taken (ms)": "
|
|
7
|
-
"executions per sec": "
|
|
8
|
-
"sample deviation": "0.
|
|
234
|
+
"time taken (ms)": "468.81",
|
|
235
|
+
"executions per sec": "2.13",
|
|
236
|
+
"sample deviation": "0.00"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"test name": "100,000 add & delete randomly",
|
|
240
|
+
"time taken (ms)": "628.30",
|
|
241
|
+
"executions per sec": "1.59",
|
|
242
|
+
"sample deviation": "0.03"
|
|
9
243
|
}
|
|
10
244
|
],
|
|
11
245
|
"testName": "avl-tree"
|
|
246
|
+
},
|
|
247
|
+
"binary-tree-overall": {
|
|
248
|
+
"benchmarks": [
|
|
249
|
+
{
|
|
250
|
+
"test name": "10,000 RBTree add randomly",
|
|
251
|
+
"time taken (ms)": "5.79",
|
|
252
|
+
"executions per sec": "172.73",
|
|
253
|
+
"sample deviation": "7.35e-5"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"test name": "10,000 RBTree get randomly",
|
|
257
|
+
"time taken (ms)": "9.58",
|
|
258
|
+
"executions per sec": "104.37",
|
|
259
|
+
"sample deviation": "9.96e-5"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"test name": "10,000 RBTree add & delete randomly",
|
|
263
|
+
"time taken (ms)": "17.82",
|
|
264
|
+
"executions per sec": "56.12",
|
|
265
|
+
"sample deviation": "1.90e-4"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"test name": "10,000 AVLTree add randomly",
|
|
269
|
+
"time taken (ms)": "27.85",
|
|
270
|
+
"executions per sec": "35.91",
|
|
271
|
+
"sample deviation": "3.16e-4"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"test name": "10,000 AVLTree get randomly",
|
|
275
|
+
"time taken (ms)": "10.73",
|
|
276
|
+
"executions per sec": "93.19",
|
|
277
|
+
"sample deviation": "6.38e-5"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"test name": "10,000 AVLTree add & delete randomly",
|
|
281
|
+
"time taken (ms)": "48.98",
|
|
282
|
+
"executions per sec": "20.42",
|
|
283
|
+
"sample deviation": "3.91e-4"
|
|
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": "9624.60",
|
|
294
|
+
"sample deviation": "7.61e-7"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"test name": "1,000 addEdge",
|
|
298
|
+
"time taken (ms)": "6.02",
|
|
299
|
+
"executions per sec": "166.18",
|
|
300
|
+
"sample deviation": "1.45e-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.52e-7"
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"test name": "1,000 getEdge",
|
|
310
|
+
"time taken (ms)": "23.88",
|
|
311
|
+
"executions per sec": "41.88",
|
|
312
|
+
"sample deviation": "0.00"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"test name": "tarjan",
|
|
316
|
+
"time taken (ms)": "215.08",
|
|
317
|
+
"executions per sec": "4.65",
|
|
318
|
+
"sample deviation": "0.01"
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"test name": "topologicalSort",
|
|
322
|
+
"time taken (ms)": "187.83",
|
|
323
|
+
"executions per sec": "5.32",
|
|
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)": "221.69",
|
|
334
|
+
"executions per sec": "4.51",
|
|
335
|
+
"sample deviation": "0.03"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"test name": "1,000,000 unshift",
|
|
339
|
+
"time taken (ms)": "227.33",
|
|
340
|
+
"executions per sec": "4.40",
|
|
341
|
+
"sample deviation": "0.07"
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"test name": "1,000,000 unshift & shift",
|
|
345
|
+
"time taken (ms)": "170.08",
|
|
346
|
+
"executions per sec": "5.88",
|
|
347
|
+
"sample deviation": "0.02"
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"test name": "1,000,000 addBefore",
|
|
351
|
+
"time taken (ms)": "321.29",
|
|
352
|
+
"executions per sec": "3.11",
|
|
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)": "213.14",
|
|
363
|
+
"executions per sec": "4.69",
|
|
364
|
+
"sample deviation": "0.04"
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"test name": "10,000 push & pop",
|
|
368
|
+
"time taken (ms)": "217.84",
|
|
369
|
+
"executions per sec": "4.59",
|
|
370
|
+
"sample deviation": "0.01"
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"test name": "10,000 addBefore",
|
|
374
|
+
"time taken (ms)": "250.81",
|
|
375
|
+
"executions per sec": "3.99",
|
|
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.91",
|
|
386
|
+
"executions per sec": "37.16",
|
|
387
|
+
"sample deviation": "1.96e-4"
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"test name": "100,000 add & poll",
|
|
391
|
+
"time taken (ms)": "75.09",
|
|
392
|
+
"executions per sec": "13.32",
|
|
393
|
+
"sample deviation": "5.04e-4"
|
|
394
|
+
}
|
|
395
|
+
],
|
|
396
|
+
"testName": "priority-queue"
|
|
397
|
+
},
|
|
398
|
+
"stack": {
|
|
399
|
+
"benchmarks": [
|
|
400
|
+
{
|
|
401
|
+
"test name": "1,000,000 push",
|
|
402
|
+
"time taken (ms)": "39.92",
|
|
403
|
+
"executions per sec": "25.05",
|
|
404
|
+
"sample deviation": "0.01"
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"test name": "1,000,000 push & pop",
|
|
408
|
+
"time taken (ms)": "48.08",
|
|
409
|
+
"executions per sec": "20.80",
|
|
410
|
+
"sample deviation": "0.01"
|
|
411
|
+
}
|
|
412
|
+
],
|
|
413
|
+
"testName": "stack"
|
|
12
414
|
}
|
|
13
415
|
}
|
|
@@ -199,6 +199,7 @@ class AVLTreeMultiMap extends avl_tree_1.AVLTree {
|
|
|
199
199
|
const deletedResult = [];
|
|
200
200
|
if (!this.root)
|
|
201
201
|
return deletedResult;
|
|
202
|
+
callback = this._ensureCallback(identifier, callback);
|
|
202
203
|
const curr = (_a = this.getNode(identifier, callback)) !== null && _a !== void 0 ? _a : undefined;
|
|
203
204
|
if (!curr)
|
|
204
205
|
return deletedResult;
|
|
@@ -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":";;;AAkBA,yCAAkD;AAElD,MAAa,mBAIX,SAAQ,sBAAuB;IAC/B;;;;;;;;;OASG;IACH,YAAY,GAAM,EAAE,KAAS,EAAE,KAAK,GAAG,CAAC;QACtC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAIV,WAAM,GAAW,CAAC,CAAC;QAH3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAID;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CACF;AAtCD,kDAsCC;AAED;;GAEG;AACH,MAAa,eAMX,SAAQ,kBAAyB;IAEjC,YAAY,uBAA+D,EAAE,EAAE,OAAmC;QAChH,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAIX,WAAM,GAAG,CAAC,CAAC;QAHnB,IAAI,oBAAoB;YAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/D,CAAC;IAID,6DAA6D;IAC7D;;;;OAIG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,gBAAgB;QACd,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;OAQG;IACM,UAAU,CAAC,GAAM,EAAE,KAAS,EAAE,KAAc;QACnD,OAAO,IAAI,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAS,CAAC;IAC5D,CAAC;IAED;;;;;;;;OAQG;IACM,UAAU,CAAC,OAAmC;QACrD,OAAO,IAAI,eAAe,CAAmB,EAAE,kBAC7C,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO,IAClB,OAAO,EACF,CAAC;IACb,CAAC;IAED;;;;;;;;;;OAUG;IACM,qBAAqB,CAC5B,gBAA8C,EAC9C,KAAS,EACT,KAAK,GAAG,CAAC;QAET,IAAI,IAAsB,CAAC;QAC3B,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAChE,OAAO;QACT,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACzC,IAAI,GAAG,gBAAgB,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,gBAAgB,CAAC;YACtC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACtC,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,OAAO;QACT,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACM,MAAM,CAAC,gBAA8C;QAC5D,OAAO,gBAAgB,YAAY,mBAAmB,CAAC;IACzD,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;OAeG;IACM,GAAG,CAAC,gBAA8C,EAAE,KAAS,EAAE,KAAK,GAAG,CAAC;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAExC,MAAM,YAAY,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;;;;OAkBG;IACM,MAAM,CACb,UAAyB,EACzB,WAAc,IAAI,CAAC,iBAAsB,EACzC,WAAW,GAAG,KAAK;;QAEnB,MAAM,aAAa,GAAmC,EAAE,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,aAAa,CAAC;
|
|
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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"}
|
|
@@ -138,8 +138,6 @@ class AVLTree extends bst_1.BST {
|
|
|
138
138
|
* @returns The method is returning an array of `BinaryTreeDeleteResult<NODE>`.
|
|
139
139
|
*/
|
|
140
140
|
delete(identifier, callback = this._DEFAULT_CALLBACK) {
|
|
141
|
-
if (identifier instanceof AVLTreeNode)
|
|
142
|
-
callback = (node => node);
|
|
143
141
|
const deletedResults = super.delete(identifier, callback);
|
|
144
142
|
for (const { needBalanced } of deletedResults) {
|
|
145
143
|
if (needBalanced) {
|
|
@@ -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;AAYrC,MAAa,WAIX,SAAQ,aAAmB;IAC3B;;;;;;;OAOG;IACH,YAAY,GAAM,EAAE,KAAS;QAC3B,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAID;;;OAGG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;CACF;AApCD,kCAoCC;AAED;;;;;;;;GAQG;AACH,MAAa,OAMX,SAAQ,SAAqB;IAE7B;;;;;;;;OAQG;IACH,YAAY,uBAA+D,EAAE,EAAE,OAA2B;QACxG,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnB,IAAI,oBAAoB;YAAE,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;OAQG;IACM,UAAU,CAAC,GAAM,EAAE,KAAS;QACnC,OAAO,IAAI,WAAW,CAAa,GAAG,EAAE,KAAK,CAAS,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACM,UAAU,CAAC,OAA2B;QAC7C,OAAO,IAAI,OAAO,CAAmB,EAAE,kBACrC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO,IAClB,OAAO,EACF,CAAC;IACb,CAAC;IAED;;;;OAIG;IACM,MAAM,CAAC,gBAA8C;QAC5D,OAAO,gBAAgB,YAAY,WAAW,CAAC;IACjD,CAAC;IAED;;;;OAIG;IAEH;;;;;;;;;;;OAWG;IACM,GAAG,CAAC,gBAA8C,EAAE,KAAS;QACpE,IAAI,gBAAgB,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,QAAQ;YAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;OAcG;IACM,MAAM,CACb,UAAyB,EACzB,WAAc,IAAI,CAAC,iBAAsB;QAEzC,
|
|
1
|
+
{"version":3,"file":"avl-tree.js","sourceRoot":"","sources":["../../../../src/data-structures/binary-tree/avl-tree.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,+BAAqC;AAYrC,MAAa,WAIX,SAAQ,aAAmB;IAC3B;;;;;;;OAOG;IACH,YAAY,GAAM,EAAE,KAAS;QAC3B,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAID;;;OAGG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;CACF;AApCD,kCAoCC;AAED;;;;;;;;GAQG;AACH,MAAa,OAMX,SAAQ,SAAqB;IAE7B;;;;;;;;OAQG;IACH,YAAY,uBAA+D,EAAE,EAAE,OAA2B;QACxG,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnB,IAAI,oBAAoB;YAAE,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;OAQG;IACM,UAAU,CAAC,GAAM,EAAE,KAAS;QACnC,OAAO,IAAI,WAAW,CAAa,GAAG,EAAE,KAAK,CAAS,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACM,UAAU,CAAC,OAA2B;QAC7C,OAAO,IAAI,OAAO,CAAmB,EAAE,kBACrC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO,IAClB,OAAO,EACF,CAAC;IACb,CAAC;IAED;;;;OAIG;IACM,MAAM,CAAC,gBAA8C;QAC5D,OAAO,gBAAgB,YAAY,WAAW,CAAC;IACjD,CAAC;IAED;;;;OAIG;IAEH;;;;;;;;;;;OAWG;IACM,GAAG,CAAC,gBAA8C,EAAE,KAAS;QACpE,IAAI,gBAAgB,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,QAAQ;YAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;OAcG;IACM,MAAM,CACb,UAAyB,EACzB,WAAc,IAAI,CAAC,iBAAsB;QAEzC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,KAAK,MAAM,EAAE,YAAY,EAAE,IAAI,cAAc,EAAE,CAAC;YAC9C,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;;;;;;;OASG;IACgB,eAAe,CAChC,OAA+B,EAC/B,QAAgC;QAEhC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE7C,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;gBAEzB,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;gBAC3B,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC/B,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAEjC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC3B,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC/B,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YACnC,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACO,cAAc,CAAC,IAAU;QACjC,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;;;OAGG;IAEH;;;;;;;OAOG;IACO,aAAa,CAAC,IAAU;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,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;QAChC,CAAC;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;;;OAGG;IAEH;;;;;;OAMG;IACO,UAAU,CAAC,CAAO;QAC1B,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,CAAC;YACjB,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,CAAC;YAAE,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,CAAC,EAAE,CAAC;gBAC1B,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,SAAS;oBAAE,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,EAAE,CAAC;YACN,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;YACjB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACO,UAAU,CAAC,CAAO;QAC1B,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,CAAC;YACN,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,EAAE,CAAC;YACN,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACZ,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACzB,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,EAAE,CAAC;YACN,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;QACd,CAAC;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;IAEH;;;;;;OAMG;IACO,UAAU,CAAC,CAAO;QAC1B,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,CAAC;YACN,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACzB,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,EAAE,CAAC;YACN,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;YACjB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACb,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACO,UAAU,CAAC,CAAO;QAC1B,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,CAAC;YACN,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACb,CAAC;QAED,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACb,IAAI,CAAC;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,EAAE,CAAC;YACN,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACZ,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACzB,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;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;IAED;;;;OAIG;IAEH;;;;;;;;OAQG;IACO,YAAY,CAAC,IAAkC;QACvD,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7B,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,CAAC;YACrC,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;cACnC,CAAC;gBACH,KAAK,CAAC,CAAC;oBACL,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;wBAChB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BACrC,cAAc;4BACd,wHAAwH;4BACxH,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACrB,CAAC;6BAAM,CAAC;4BACN,+HAA+H;4BAC/H,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR,KAAK,CAAC,CAAC;oBACL,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;wBACjB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;4BACtC,2HAA2H;4BAC3H,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACrB,CAAC;6BAAM,CAAC;4BACN,+HAA+H;4BAC/H,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC;YACL,CAAC;YACD,oRAAoR;QACtR,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACgB,YAAY,CAAC,OAAa,EAAE,OAAa;QAC1D,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAEhC,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF;AA9cD,0BA8cC"}
|
|
@@ -254,7 +254,7 @@ export declare class BinaryTree<K = any, V = any, NODE extends BinaryTreeNode<K,
|
|
|
254
254
|
* @returns The function `getNodeByKey` returns a node (`NODE`) if a node with the specified key is
|
|
255
255
|
* found in the binary tree. If no node is found, it returns `undefined`.
|
|
256
256
|
*/
|
|
257
|
-
getNodeByKey(key: K, iterationType?: IterationType): NODE | undefined;
|
|
257
|
+
getNodeByKey(key: K, iterationType?: IterationType): NODE | null | undefined;
|
|
258
258
|
get<C extends BTNCallback<NODE, K>>(identifier: K, callback?: C, beginRoot?: KeyOrNodeOrEntry<K, V, NODE>, iterationType?: IterationType): V | undefined;
|
|
259
259
|
get<C extends BTNCallback<NODE, NODE>>(identifier: NODE | null | undefined, callback?: C, beginRoot?: KeyOrNodeOrEntry<K, V, NODE>, iterationType?: IterationType): V | undefined;
|
|
260
260
|
get<C extends BTNCallback<NODE>>(identifier: ReturnType<C>, callback: C, beginRoot?: KeyOrNodeOrEntry<K, V, NODE>, iterationType?: IterationType): V | undefined;
|
|
@@ -606,4 +606,5 @@ export declare class BinaryTree<K = any, V = any, NODE extends BinaryTreeNode<K,
|
|
|
606
606
|
* type `NODE` or `null`.
|
|
607
607
|
*/
|
|
608
608
|
protected _setRoot(v: NODE | null | undefined): void;
|
|
609
|
+
protected _ensureCallback<C extends BTNCallback<NODE>>(identifier: ReturnType<C> | null | undefined, callback?: C): C;
|
|
609
610
|
}
|
|
@@ -225,23 +225,24 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
225
225
|
* itself if it is not a valid node key.
|
|
226
226
|
*/
|
|
227
227
|
ensureNode(keyOrNodeOrEntry, iterationType = 'ITERATIVE') {
|
|
228
|
+
if (keyOrNodeOrEntry === this.NIL)
|
|
229
|
+
return;
|
|
228
230
|
if (this.isRealNode(keyOrNodeOrEntry)) {
|
|
229
231
|
return keyOrNodeOrEntry;
|
|
230
232
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
if (keyOrNodeOrEntry[0] === undefined)
|
|
235
|
-
return;
|
|
236
|
-
return this.getNodeByKey(keyOrNodeOrEntry[0], iterationType);
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
if (keyOrNodeOrEntry === null)
|
|
233
|
+
if (this.isEntry(keyOrNodeOrEntry)) {
|
|
234
|
+
const key = keyOrNodeOrEntry[0];
|
|
235
|
+
if (key === null)
|
|
240
236
|
return null;
|
|
241
|
-
if (
|
|
237
|
+
if (key === undefined)
|
|
242
238
|
return;
|
|
243
|
-
return this.getNodeByKey(
|
|
239
|
+
return this.getNodeByKey(key, iterationType);
|
|
244
240
|
}
|
|
241
|
+
if (keyOrNodeOrEntry === null)
|
|
242
|
+
return null;
|
|
243
|
+
if (keyOrNodeOrEntry === undefined)
|
|
244
|
+
return;
|
|
245
|
+
return this.getNodeByKey(keyOrNodeOrEntry, iterationType);
|
|
245
246
|
}
|
|
246
247
|
/**
|
|
247
248
|
* The function checks if a given node is a real node or null.
|
|
@@ -426,8 +427,7 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
426
427
|
const deletedResult = [];
|
|
427
428
|
if (!this.root)
|
|
428
429
|
return deletedResult;
|
|
429
|
-
|
|
430
|
-
callback = (node => node);
|
|
430
|
+
callback = this._ensureCallback(identifier, callback);
|
|
431
431
|
const curr = this.getNode(identifier, callback);
|
|
432
432
|
if (!curr)
|
|
433
433
|
return deletedResult;
|
|
@@ -499,11 +499,10 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
499
499
|
* @returns an array of nodes of type `NODE`.
|
|
500
500
|
*/
|
|
501
501
|
getNodes(identifier, callback = this._DEFAULT_CALLBACK, onlyOne = false, beginRoot = this.root, iterationType = this.iterationType) {
|
|
502
|
-
if ((!callback || callback === this._DEFAULT_CALLBACK) && identifier instanceof BinaryTreeNode)
|
|
503
|
-
callback = (node => node);
|
|
504
502
|
beginRoot = this.ensureNode(beginRoot);
|
|
505
503
|
if (!beginRoot)
|
|
506
504
|
return [];
|
|
505
|
+
callback = this._ensureCallback(identifier, callback);
|
|
507
506
|
const ans = [];
|
|
508
507
|
if (iterationType === 'RECURSIVE') {
|
|
509
508
|
const dfs = (cur) => {
|
|
@@ -584,33 +583,7 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
584
583
|
* found in the binary tree. If no node is found, it returns `undefined`.
|
|
585
584
|
*/
|
|
586
585
|
getNodeByKey(key, iterationType = 'ITERATIVE') {
|
|
587
|
-
|
|
588
|
-
return undefined;
|
|
589
|
-
if (iterationType === 'RECURSIVE') {
|
|
590
|
-
const dfs = (cur) => {
|
|
591
|
-
if (cur.key === key)
|
|
592
|
-
return cur;
|
|
593
|
-
if (!cur.left && !cur.right)
|
|
594
|
-
return;
|
|
595
|
-
if (cur.left)
|
|
596
|
-
return dfs(cur.left);
|
|
597
|
-
if (cur.right)
|
|
598
|
-
return dfs(cur.right);
|
|
599
|
-
};
|
|
600
|
-
return dfs(this.root);
|
|
601
|
-
}
|
|
602
|
-
else {
|
|
603
|
-
const stack = [this.root];
|
|
604
|
-
while (stack.length > 0) {
|
|
605
|
-
const cur = stack.pop();
|
|
606
|
-
if (cur) {
|
|
607
|
-
if (cur.key === key)
|
|
608
|
-
return cur;
|
|
609
|
-
cur.left && stack.push(cur.left);
|
|
610
|
-
cur.right && stack.push(cur.right);
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
|
-
}
|
|
586
|
+
return this.getNode(key, this._DEFAULT_CALLBACK, this.root, iterationType);
|
|
614
587
|
}
|
|
615
588
|
/**
|
|
616
589
|
* Time Complexity: O(n)
|
|
@@ -639,8 +612,8 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
639
612
|
* found, `undefined` is returned.
|
|
640
613
|
*/
|
|
641
614
|
get(identifier, callback = this._DEFAULT_CALLBACK, beginRoot = this.root, iterationType = this.iterationType) {
|
|
642
|
-
var _a
|
|
643
|
-
return (
|
|
615
|
+
var _a;
|
|
616
|
+
return (_a = this.getNode(identifier, callback, beginRoot, iterationType)) === null || _a === void 0 ? void 0 : _a.value;
|
|
644
617
|
}
|
|
645
618
|
/**
|
|
646
619
|
* Time Complexity: O(n)
|
|
@@ -668,8 +641,7 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
668
641
|
* @returns a boolean value.
|
|
669
642
|
*/
|
|
670
643
|
has(identifier, callback = this._DEFAULT_CALLBACK, beginRoot = this.root, iterationType = this.iterationType) {
|
|
671
|
-
|
|
672
|
-
callback = (node => node);
|
|
644
|
+
callback = this._ensureCallback(identifier, callback);
|
|
673
645
|
return this.getNodes(identifier, callback, true, beginRoot, iterationType).length > 0;
|
|
674
646
|
}
|
|
675
647
|
/**
|
|
@@ -1766,6 +1738,12 @@ class BinaryTree extends base_1.IterableEntryBase {
|
|
|
1766
1738
|
}
|
|
1767
1739
|
this._root = v;
|
|
1768
1740
|
}
|
|
1741
|
+
_ensureCallback(identifier, callback = this._DEFAULT_CALLBACK) {
|
|
1742
|
+
if ((!callback || callback === this._DEFAULT_CALLBACK) && this.isNode(identifier)) {
|
|
1743
|
+
callback = (node => node);
|
|
1744
|
+
}
|
|
1745
|
+
return callback;
|
|
1746
|
+
}
|
|
1769
1747
|
}
|
|
1770
1748
|
exports.BinaryTree = BinaryTree;
|
|
1771
1749
|
//# sourceMappingURL=binary-tree.js.map
|