linked-list-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 (75) hide show
  1. package/dist/cjs/index.cjs +1060 -10
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs-legacy/index.cjs +1060 -10
  4. package/dist/cjs-legacy/index.cjs.map +1 -1
  5. package/dist/esm/index.mjs +1060 -10
  6. package/dist/esm/index.mjs.map +1 -1
  7. package/dist/esm-legacy/index.mjs +1060 -10
  8. package/dist/esm-legacy/index.mjs.map +1 -1
  9. package/dist/types/data-structures/base/index.d.ts +1 -0
  10. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  11. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  12. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +252 -0
  13. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +294 -0
  14. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +527 -2
  15. package/dist/types/data-structures/binary-tree/bst.d.ts +505 -1
  16. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +399 -0
  17. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +126 -1
  18. package/dist/types/data-structures/binary-tree/tree-map.d.ts +2881 -382
  19. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +2867 -347
  20. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2328 -312
  21. package/dist/types/data-structures/binary-tree/tree-set.d.ts +2671 -277
  22. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  23. package/dist/types/data-structures/graph/directed-graph.d.ts +210 -0
  24. package/dist/types/data-structures/graph/undirected-graph.d.ts +189 -0
  25. package/dist/types/data-structures/hash/hash-map.d.ts +241 -10
  26. package/dist/types/data-structures/heap/heap.d.ts +294 -0
  27. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +360 -3
  28. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +318 -3
  29. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +380 -2
  30. package/dist/types/data-structures/matrix/matrix.d.ts +168 -0
  31. package/dist/types/data-structures/queue/deque.d.ts +319 -4
  32. package/dist/types/data-structures/queue/queue.d.ts +252 -0
  33. package/dist/types/data-structures/stack/stack.d.ts +210 -0
  34. package/dist/types/data-structures/trie/trie.d.ts +256 -4
  35. package/dist/types/interfaces/graph.d.ts +1 -1
  36. package/dist/types/types/common.d.ts +2 -2
  37. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  38. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  39. package/dist/types/types/utils/validate-type.d.ts +4 -4
  40. package/dist/umd/linked-list-typed.js +1060 -10
  41. package/dist/umd/linked-list-typed.js.map +1 -1
  42. package/dist/umd/linked-list-typed.min.js +1 -1
  43. package/dist/umd/linked-list-typed.min.js.map +1 -1
  44. package/package.json +2 -2
  45. package/src/data-structures/base/index.ts +1 -0
  46. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  47. package/src/data-structures/base/linear-base.ts +3 -3
  48. package/src/data-structures/binary-tree/avl-tree.ts +252 -0
  49. package/src/data-structures/binary-tree/binary-indexed-tree.ts +295 -1
  50. package/src/data-structures/binary-tree/binary-tree.ts +527 -2
  51. package/src/data-structures/binary-tree/bst.ts +505 -1
  52. package/src/data-structures/binary-tree/red-black-tree.ts +399 -0
  53. package/src/data-structures/binary-tree/segment-tree.ts +127 -2
  54. package/src/data-structures/binary-tree/tree-map.ts +2958 -459
  55. package/src/data-structures/binary-tree/tree-multi-map.ts +3069 -549
  56. package/src/data-structures/binary-tree/tree-multi-set.ts +2476 -460
  57. package/src/data-structures/binary-tree/tree-set.ts +2816 -422
  58. package/src/data-structures/graph/abstract-graph.ts +4 -4
  59. package/src/data-structures/graph/directed-graph.ts +210 -0
  60. package/src/data-structures/graph/undirected-graph.ts +189 -0
  61. package/src/data-structures/hash/hash-map.ts +246 -15
  62. package/src/data-structures/heap/heap.ts +294 -0
  63. package/src/data-structures/linked-list/doubly-linked-list.ts +360 -3
  64. package/src/data-structures/linked-list/singly-linked-list.ts +318 -3
  65. package/src/data-structures/linked-list/skip-linked-list.ts +380 -2
  66. package/src/data-structures/matrix/matrix.ts +169 -1
  67. package/src/data-structures/queue/deque.ts +320 -5
  68. package/src/data-structures/queue/queue.ts +252 -0
  69. package/src/data-structures/stack/stack.ts +210 -0
  70. package/src/data-structures/trie/trie.ts +257 -5
  71. package/src/interfaces/graph.ts +1 -1
  72. package/src/types/common.ts +2 -2
  73. package/src/types/data-structures/heap/heap.ts +1 -0
  74. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  75. package/src/types/utils/validate-type.ts +4 -4
