tree-multimap-typed 2.5.0 → 2.5.1

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 (67) hide show
  1. package/dist/types/data-structures/base/index.d.ts +1 -0
  2. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  3. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  4. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +252 -0
  5. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +294 -0
  6. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +527 -2
  7. package/dist/types/data-structures/binary-tree/bst.d.ts +505 -1
  8. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +399 -0
  9. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +126 -1
  10. package/dist/types/data-structures/binary-tree/tree-map.d.ts +2881 -382
  11. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +2867 -347
  12. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2328 -312
  13. package/dist/types/data-structures/binary-tree/tree-set.d.ts +2671 -277
  14. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  15. package/dist/types/data-structures/graph/directed-graph.d.ts +210 -0
  16. package/dist/types/data-structures/graph/undirected-graph.d.ts +189 -0
  17. package/dist/types/data-structures/hash/hash-map.d.ts +241 -10
  18. package/dist/types/data-structures/heap/heap.d.ts +294 -0
  19. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +360 -3
  20. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +318 -3
  21. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +380 -2
  22. package/dist/types/data-structures/matrix/matrix.d.ts +168 -0
  23. package/dist/types/data-structures/queue/deque.d.ts +319 -4
  24. package/dist/types/data-structures/queue/queue.d.ts +252 -0
  25. package/dist/types/data-structures/stack/stack.d.ts +210 -0
  26. package/dist/types/data-structures/trie/trie.d.ts +256 -4
  27. package/dist/types/interfaces/graph.d.ts +1 -1
  28. package/dist/types/types/common.d.ts +2 -2
  29. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  30. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  31. package/dist/types/types/utils/validate-type.d.ts +4 -4
  32. package/dist/umd/tree-multimap-typed.js +28009 -14563
  33. package/dist/umd/tree-multimap-typed.js.map +1 -1
  34. package/dist/umd/tree-multimap-typed.min.js +7 -1
  35. package/dist/umd/tree-multimap-typed.min.js.map +1 -1
  36. package/package.json +2 -2
  37. package/src/data-structures/base/index.ts +1 -0
  38. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  39. package/src/data-structures/base/linear-base.ts +3 -3
  40. package/src/data-structures/binary-tree/avl-tree.ts +252 -0
  41. package/src/data-structures/binary-tree/binary-indexed-tree.ts +295 -1
  42. package/src/data-structures/binary-tree/binary-tree.ts +527 -2
  43. package/src/data-structures/binary-tree/bst.ts +505 -1
  44. package/src/data-structures/binary-tree/red-black-tree.ts +399 -0
  45. package/src/data-structures/binary-tree/segment-tree.ts +127 -2
  46. package/src/data-structures/binary-tree/tree-map.ts +2958 -459
  47. package/src/data-structures/binary-tree/tree-multi-map.ts +3069 -549
  48. package/src/data-structures/binary-tree/tree-multi-set.ts +2476 -460
  49. package/src/data-structures/binary-tree/tree-set.ts +2816 -422
  50. package/src/data-structures/graph/abstract-graph.ts +4 -4
  51. package/src/data-structures/graph/directed-graph.ts +210 -0
  52. package/src/data-structures/graph/undirected-graph.ts +189 -0
  53. package/src/data-structures/hash/hash-map.ts +246 -15
  54. package/src/data-structures/heap/heap.ts +294 -0
  55. package/src/data-structures/linked-list/doubly-linked-list.ts +360 -3
  56. package/src/data-structures/linked-list/singly-linked-list.ts +318 -3
  57. package/src/data-structures/linked-list/skip-linked-list.ts +380 -2
  58. package/src/data-structures/matrix/matrix.ts +169 -1
  59. package/src/data-structures/queue/deque.ts +320 -5
  60. package/src/data-structures/queue/queue.ts +252 -0
  61. package/src/data-structures/stack/stack.ts +210 -0
  62. package/src/data-structures/trie/trie.ts +257 -5
  63. package/src/interfaces/graph.ts +1 -1
  64. package/src/types/common.ts +2 -2
  65. package/src/types/data-structures/heap/heap.ts +1 -0
  66. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  67. package/src/types/utils/validate-type.ts +4 -4
@@ -1,2 +1,3 @@
1
1
  export * from './iterable-entry-base';
2
2
  export * from './iterable-element-base';
