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
@@ -210,6 +210,35 @@ var IterableElementBase = class {
210
210
  for (const ele of this) if (ele === element) return true;
211
211
  return false;
212
212
  }
213
+ /**
214
+ * Check whether a value exists (Array-compatible alias for `has`).
215
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
216
+ * @param element - Element to search for (uses `===`).
217
+ * @returns `true` if found.
218
+ */
219
+ includes(element) {
220
+ return this.has(element);
221
+ }
222
+ /**
223
+ * Return an iterator of `[index, value]` pairs (Array-compatible).
224
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
225
+ */
226
+ *entries() {
227
+ let index = 0;
228
+ for (const value of this) {
229
+ yield [index++, value];
230
+ }
231
+ }
232
+ /**
233
+ * Return an iterator of numeric indices (Array-compatible).
234
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
235
+ */
236
+ *keys() {
237
+ let index = 0;
238
+ for (const _ of this) {
239
+ yield index++;
240
+ }
241
+ }
213
242
  /**
214
243
  * Reduces all elements to a single accumulated value.
215
244
  *
@@ -520,6 +549,16 @@ var LinearBase = class _LinearBase extends IterableElementBase {
520
549
  }
521
550
  return this;
522
551
  }
552
+ /**
553
+ * Return a new instance of the same type with elements in reverse order (non-mutating).
554
+ * @remarks Provided for familiarity when migrating from Array (ES2023 `toReversed`). Time O(n), Space O(n).
555
+ * @returns A new reversed instance.
556
+ */
557
+ toReversed() {
558
+ const cloned = this.clone();
559
+ cloned.reverse();
560
+ return cloned;
561
+ }
523
562
  };