@@ -743,6 +743,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
743
743
 
744
744
 
745
745
 
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
766
+
746
767
  * @example
747
768
  * // basic SinglyLinkedList creation and push operation
748
769
  * // Create a simple SinglyLinkedList with initial values
@@ -786,6 +807,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
786
807
 
787
808
 
788
809
 
810
+
811
+
812
+
813
+
814
+
815
+
816
+
817
+
818
+
819
+
820
+
821
+
822
+
823
+
824
+
825
+
826
+
827
+
828
+
829
+
830
+
789
831
  * @example
790
832
  * // SinglyLinkedList pop and shift operations
791
833
  * const list = new SinglyLinkedList<number>([10, 20, 30, 40, 50]);
@@ -835,6 +877,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
835
877
 
836
878
 
837
879
 
880
+
881
+
882
+
883
+
884
+
885
+
886
+
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+
895
+
896
+
897
+
898
+
899
+
900
+
838
901
  * @example
839
902
  * // Remove from the front
840
903
  * const list = new SinglyLinkedList<number>([10, 20, 30]);
@@ -865,6 +928,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
865
928
 
866
929
 
867
930
 
931
+
932
+
933
+
934
+
935
+
936
+
937
+
938
+
939
+
940
+
941
+
942
+
943
+
944
+
945
+
946
+
947
+
948
+
949
+
950
+
951
+
868
952
  * @example
869
953
  * // SinglyLinkedList unshift and forward traversal
870
954
  * const list = new SinglyLinkedList<number>([20, 30, 40]);
@@ -956,6 +1040,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
956
1040
 
957
1041
 
958
1042
 
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+
1061
+
1062
+
1063
+
959
1064
  * @example
960
1065
  * // Access element by index
961
1066
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c', 'd']);
@@ -991,6 +1096,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
991
1096
 
992
1097
 
993
1098
 
1099
+
1100
+
1101
+
1102
+
1103
+
1104
+
1105
+
1106
+
1107
+
1108
+
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+
1115
+
1116
+
1117
+
1118
+
1119
+
994
1120
  * @example
995
1121
  * // Get node at index
996
1122
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
@@ -1015,6 +1141,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1015
1141
 
1016
1142
 
1017
1143
 
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+
1155
+
1156
+
1157
+
1158
+
1159
+
1160
+
1161
+
1162
+
1163
+
1164
+
1018
1165
  * @example
1019
1166
  * // Remove by index
1020
1167
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
@@ -1045,6 +1192,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1045
1192
 
1046
1193
 
1047
1194
 
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+
1215
+
1048
1216
  * @example
1049
1217
  * // Remove first occurrence
1050
1218
  * const list = new SinglyLinkedList<number>([1, 2, 3, 2]);
@@ -1080,6 +1248,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1080
1248
 
1081
1249
 
1082
1250
 
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+
1269
+
1270
+
1271
+
1083
1272
  * @example
1084
1273
  * // Insert at index
1085
1274
  * const list = new SinglyLinkedList<number>([1, 3]);
@@ -1123,6 +1312,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1123
1312
 
1124
1313
 
1125
1314
 
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1126
1336
  * @example
1127
1337
  * // Check empty
1128
1338
  * console.log(new SinglyLinkedList().isEmpty()); // true;
@@ -1143,6 +1353,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1143
1353
 
1144
1354
 
1145
1355
 
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+
1362
+
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1374
+
1375
+
1376
+
1146
1377
  * @example
1147
1378
  * // Remove all
1148
1379
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1169,6 +1400,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1169
1400
 
1170
1401
 
1171
1402
 
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+
1423
+
1172
1424
  * @example
1173
1425
  * // Reverse the list in-place
1174
1426
  * const list = new SinglyLinkedList<number>([1, 2, 3, 4]);
@@ -1361,10 +1613,31 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1361
1613
 
1362
1614
 
1363
1615
 