3
+ export * from './linear-base';
@@ -17,7 +17,7 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
17
17
  * @returns Iterator of `[K, V]`.
18
18
  * @remarks Time O(n) to iterate, Space O(1)
19
19
  */
20
- [Symbol.iterator](...args: any[]): IterableIterator<[K, V]>;
20
+ [Symbol.iterator](...args: unknown[]): IterableIterator<[K, V]>;
21
21
  /**
22
22
  * Iterate over `[key, value]` pairs (may yield `undefined` values).
23
23
  * @returns Iterator of `[K, V | undefined]`.
@@ -43,7 +43,7 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
43
43
  * @returns `true` if all pass; otherwise `false`.
44
44
  * @remarks Time O(n), Space O(1)
45
45
  */
46
- every(predicate: EntryCallback<K, V, boolean>, thisArg?: any): boolean;
46
+ every(predicate: EntryCallback<K, V, boolean>, thisArg?: unknown): boolean;
47
47
  /**
48
48
  * Test whether any entry satisfies the predicate.
49
49
  * @param predicate - `(key, value, index, self) => boolean`.
@@ -51,14 +51,14 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
51
51
  * @returns `true` if any passes; otherwise `false`.
52
52
  * @remarks Time O(n), Space O(1)
53
53
  */
54
- some(predicate: EntryCallback<K, V, boolean>, thisArg?: any): boolean;
54
+ some(predicate: EntryCallback<K, V, boolean>, thisArg?: unknown): boolean;
55
55
  /**
56
56
  * Visit each entry, left-to-right.
57
57
  * @param callbackfn - `(key, value, index, self) => void`.
58
58
  * @param thisArg - Optional `this` for callback.
59
59
  * @remarks Time O(n), Space O(1)
60
60
  */
61
- forEach(callbackfn: EntryCallback<K, V, void>, thisArg?: any): void;
61
+ forEach(callbackfn: EntryCallback<K, V, void>, thisArg?: unknown): void;
62
62
  /**
63
63
  * Find the first entry that matches a predicate.
64
64
  * @param callbackfn - `(key, value, index, self) => boolean`.
@@ -66,7 +66,7 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
66
66
  * @returns Matching `[key, value]` or `undefined`.
67
67
  * @remarks Time O(n), Space O(1)
68
68
  */
69
- find(callbackfn: EntryCallback<K, V, boolean>, thisArg?: any): [K, V] | undefined;
69
+ find(callbackfn: EntryCallback<K, V, boolean>, thisArg?: unknown): [K, V] | undefined;
70
70
  /**
71
71
  * Whether the given key exists.
72
72
  * @param key - Key to test.
@@ -134,17 +134,17 @@ export declare abstract class IterableEntryBase<K = any, V = any> {
134
134
  * Map entries using an implementation-specific strategy.
135
135
  * @remarks Time O(n), Space O(n)
136
136
  */
137
- abstract map(...args: any[]): any;
137
+ abstract map(...args: unknown[]): unknown;
138
138
  /**
139
139
  * Filter entries and return the same-species structure.
140
140
  * @returns A new instance of the same concrete class (`this` type).
141
141
  * @remarks Time O(n), Space O(n)
142
142
  */
143
- abstract filter(...args: any[]): this;
143
+ abstract filter(...args: unknown[]): this;
144
144
  /**
145
145
  * Underlying iterator for the default iteration protocol.
146
146
  * @returns Iterator of `[K, V]`.
147
147
  * @remarks Time O(n), Space O(1)
148
148
  */
149
- protected abstract _getIterator(...args: any[]): IterableIterator<[K, V]>;
149
+ protected abstract _getIterator(...args: unknown[]): IterableIterator<[K, V]>;
150
150
  }
@@ -89,7 +89,7 @@ export declare abstract class LinearBase<E, R = any, NODE extends LinkedListNode
89
89
  * @returns Index or `-1`.
90
90
  * @remarks Time O(n), Space O(1)
91
91
  */
92
- findIndex(predicate: ElementCallback<E, R, boolean>, thisArg?: any): number;
92
+ findIndex(predicate: ElementCallback<E, R, boolean>, thisArg?: unknown): number;
93
93
  /**
94
94
  * Concatenate elements and/or containers.
95
95
  * @param items - Elements or other containers.
@@ -228,7 +228,7 @@ export declare abstract class LinearBase<E, R = any, NODE extends LinkedListNode
228
228
  * @returns Iterator of elements from tail to head.
229
229
  * @remarks Time O(n), Space O(1)
230
230
  */
