queue-typed 2.5.3 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/cjs/index.cjs +221 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs-legacy/index.cjs +221 -1
  4. package/dist/cjs-legacy/index.cjs.map +1 -1
  5. package/dist/esm/index.mjs +221 -1
  6. package/dist/esm/index.mjs.map +1 -1
  7. package/dist/esm-legacy/index.mjs +221 -1
  8. package/dist/esm-legacy/index.mjs.map +1 -1
  9. package/dist/types/data-structures/base/iterable-element-base.d.ts +17 -0
  10. package/dist/types/data-structures/base/linear-base.d.ts +6 -0
  11. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +36 -0
  12. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +42 -0
  13. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +75 -0
  14. package/dist/types/data-structures/binary-tree/bst.d.ts +72 -0
  15. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +57 -0
  16. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +18 -0
  17. package/dist/types/data-structures/binary-tree/tree-map.d.ts +375 -0
  18. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +389 -0
  19. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +330 -0
  20. package/dist/types/data-structures/binary-tree/tree-set.d.ts +438 -0
  21. package/dist/types/data-structures/graph/directed-graph.d.ts +30 -0
  22. package/dist/types/data-structures/graph/undirected-graph.d.ts +27 -0
  23. package/dist/types/data-structures/hash/hash-map.d.ts +33 -0
  24. package/dist/types/data-structures/heap/heap.d.ts +42 -0
  25. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -2
  26. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +45 -0
  27. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +54 -0
  28. package/dist/types/data-structures/matrix/matrix.d.ts +24 -0
  29. package/dist/types/data-structures/queue/deque.d.ts +90 -1
  30. package/dist/types/data-structures/queue/queue.d.ts +36 -0
  31. package/dist/types/data-structures/stack/stack.d.ts +30 -0
  32. package/dist/types/data-structures/trie/trie.d.ts +36 -0
  33. package/dist/umd/queue-typed.js +221 -1
  34. package/dist/umd/queue-typed.js.map +1 -1
  35. package/dist/umd/queue-typed.min.js +1 -1
  36. package/dist/umd/queue-typed.min.js.map +1 -1
  37. package/package.json +2 -2
  38. package/src/data-structures/base/iterable-element-base.ts +32 -0
  39. package/src/data-structures/base/linear-base.ts +11 -0
  40. package/src/data-structures/binary-tree/avl-tree.ts +36 -0
  41. package/src/data-structures/binary-tree/binary-indexed-tree.ts +42 -0
  42. package/src/data-structures/binary-tree/binary-tree.ts +75 -0
  43. package/src/data-structures/binary-tree/bst.ts +72 -0
  44. package/src/data-structures/binary-tree/red-black-tree.ts +57 -0
  45. package/src/data-structures/binary-tree/segment-tree.ts +18 -0
  46. package/src/data-structures/binary-tree/tree-map.ts +375 -0
  47. package/src/data-structures/binary-tree/tree-multi-map.ts +392 -0
  48. package/src/data-structures/binary-tree/tree-multi-set.ts +336 -0
  49. package/src/data-structures/binary-tree/tree-set.ts +492 -0
  50. package/src/data-structures/graph/directed-graph.ts +30 -0
  51. package/src/data-structures/graph/undirected-graph.ts +27 -0
  52. package/src/data-structures/hash/hash-map.ts +33 -0
  53. package/src/data-structures/heap/heap.ts +42 -0
  54. package/src/data-structures/linked-list/doubly-linked-list.ts +90 -2
  55. package/src/data-structures/linked-list/singly-linked-list.ts +45 -0
  56. package/src/data-structures/linked-list/skip-linked-list.ts +54 -0
  57. package/src/data-structures/matrix/matrix.ts +24 -0
  58. package/src/data-structures/queue/deque.ts +103 -1
  59. package/src/data-structures/queue/queue.ts +36 -0
  60. package/src/data-structures/stack/stack.ts +30 -0
  61. package/src/data-structures/trie/trie.ts +36 -0
@@ -208,6 +208,35 @@ var IterableElementBase = class {
208
208
  for (const ele of this) if (ele === element) return true;
209
209
  return false;
210
210
  }