1364
- * @example
1365
- * // Deep copy
1366
- * const list = new SinglyLinkedList<number>([1, 2, 3]);
1367
- * const copy = list.clone();
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+ * @example
1638
+ * // Deep copy
1639
+ * const list = new SinglyLinkedList<number>([1, 2, 3]);
1640
+ * const copy = list.clone();
1368
1641
  * copy.pop();
1369
1642
  * console.log(list.length); // 3;
1370
1643
  * console.log(copy.length); // 2;
@@ -1391,6 +1664,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1391
1664
 
1392
1665
 
1393
1666
 
1667
+
1668
+
1669
+
1670
+
1671
+
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+
1682
+
1683
+
1684
+
1685
+
1686
+
1687
+
1394
1688
  * @example
1395
1689
  * // SinglyLinkedList filter and map operations
1396
1690
  * const list = new SinglyLinkedList<number>([1, 2, 3, 4, 5]);
@@ -1449,6 +1743,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1449
1743
 
1450
1744
 
1451
1745
 
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+
1753
+
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1452
1767
  * @example
1453
1768
  * // Transform elements
1454
1769
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1745,6 +2060,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1745
2060
 
1746
2061
 
1747
2062
 
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+
2083
+
1748
2084
  * @example
1749
2085
  * // basic DoublyLinkedList creation and push operation
1750
2086
  * // Create a simple DoublyLinkedList with initial values
@@ -1790,6 +2126,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1790
2126
 
1791
2127
 
1792
2128
 
2129
+
2130
+
2131
+
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+
2143
+
2144
+
2145
+
2146
+
2147
+
2148
+
2149
+
1793
2150
  * @example
1794
2151
  * // DoublyLinkedList pop and shift operations
1795
2152
  * const list = new DoublyLinkedList<number>([10, 20, 30, 40, 50]);
@@ -1834,6 +2191,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1834
2191
 
1835
2192
 
1836
2193
 
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+
2209
+
2210
+
2211
+
2212
+
2213
+
2214
+
1837
2215
  * @example
1838
2216
  * // Remove from the front
1839
2217
  * const list = new DoublyLinkedList<number>([10, 20, 30]);
@@ -1869,6 +2247,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1869
2247
 
1870
2248
 
1871
2249
 
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+
2261
+
2262
+
2263
+
2264
+
2265
+
2266
+
2267
+
2268
+
2269
+
2270
+
1872
2271
  * @example
1873
2272
  * // Add to the front
1874
2273
  * const list = new DoublyLinkedList<number>([2, 3]);
@@ -1933,6 +2332,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1933
2332
 
1934
2333
 
1935
2334
 
2335
+
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+
2343
+
2344
+
2345
+
2346
+
2347
+
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+
2355
+
1936
2356
  * @example
1937
2357
  * // Access by index
1938
2358
  * const list = new DoublyLinkedList<string>(['a', 'b', 'c']);
@@ -1958,6 +2378,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1958
2378
 
1959
2379
 
1960
2380
 
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+
2395
+
2396
+
2397
+
2398
+
2399
+
2400
+
2401
+
1961
2402
  * @example
1962
2403
  * // Get node at index
1963
2404
  * const list = new DoublyLinkedList<string>(['a', 'b', 'c']);
@@ -2014,6 +2455,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2014
2455
 
2015
2456
 
2016
2457
 
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+
2466
+
2467
+
2468
+
2469
+
2470
+
2471
+
2472
+
2473
+
2474
+
2475
+
2476
+
2477
+
2478
+
2017
2479
  * @example
2018
2480
  * // Insert at position
2019
2481
  * const list = new DoublyLinkedList<number>([1, 3]);
@@ -2098,6 +2560,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2098
2560
 
2099
2561
 
2100
2562
 
2563
+
2564
+
2565
+
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+
2572
+
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2582
+
2583
+
2101
2584
  * @example
2102
2585
  * // Remove by index
2103
2586
  * const list = new DoublyLinkedList<string>(['a', 'b', 'c']);
@@ -2129,6 +2612,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2129
2612
 
2130
2613
 
2131
2614
 
2615
+
2616
+
2617
+
2618
+
2619
+
2620
+
2621
+
2622
+
2623
+
2624
+
2625
+
2626
+
2627
+
2628
+
2629
+
2630
+
2631
+
2632
+
2633
+
2634
+
2635
+
2132
2636
  * @example
2133
2637
  * // Remove first occurrence
2134
2638
  * const list = new DoublyLinkedList<number>([1, 2, 3, 2]);