231
- protected abstract _getReverseIterator(...args: any[]): IterableIterator<E>;
231
+ protected abstract _getReverseIterator(...args: unknown[]): IterableIterator<E>;
232
232
  }
233
233
  /**
234
234
  * Linked-list specialized linear container.
@@ -324,7 +324,7 @@ export declare abstract class LinearLinkedBase<E, R = any, NODE extends LinkedLi
324
324
  * @returns Iterator over nodes.
325
325
  * @remarks Time O(n), Space O(1)
326
326
  */
327
- protected abstract _getNodeIterator(...args: any[]): IterableIterator<NODE>;
327
+ protected abstract _getNodeIterator(...args: unknown[]): IterableIterator<NODE>;
328
328
  /**
329
329
  * Get previous node of a given node.
330
330
  * @param node - Current node.
@@ -282,6 +282,90 @@ export declare class AVLTree<K = any, V = any, R = any> extends BST<K, V, R> imp
282
282
 
283
283
 
284
284
 
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
285
369
 
286
370
 
287
371
 
@@ -329,6 +413,69 @@ export declare class AVLTree<K = any, V = any, R = any> extends BST<K, V, R> imp
329
413
 
330
414
 
331
415
 
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+
473
+
474
+
475
+
476
+
477
+
478
+
332
479
 
333
480
 
334
481
 
@@ -377,6 +524,48 @@ export declare class AVLTree<K = any, V = any, R = any> extends BST<K, V, R> imp
377
524
 
378
525
 
379
526
 
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+
380
569
  * @example
381
570
  * // Rebalance the tree
382
571
  * const avl = new AVLTree<number>();
@@ -418,6 +607,69 @@ export declare class AVLTree<K = any, V = any, R = any> extends BST<K, V, R> imp
418
607
 
419
608
 
420
609
 
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+
639
+
640
+
641
+
642
+
643
+
644
+
645
+
646
+
647
+
648
+
649
+
650
+
651
+
652
+
653
+
654
+
655
+
656
+
657
+
658
+
659
+
660
+
661
+
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+
421
673
 
422
674
 
423
675
  * @example
@@ -43,6 +43,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
43
43
 
44
44
 
45
45
 
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
46
88
  * @example
47
89
  * // Add delta at index
48
90
  * const bit = new BinaryIndexedTree([1, 2, 3, 4, 5]);
@@ -68,6 +110,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
68
110
 
69
111
 
70
112
 
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
71
155
  * @example
72
156
  * // Set value at index
73
157
  * const bit = new BinaryIndexedTree([1, 2, 3]);
@@ -92,6 +176,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
92
176
 
93
177
 
94
178
 
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
95
221
  * @example
96
222
  * // Get value at index
97
223
  * const bit = new BinaryIndexedTree([1, 2, 3]);
@@ -117,6 +243,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
117
243
 
118
244
 
119
245
 
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
120
288
  * @example
121
289
  * // Prefix sum
122
290
  * const bit = new BinaryIndexedTree([1, 2, 3, 4]);
@@ -140,6 +308,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
140
308
 
141
309
 
142
310
 
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+
352
+
143
353
  * @example
144
354
  * // Range sum
145
355
  * const bit = new BinaryIndexedTree([1, 2, 3, 4]);
@@ -166,6 +376,48 @@ export declare class BinaryIndexedTree implements Iterable<number> {
166
376
 
167
377
 
168
378
 
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
169
421
  * @example
170
422
  * // Find index with prefix sum ≥ target
171
423
  * const bit = new BinaryIndexedTree([1, 2, 3, 4]);
@@ -180,6 +432,27 @@ export declare class BinaryIndexedTree implements Iterable<number> {
180
432
  * Time: O(log n)
181
433
 
182
434
 
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
183
456
  * @example
184
457
  * // Find index with prefix sum > target
185
458
  * const bit = new BinaryIndexedTree([1, 2, 3, 4]);
@@ -196,6 +469,27 @@ export declare class BinaryIndexedTree implements Iterable<number> {
196
469
  * Time: O(n log n)
197
470
 
198
471
 
472
+
473
+
474
+
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
199
493
  * @example
200
494
  * // Convert to array
201
495
  * const bit = new BinaryIndexedTree([1, 2, 3]);