211
+ /**
212
+ * Check whether a value exists (Array-compatible alias for `has`).
213
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
214
+ * @param element - Element to search for (uses `===`).
215
+ * @returns `true` if found.
216
+ */
217
+ includes(element) {
218
+ return this.has(element);
219
+ }
220
+ /**
221
+ * Return an iterator of `[index, value]` pairs (Array-compatible).
222
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
223
+ */
224
+ *entries() {
225
+ let index = 0;
226
+ for (const value of this) {
227
+ yield [index++, value];
228
+ }
229
+ }
230
+ /**
231
+ * Return an iterator of numeric indices (Array-compatible).
232
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
233
+ */
234
+ *keys() {
235
+ let index = 0;
236
+ for (const _ of this) {
237
+ yield index++;
238
+ }
239
+ }
211
240
  /**
212
241
  * Reduces all elements to a single accumulated value.
213
242
  *
@@ -518,6 +547,16 @@ var LinearBase = class _LinearBase extends IterableElementBase {
518
547
  }
519
548
  return this;
520
549
  }
550
+ /**
551
+ * Return a new instance of the same type with elements in reverse order (non-mutating).
552
+ * @remarks Provided for familiarity when migrating from Array (ES2023 `toReversed`). Time O(n), Space O(n).
553
+ * @returns A new reversed instance.
554
+ */
555
+ toReversed() {
556
+ const cloned = this.clone();
557
+ cloned.reverse();
558
+ return cloned;
559
+ }
521
560
  };