@@ -2162,6 +2666,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2162
2666
 
2163
2667
 
2164
2668
 
2669
+
2670
+
2671
+
2672
+
2673
+
2674
+
2675
+
2676
+
2677
+
2678
+
2679
+
2680
+
2681
+
2682
+
2683
+
2684
+
2685
+
2686
+
2687
+
2688
+
2689
+
2165
2690
  * @example
2166
2691
  * // Check empty
2167
2692
  * console.log(new DoublyLinkedList().isEmpty()); // true;
@@ -2182,6 +2707,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2182
2707
 
2183
2708
 
2184
2709
 
2710
+
2711
+
2712
+
2713
+
2714
+
2715
+
2716
+
2717
+
2718
+
2719
+
2720
+
2721
+
2722
+
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2729
+
2730
+
2185
2731
  * @example
2186
2732
  * // Remove all
2187
2733
  * const list = new DoublyLinkedList<number>([1, 2]);
@@ -2206,6 +2752,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2206
2752
 
2207
2753
 
2208
2754
 
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+
2771
+
2772
+
2773
+
2774
+
2775
+
2209
2776
  * @example
2210
2777
  * // Search with predicate
2211
2778
  * const list = new DoublyLinkedList<number>([10, 20, 30]);
@@ -2234,6 +2801,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2234
2801
 
2235
2802
 
2236
2803
 
2804
+
2805
+
2806
+
2807
+
2808
+
2809
+
2810
+
2811
+
2812
+
2813
+
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+
2820
+
2821
+
2822
+
2823
+
2824
+
2237
2825
  * @example
2238
2826
  * // Find value scanning from tail
2239
2827
  * const list = new DoublyLinkedList<number>([1, 2, 3, 4]);
@@ -2265,6 +2853,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2265
2853
 
2266
2854
 
2267
2855
 
2856
+
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+
2268
2877
  * @example
2269
2878
  * // Reverse in-place
2270
2879
  * const list = new DoublyLinkedList<number>([1, 2, 3]);
@@ -2304,6 +2913,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2304
2913
 
2305
2914
 
2306
2915
 
2916
+
2917
+
2918
+
2919
+
2920
+
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+
2932
+
2933
+
2934
+
2935
+
2936
+
2307
2937
  * @example
2308
2938
  * // Deep copy
2309
2939
  * const list = new DoublyLinkedList<number>([1, 2, 3]);
@@ -2333,6 +2963,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2333
2963
 
2334
2964
 
2335
2965
 
2966
+
2967
+
2968
+
2969
+
2970
+
2971
+
2972
+
2973
+
2974
+
2975
+
2976
+
2977
+
2978
+
2979
+
2980
+
2981
+
2982
+
2983
+
2984
+
2985
+
2986
+
2336
2987
  * @example
2337
2988
  * // Filter elements
2338
2989
  * const list = new DoublyLinkedList<number>([1, 2, 3, 4, 5]);
@@ -2381,6 +3032,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2381
3032
 
2382
3033
 
2383
3034
 
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+
3041
+
3042
+
3043
+
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+
3051
+
3052
+
3053
+
3054
+
3055
+
2384
3056
  * @example
2385
3057
  * // DoublyLinkedList for...of iteration and map operation
2386
3058
  * const list = new DoublyLinkedList<number>([1, 2, 3, 4, 5]);
@@ -2806,6 +3478,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2806
3478
 
2807
3479
 
2808
3480
 
3481
+
3482
+
3483
+
3484
+
3485
+
3486
+
3487
+
3488
+
3489
+
3490
+
3491
+
3492
+
3493
+
3494
+
3495
+
3496
+
3497
+
3498
+
3499
+
3500
+
3501
+
2809
3502
  * @example
2810
3503
  * // Check if empty
2811
3504
  * const sl = new SkipList<number, string>();
@@ -2824,6 +3517,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2824
3517
 
2825
3518
 
2826
3519
 
3520
+
3521
+
3522
+
3523
+
3524
+
3525
+
3526
+
3527
+
3528
+
3529
+
3530
+
3531
+
3532
+
3533
+
3534
+
3535
+
3536
+
3537
+
3538
+
3539
+
3540
+
2827
3541
  * @example
2828
3542
  * // Remove all entries