524
563
  var LinearLinkedBase = class extends LinearBase {
525
564
  static {
@@ -819,6 +858,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
819
858
 
820
859
 
821
860
 
861
+
862
+
863
+
822
864
 
823
865
 
824
866
 
@@ -890,6 +932,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
890
932
 
891
933
 
892
934
 
935
+
936
+
937
+
893
938
 
894
939
 
895
940
 
@@ -966,6 +1011,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
966
1011
 
967
1012
 
968
1013
 
1014
+
1015
+
1016
+
969
1017
 
970
1018
 
971
1019
 
@@ -1024,6 +1072,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1024
1072
 
1025
1073
 
1026
1074
 
1075
+
1076
+
1077
+
1027
1078
 
1028
1079
 
1029
1080
 
@@ -1143,6 +1194,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1143
1194
 
1144
1195
 
1145
1196
 
1197
+
1198
+
1199
+
1146
1200
 
1147
1201
 
1148
1202
 
@@ -1206,6 +1260,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1206
1260
 
1207
1261
 
1208
1262
 
1263
+
1264
+
1265
+
1209
1266
 
1210
1267
 
1211
1268
 
@@ -1258,6 +1315,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1258
1315
 
1259
1316
 
1260
1317
 
1318
+
1319
+
1320
+
1261
1321
 
1262
1322
 
1263
1323
 
@@ -1316,6 +1376,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1316
1376
 
1317
1377
 
1318
1378
 
1379
+
1380
+
1381
+
1319
1382
 
1320
1383
 
1321
1384
 
@@ -1379,6 +1442,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1379
1442
 
1380
1443
 
1381
1444
 
1445
+
1446
+
1447
+
1382
1448
 
1383
1449
 
1384
1450
 
@@ -1450,6 +1516,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1450
1516
 
1451
1517
 
1452
1518
 
1519
+
1520
+
1521
+
1453
1522
 
1454
1523
 
1455
1524
 
@@ -1498,6 +1567,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1498
1567
 
1499
1568
 
1500
1569
 
1570
+
1571
+
1572
+
1501
1573
 
1502
1574
 
1503
1575
 
@@ -1552,6 +1624,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1552
1624
 
1553
1625
 
1554
1626
 
1627
+
1628
+
1629
+
1555
1630
 
1556
1631
 
1557
1632
 
@@ -1772,6 +1847,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1772
1847
 
1773
1848
 
1774
1849
 
1850
+
1851
+
1852
+
1775
1853
 
1776
1854
 
1777
1855
 
@@ -1830,6 +1908,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1830
1908
 
1831
1909
 
1832
1910
 
1911
+
1912
+
1913
+
1833
1914
 
1834
1915
 
1835
1916
 
@@ -1916,6 +1997,9 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1916
1997
 
1917
1998
 
1918
1999
 
2000
+
2001
+
2002
+
1919
2003
 
1920
2004
 
1921
2005
 
@@ -2155,6 +2239,9 @@ var Queue = class _Queue extends LinearBase {
2155
2239
 
2156
2240
 
2157
2241
 
2242
+
2243
+
2244
+
2158
2245
 
2159
2246
 
2160
2247
 
@@ -2209,6 +2296,9 @@ var Queue = class _Queue extends LinearBase {
2209
2296
 
2210
2297
 
2211
2298
 
2299
+
2300
+
2301
+
2212
2302
 
2213
2303
 
2214
2304
 
@@ -2287,6 +2377,9 @@ var Queue = class _Queue extends LinearBase {
2287
2377
 
2288
2378
 
2289
2379
 
2380
+
2381
+
2382
+
2290
2383
 
2291
2384
 
2292
2385
 
@@ -2353,6 +2446,9 @@ var Queue = class _Queue extends LinearBase {
2353
2446
 
2354
2447
 
2355
2448
 
2449
+
2450
+
2451
+
2356
2452
 
2357
2453
 
2358
2454
 
@@ -2426,6 +2522,9 @@ var Queue = class _Queue extends LinearBase {
2426
2522
 
2427
2523
 
2428
2524
 
2525
+
2526
+
2527
+
2429
2528
 
2430
2529
 
2431
2530
 
@@ -2489,6 +2588,9 @@ var Queue = class _Queue extends LinearBase {
2489
2588
 
2490
2589
 
2491
2590
 
2591
+
2592
+
2593
+
2492
2594
 
2493
2595
 
2494
2596
 
@@ -2545,6 +2647,9 @@ var Queue = class _Queue extends LinearBase {
2545
2647
 
2546
2648
 
2547
2649
 
2650
+
2651
+
2652
+
2548
2653
 
2549
2654
 
2550
2655
 
@@ -2657,6 +2762,9 @@ var Queue = class _Queue extends LinearBase {
2657
2762
 
2658
2763
 
2659
2764
 
2765
+
2766
+
2767
+
2660
2768
 
2661
2769
 
2662
2770
 
@@ -2707,6 +2815,9 @@ var Queue = class _Queue extends LinearBase {
2707
2815
 
2708
2816
 
2709
2817
 
2818
+
2819
+
2820
+
2710
2821
 
2711
2822
 
2712
2823
 
@@ -2780,6 +2891,9 @@ var Queue = class _Queue extends LinearBase {
2780
2891
 
2781
2892
 
2782
2893
 
2894
+
2895
+
2896
+
2783
2897
 
2784
2898
 
2785
2899
 
@@ -2837,6 +2951,9 @@ var Queue = class _Queue extends LinearBase {
2837
2951
 
2838
2952
 
2839
2953
 
2954
+
2955
+
2956
+
2840
2957
 
2841
2958
 
2842
2959
 
@@ -2898,6 +3015,9 @@ var Queue = class _Queue extends LinearBase {
2898
3015
 
2899
3016
 
2900
3017
 
3018
+
3019
+
3020
+
2901
3021
 
2902
3022
 
2903
3023
 
@@ -3208,7 +3328,10 @@ var Deque = class extends LinearBase {
3208
3328
  }
3209
3329
  /**
3210
3330
  * Deque peek at both ends
3211
- * @example
3331
+
3332
+
3333
+
3334
+ * @example
3212
3335
  * // Deque peek at both ends
3213
3336
  * const deque = new Deque<number>([10, 20, 30, 40, 50]);
3214
3337
  *
@@ -3266,6 +3389,9 @@ var Deque = class extends LinearBase {
3266
3389
 
3267
3390
 
3268
3391
 
3392
+
3393
+
3394
+
3269
3395
 
3270
3396
 
3271
3397
 
@@ -3333,6 +3459,9 @@ var Deque = class extends LinearBase {
3333
3459
 
3334
3460
 
3335
3461
 
3462
+
3463
+
3464
+
3336
3465
 
3337
3466
 
3338
3467
 
@@ -3413,6 +3542,9 @@ var Deque = class extends LinearBase {
3413
3542
 
3414
3543
 
3415
3544
 
3545
+
3546
+
3547
+
3416
3548
 
3417
3549
 
3418
3550
 
@@ -3480,6 +3612,9 @@ var Deque = class extends LinearBase {
3480
3612
 
3481
3613
 
3482
3614
 
3615
+
3616
+
3617
+
3483
3618
 
3484
3619
 
3485
3620
 
@@ -3548,6 +3683,9 @@ var Deque = class extends LinearBase {
3548
3683
 
3549
3684
 
3550
3685
 
3686
+
3687
+
3688
+
3551
3689
 
3552
3690
 
3553
3691
 
@@ -3657,6 +3795,9 @@ var Deque = class extends LinearBase {
3657
3795
 
3658
3796
 
3659
3797
 
3798
+
3799
+
3800
+
3660
3801
 
3661
3802
 
3662
3803
 
@@ -3706,6 +3847,9 @@ var Deque = class extends LinearBase {
3706
3847
 
3707
3848
 
3708
3849
 
3850
+
3851
+
3852
+
3709
3853
 
3710
3854
 
3711
3855
 
@@ -3759,6 +3903,9 @@ var Deque = class extends LinearBase {
3759
3903
 
3760
3904
 
3761
3905
 
3906
+
3907
+
3908
+
3762
3909
 
3763
3910
 
3764
3911
 
@@ -3963,6 +4110,9 @@ var Deque = class extends LinearBase {
3963
4110
 
3964
4111
 
3965
4112
 
4113
+
4114
+
4115
+
3966
4116
 
3967
4117
 
3968
4118
 
@@ -4057,6 +4207,64 @@ var Deque = class extends LinearBase {
4057
4207
 
4058
4208
 
4059
4209
 
4210
+
4211
+ * @example
4212
+ * // Deque for...of iteration and reverse
4213
+ * const deque = new Deque<string>(['A', 'B', 'C', 'D']);
4214
+ *
4215
+ * // Iterate forward
4216
+ * const forward: string[] = [];
4217
+ * for (const item of deque) {
4218
+ * forward.push(item);
4219
+ * }
4220
+ * console.log(forward); // ['A', 'B', 'C', 'D'];
4221
+ *
4222
+ * // Reverse the deque
4223
+ * deque.reverse();
4224
+ * const backward: string[] = [];
4225
+ * for (const item of deque) {
4226
+ * backward.push(item);
4227
+ * }
4228
+ * console.log(backward); // ['D', 'C', 'B', 'A'];
4229
+ */
4230
+ /**
4231
+ * Find the last value matching a predicate (scans back-to-front).
4232
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
4233
+ * @param predicate - Function called with (value, index, deque).
4234
+ * @returns Matching value or undefined.
4235
+ * @example
4236
+ * // Find last matching value
4237
+ * const d = new Deque([1, 2, 3, 4, 5]);
4238
+ * console.log(d.findLast(v => v > 2)); // 5;
4239
+ * console.log(d.findLast(v => v % 2 === 0)); // 4;
4240
+ */
4241
+ findLast(predicate) {
4242
+ for (let i = this.length - 1; i >= 0; i--) {
4243
+ const val = this.at(i);
4244
+ if (predicate(val, i, this)) return val;
4245
+ }
4246
+ return void 0;
4247
+ }
4248
+ /**
4249
+ * Find the index of the last value matching a predicate (scans back-to-front).
4250
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
4251
+ * @param predicate - Function called with (value, index, deque).
4252
+ * @returns Matching index, or -1 if not found.
4253
+ * @example
4254
+ * // Find last matching index
4255
+ * const d = new Deque([10, 20, 30, 20, 10]);
4256
+ * console.log(d.findLastIndex(v => v === 20)); // 3;
4257
+ * console.log(d.findLastIndex(v => v === 10)); // 4;
4258
+ */
4259
+ findLastIndex(predicate) {
4260
+ for (let i = this.length - 1; i >= 0; i--) {
4261
+ if (predicate(this.at(i), i, this)) return i;
4262
+ }
4263
+ return -1;
4264
+ }
4265
+ /**
4266
+ * Deque for...of iteration and reverse
4267
+
4060
4268
 
4061
4269
  * @example
4062
4270
  * // Deque for...of iteration and reverse
@@ -4170,6 +4378,9 @@ var Deque = class extends LinearBase {
4170
4378
 
4171
4379
 
4172
4380
 
4381
+
4382
+
4383
+
4173
4384
 
4174
4385
 
4175
4386
 
@@ -4245,6 +4456,9 @@ var Deque = class extends LinearBase {
4245
4456
 
4246
4457
 
4247
4458
 
4459
+
4460
+
4461
+
4248
4462
 
4249
4463
 
4250
4464
 
@@ -4303,6 +4517,9 @@ var Deque = class extends LinearBase {
4303
4517
 
4304
4518
 
4305
4519
 
4520
+
4521
+
4522
+
4306
4523
 
4307
4524
 
4308
4525
 
@@ -4381,6 +4598,9 @@ var Deque = class extends LinearBase {
4381
4598
 
4382
4599
 
4383
4600
 
4601
+
4602
+
4603
+
4384
4604
 
4385
4605
 
4386
4606