522
561
  var LinearLinkedBase = class extends LinearBase {
523
562
  static {
@@ -817,6 +856,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
817
856
 
818
857
 
819
858
 
859
+
860
+
861
+
820
862
 
821
863
 
822
864
 
@@ -888,6 +930,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
888
930
 
889
931
 
890
932
 
933
+
934
+
935
+
891
936
 
892
937
 
893
938
 
@@ -964,6 +1009,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
964
1009
 
965
1010
 
966
1011
 
1012
+
1013
+
1014
+
967
1015
 
968
1016
 
969
1017
 
@@ -1022,6 +1070,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1022
1070
 
1023
1071
 
1024
1072
 
1073
+
1074
+
1075
+
1025
1076
 
1026
1077
 
1027
1078
 
@@ -1141,6 +1192,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1141
1192
 
1142
1193
 
1143
1194
 
1195
+
1196
+
1197
+
1144
1198
 
1145
1199
 
1146
1200
 
@@ -1204,6 +1258,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1204
1258
 
1205
1259
 
1206
1260
 
1261
+
1262
+
1263
+
1207
1264
 
1208
1265
 
1209
1266
 
@@ -1256,6 +1313,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1256
1313
 
1257
1314
 
1258
1315
 
1316
+
1317
+
1318
+
1259
1319
 
1260
1320
 
1261
1321
 
@@ -1314,6 +1374,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1314
1374
 
1315
1375
 
1316
1376
 
1377
+
1378
+
1379
+
1317
1380
 
1318
1381
 
1319
1382
 
@@ -1377,6 +1440,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1377
1440
 
1378
1441
 
1379
1442
 
1443
+
1444
+
1445
+
1380
1446
 
1381
1447
 
1382
1448
 
@@ -1448,6 +1514,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1448
1514
 
1449
1515
 
1450
1516
 
1517
+
1518
+
1519
+
1451
1520
 
1452
1521
 
1453
1522
 
@@ -1496,6 +1565,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1496
1565
 
1497
1566
 
1498
1567
 
1568
+
1569
+
1570
+
1499
1571
 
1500
1572
 
1501
1573
 
@@ -1550,6 +1622,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1550
1622
 
1551
1623
 
1552
1624
 
1625
+
1626
+
1627
+
1553
1628
 
1554
1629
 
1555
1630
 
@@ -1770,6 +1845,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1770
1845
 
1771
1846
 
1772
1847
 
1848
+
1849
+
1850
+
1773
1851
 
1774
1852
 
1775
1853
 
@@ -1828,6 +1906,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1828
1906
 
1829
1907
 
1830
1908
 
1909
+
1910
+
1911
+
1831
1912
 
1832
1913
 
1833
1914
 
@@ -1914,6 +1995,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1914
1995
 
1915
1996
 
1916
1997
 
1998
+
1999
+
2000
+
1917
2001
 
1918
2002
 
1919
2003
 
@@ -2153,6 +2237,9 @@ var Queue = class _Queue extends LinearBase {
2153
2237
 
2154
2238
 
2155
2239
 
2240
+
2241
+
2242
+
2156
2243
 
2157
2244
 
2158
2245
 
@@ -2207,6 +2294,9 @@ var Queue = class _Queue extends LinearBase {
2207
2294
 
2208
2295
 
2209
2296
 
2297
+
2298
+
2299
+
2210
2300
 
2211
2301
 
2212
2302
 
@@ -2285,6 +2375,9 @@ var Queue = class _Queue extends LinearBase {
2285
2375
 
2286
2376
 
2287
2377
 
2378
+
2379
+
2380
+
2288
2381
 
2289
2382
 
2290
2383
 
@@ -2351,6 +2444,9 @@ var Queue = class _Queue extends LinearBase {
2351
2444
 
2352
2445
 
2353
2446
 
2447
+
2448
+
2449
+
2354
2450
 
2355
2451
 
2356
2452
 
@@ -2424,6 +2520,9 @@ var Queue = class _Queue extends LinearBase {
2424
2520
 
2425
2521
 
2426
2522
 
2523
+
2524
+
2525
+
2427
2526
 
2428
2527
 
2429
2528
 
@@ -2487,6 +2586,9 @@ var Queue = class _Queue extends LinearBase {
2487
2586
 
2488
2587
 
2489
2588
 
2589
+
2590
+
2591
+
2490
2592
 
2491
2593
 
2492
2594
 
@@ -2543,6 +2645,9 @@ var Queue = class _Queue extends LinearBase {
2543
2645
 
2544
2646
 
2545
2647
 
2648
+
2649
+
2650
+
2546
2651
 
2547
2652
 
2548
2653
 
@@ -2655,6 +2760,9 @@ var Queue = class _Queue extends LinearBase {
2655
2760
 
2656
2761
 
2657
2762
 
2763
+
2764
+
2765
+
2658
2766
 
2659
2767
 
2660
2768
 
@@ -2705,6 +2813,9 @@ var Queue = class _Queue extends LinearBase {
2705
2813
 
2706
2814
 
2707
2815
 
2816
+
2817
+
2818
+
2708
2819
 
2709
2820
 
2710
2821
 
@@ -2778,6 +2889,9 @@ var Queue = class _Queue extends LinearBase {
2778
2889
 
2779
2890
 
2780
2891
 
2892
+
2893
+
2894
+
2781
2895
 
2782
2896
 
2783
2897
 
@@ -2835,6 +2949,9 @@ var Queue = class _Queue extends LinearBase {
2835
2949
 
2836
2950
 
2837
2951
 
2952
+
2953
+
2954
+
2838
2955
 
2839
2956
 
2840
2957
 
@@ -2896,6 +3013,9 @@ var Queue = class _Queue extends LinearBase {
2896
3013
 
2897
3014
 
2898
3015
 
3016
+
3017
+
3018
+
2899
3019
 
2900
3020
 
2901
3021
 
@@ -3206,7 +3326,10 @@ var Deque = class extends LinearBase {
3206
3326
  }
3207
3327
  /**
3208
3328
  * Deque peek at both ends
3209
- * @example
3329
+
3330
+
3331
+
3332
+ * @example
3210
3333
  * // Deque peek at both ends
3211
3334
  * const deque = new Deque<number>([10, 20, 30, 40, 50]);
3212
3335
  *
@@ -3264,6 +3387,9 @@ var Deque = class extends LinearBase {
3264
3387
 
3265
3388
 
3266
3389
 
3390
+
3391
+
3392
+
3267
3393
 
3268
3394
 
3269
3395
 
@@ -3331,6 +3457,9 @@ var Deque = class extends LinearBase {
3331
3457
 
3332
3458
 
3333
3459
 
3460
+
3461
+
3462
+
3334
3463
 
3335
3464
 
3336
3465
 
@@ -3411,6 +3540,9 @@ var Deque = class extends LinearBase {
3411
3540
 
3412
3541
 
3413
3542
 
3543
+
3544
+
3545
+
3414
3546
 
3415
3547
 
3416
3548
 
@@ -3478,6 +3610,9 @@ var Deque = class extends LinearBase {
3478
3610
 
3479
3611
 
3480
3612
 
3613
+
3614
+
3615
+
3481
3616
 
3482
3617
 
3483
3618
 
@@ -3546,6 +3681,9 @@ var Deque = class extends LinearBase {
3546
3681
 
3547
3682
 
3548
3683
 
3684
+
3685
+
3686
+
3549
3687
 
3550
3688
 
3551
3689
 
@@ -3655,6 +3793,9 @@ var Deque = class extends LinearBase {
3655
3793
 
3656
3794
 
3657
3795
 
3796
+
3797
+
3798
+
3658
3799
 
3659
3800
 
3660
3801
 
@@ -3704,6 +3845,9 @@ var Deque = class extends LinearBase {
3704
3845
 
3705
3846
 
3706
3847
 
3848
+
3849
+
3850
+
3707
3851
 
3708
3852
 
3709
3853
 
@@ -3757,6 +3901,9 @@ var Deque = class extends LinearBase {
3757
3901
 
3758
3902
 
3759
3903
 
3904
+
3905
+
3906
+
3760
3907
 
3761
3908
 
3762
3909
 
@@ -3961,6 +4108,9 @@ var Deque = class extends LinearBase {
3961
4108
 
3962
4109
 
3963
4110
 
4111
+
4112
+
4113
+
3964
4114
 
3965
4115
 
3966
4116
 
@@ -4055,6 +4205,64 @@ var Deque = class extends LinearBase {
4055
4205
 
4056
4206
 
4057
4207
 
4208
+
4209
+ * @example
4210
+ * // Deque for...of iteration and reverse
4211
+ * const deque = new Deque<string>(['A', 'B', 'C', 'D']);
4212
+ *
4213
+ * // Iterate forward
4214
+ * const forward: string[] = [];
4215
+ * for (const item of deque) {
4216
+ * forward.push(item);
4217
+ * }
4218
+ * console.log(forward); // ['A', 'B', 'C', 'D'];
4219
+ *
4220
+ * // Reverse the deque
4221
+ * deque.reverse();
4222
+ * const backward: string[] = [];
4223
+ * for (const item of deque) {
4224
+ * backward.push(item);
4225
+ * }
4226
+ * console.log(backward); // ['D', 'C', 'B', 'A'];
4227
+ */
4228
+ /**
4229
+ * Find the last value matching a predicate (scans back-to-front).
4230
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
4231
+ * @param predicate - Function called with (value, index, deque).
4232
+ * @returns Matching value or undefined.
4233
+ * @example
4234
+ * // Find last matching value
4235
+ * const d = new Deque([1, 2, 3, 4, 5]);
4236
+ * console.log(d.findLast(v => v > 2)); // 5;
4237
+ * console.log(d.findLast(v => v % 2 === 0)); // 4;
4238
+ */
4239
+ findLast(predicate) {
4240
+ for (let i = this.length - 1; i >= 0; i--) {
4241
+ const val = this.at(i);
4242
+ if (predicate(val, i, this)) return val;
4243
+ }
4244
+ return void 0;
4245
+ }
4246
+ /**
4247
+ * Find the index of the last value matching a predicate (scans back-to-front).
4248
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
4249
+ * @param predicate - Function called with (value, index, deque).
4250
+ * @returns Matching index, or -1 if not found.
4251
+ * @example
4252
+ * // Find last matching index
4253
+ * const d = new Deque([10, 20, 30, 20, 10]);
4254
+ * console.log(d.findLastIndex(v => v === 20)); // 3;
4255
+ * console.log(d.findLastIndex(v => v === 10)); // 4;
4256
+ */
4257
+ findLastIndex(predicate) {
4258
+ for (let i = this.length - 1; i >= 0; i--) {
4259
+ if (predicate(this.at(i), i, this)) return i;
4260
+ }
4261
+ return -1;
4262
+ }
4263
+ /**
4264
+ * Deque for...of iteration and reverse
4265
+
4058
4266
 
4059
4267
  * @example
4060
4268
  * // Deque for...of iteration and reverse
@@ -4168,6 +4376,9 @@ var Deque = class extends LinearBase {
4168
4376
 
4169
4377
 
4170
4378
 
4379
+
4380
+
4381
+
4171
4382
 
4172
4383
 
4173
4384
 
@@ -4243,6 +4454,9 @@ var Deque = class extends LinearBase {
4243
4454
 
4244
4455
 
4245
4456
 
4457
+
4458
+
4459
+
4246
4460
 
4247
4461
 
4248
4462
 
@@ -4301,6 +4515,9 @@ var Deque = class extends LinearBase {
4301
4515
 
4302
4516
 
4303
4517
 
4518
+
4519
+
4520
+
4304
4521
 
4305
4522
 
4306
4523
 
@@ -4379,6 +4596,9 @@ var Deque = class extends LinearBase {
4379
4596
 
4380
4597
 
4381
4598
 
4599
+
4600
+
4601
+
4382
4602
 
4383
4603
 
4384
4604