2829
3543
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b']]);
@@ -2845,6 +3559,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2845
3559
 
2846
3560
 
2847
3561
 
3562
+
3563
+
3564
+
3565
+
3566
+
3567
+
3568
+
3569
+
3570
+
3571
+
3572
+
3573
+
3574
+
3575
+
3576
+
3577
+
3578
+
3579
+
3580
+
3581
+
3582
+
2848
3583
  * @example
2849
3584
  * // Create independent copy
2850
3585
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b']]);
@@ -2874,6 +3609,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2874
3609
 
2875
3610
 
2876
3611
 
3612
+
3613
+
3614
+
3615
+
3616
+
3617
+
3618
+
3619
+
3620
+
3621
+
3622
+
3623
+
3624
+
3625
+
3626
+
3627
+
3628
+
3629
+
3630
+
3631
+
3632
+
2877
3633
  * @example
2878
3634
  * // In-memory sorted key-value store
2879
3635
  * const store = new SkipList<number, string>();
@@ -2928,17 +3684,38 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2928
3684
 
2929
3685
 
2930
3686
 
2931
- * @example
2932
- * // Building a sorted index
2933
- * type Product = { id: number; name: string; price: number };
2934
- * const products: Product[] = [
3687
+
3688
+
3689
+
3690
+
3691
+
3692
+
3693
+
3694
+
3695
+
3696
+
3697
+
3698
+
3699
+
3700
+
3701
+
3702
+
3703
+
3704
+
3705
+
3706
+
3707
+
3708
+ * @example
3709
+ * // Building a sorted index
3710
+ * type Product = { id: number; name: string; price: number };
3711
+ * const products: Product[] = [
2935
3712
  * { id: 1, name: 'Widget', price: 25 },
2936
3713
  * { id: 2, name: 'Gadget', price: 50 },
2937
3714
  * { id: 3, name: 'Doohickey', price: 15 }
2938
3715
  * ];
2939
3716
  *
2940
- * const index = new SkipList<number, Product>(products as any, {
2941
- * toEntryFn: (p: any) => [p.price, p]
3717
+ * const index = new SkipList<number, Product, Product>(products, {
3718
+ * toEntryFn: (p: Product) => [p.price, p]
2942
3719
  * });
2943
3720
  *
2944
3721
  * // Iterate in sorted order by price
@@ -2967,6 +3744,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2967
3744
 
2968
3745
 
2969
3746
 
3747
+
3748
+
3749
+
3750
+
3751
+
3752
+
3753
+
3754
+
3755
+
3756
+
3757
+
3758
+
3759
+
3760
+
3761
+
3762
+
3763
+
3764
+
3765
+
3766
+
3767
+
2970
3768
  * @example
2971
3769
  * // Check key existence
2972
3770
  * const sl = new SkipList<number, string>([[1, 'a'], [3, 'c'], [5, 'e']]);
@@ -2989,6 +3787,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2989
3787
 
2990
3788
 
2991
3789
 
3790
+
3791
+
3792
+
3793
+
3794
+
3795
+
3796
+
3797
+
3798
+
3799
+
3800
+
3801
+
3802
+
3803
+
3804
+
3805
+
3806
+
3807
+
3808
+
3809
+
3810
+
2992
3811
  * @example
2993
3812
  * // Fast lookup with deletion
2994
3813
  * const cache = new SkipList<string, number>();
@@ -3031,6 +3850,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3031
3850
 
3032
3851
 
3033
3852
 
3853
+
3854
+
3855
+
3856
+
3857
+
3858
+
3859
+
3860
+
3861
+
3862
+
3863
+
3864
+
3865
+
3866
+
3867
+
3868
+
3869
+
3870
+
3871
+
3872
+
3873
+
3034
3874
  * @example
3035
3875
  * // Access the minimum entry
3036
3876
  * const sl = new SkipList<number, string>([[5, 'e'], [1, 'a'], [3, 'c']]);
@@ -3053,6 +3893,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3053
3893
 
3054
3894
 
3055
3895
 
3896
+
3897
+
3898
+
3899
+
3900
+
3901
+
3902
+
3903
+
3904
+
3905
+
3906
+
3907
+
3908
+
3909
+
3910
+
3911
+
3912
+
3913
+
3914
+
3915
+
3916
+
3056
3917
  * @example
3057
3918
  * // Access the maximum entry
3058
3919
  * const sl = new SkipList<number, string>([[5, 'e'], [1, 'a'], [3, 'c']]);
@@ -3077,6 +3938,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3077
3938
 
3078
3939
 
3079
3940
 
3941
+
3942
+
3943
+
3944
+
3945
+
3946
+
3947
+
3948
+
3949
+
3950
+
3951
+
3952
+
3953
+
3954
+
3955
+
3956
+
3957
+
3958
+
3959
+
3960
+
3961
+
3080
3962
  * @example
3081
3963
  * // Remove and return smallest
3082
3964
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
@@ -3099,6 +3981,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3099
3981
 
3100
3982
 
3101
3983
 
3984
+
3985
+
3986
+
3987
+
3988
+
3989
+
3990
+
3991
+
3992
+
3993
+
3994
+
3995
+
3996
+
3997
+
3998
+
3999
+
4000
+
4001
+
4002
+
4003
+
4004
+
3102
4005
  * @example
3103
4006
  * // Remove and return largest
3104
4007
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
@@ -3124,6 +4027,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3124
4027
 
3125
4028
 
3126
4029
 
4030
+
4031
+
4032
+
4033
+
4034
+
4035
+
4036
+
4037
+
4038
+
4039
+
4040
+
4041
+
4042
+
4043
+
4044
+
4045
+
4046
+
4047
+
4048
+
4049
+
4050
+
3127
4051
  * @example
3128
4052
  * // Least entry ≥ key
3129
4053
  * const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
@@ -3154,6 +4078,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3154
4078
 
3155
4079
 
3156
4080
 
4081
+
4082
+
4083
+
4084
+
4085
+
4086
+
4087
+
4088
+
4089
+
4090
+
4091
+
4092
+
4093
+
4094
+
4095
+
4096
+
4097
+
4098
+
4099
+
4100
+
4101
+
3157
4102
  * @example
3158
4103
  * // Greatest entry ≤ key
3159
4104
  * const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
@@ -3182,6 +4127,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3182
4127
 
3183
4128
 
3184
4129
 
4130
+
4131
+
4132
+
4133
+
4134
+
4135
+
4136
+
4137
+
4138
+
4139
+
4140
+
4141
+
4142
+
4143
+
4144
+
4145
+
4146
+
4147
+
4148
+
4149
+
4150
+
3185
4151
  * @example
3186
4152
  * // Strictly greater entry
3187
4153
  * const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
@@ -3209,6 +4175,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3209
4175
 
3210
4176
 
3211
4177
 
4178
+
4179
+
4180
+
4181
+
4182
+
4183
+
4184
+
4185
+
4186
+
4187
+
4188
+
4189
+
4190
+
4191
+
4192
+
4193
+
4194
+
4195
+
4196
+
4197
+
4198
+
3212
4199
  * @example
3213
4200
  * // Strictly less entry
3214
4201
  * const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
@@ -3242,6 +4229,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3242
4229
 
3243
4230
 
3244
4231
 
4232
+
4233
+
4234
+
4235
+
4236
+
4237
+
4238
+
4239
+
4240
+
4241
+
4242
+
4243
+
4244
+
4245
+
4246
+
4247
+
4248
+
4249
+
4250
+
4251
+
4252
+
3245
4253
  * @example
3246
4254
  * // Find entries in a range
3247
4255
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd'], [5, 'e']]);
@@ -3283,6 +4291,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3283
4291
 
3284
4292
 
3285
4293
 
4294
+
4295
+
4296
+
4297
+
4298
+
4299
+
4300
+
4301
+
4302
+
4303
+
4304
+
4305
+
4306
+
4307
+
4308
+
4309
+
4310
+
4311
+
4312
+
4313
+
4314
+
3286
4315
  * @example
3287
4316
  * // Transform entries
3288
4317
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b']]);
@@ -3308,6 +4337,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3308
4337
 
3309
4338
 
3310
4339
 
4340
+
4341
+
4342
+
4343
+
4344
+
4345
+
4346
+
4347
+
4348
+
4349
+
4350
+
4351
+
4352
+
4353
+
4354
+
4355
+
4356
+
4357
+
4358
+
4359
+
4360
+
3311
4361
  * @example
3312
4362
  * // Filter entries
3313
4363
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);