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
@@ -741,6 +741,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
741
741
 
742
742
 
743
743
 
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+
763
+
764
+
744
765
  * @example
745
766
  * // basic SinglyLinkedList creation and push operation
746
767
  * // Create a simple SinglyLinkedList with initial values
@@ -784,6 +805,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
784
805
 
785
806
 
786
807
 
808
+
809
+
810
+
811
+
812
+
813
+
814
+
815
+
816
+
817
+
818
+
819
+
820
+
821
+
822
+
823
+
824
+
825
+
826
+
827
+
828
+
787
829
  * @example
788
830
  * // SinglyLinkedList pop and shift operations
789
831
  * const list = new SinglyLinkedList<number>([10, 20, 30, 40, 50]);
@@ -833,6 +875,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
833
875
 
834
876
 
835
877
 
878
+
879
+
880
+
881
+
882
+
883
+
884
+
885
+
886
+
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+
895
+
896
+
897
+
898
+
836
899
  * @example
837
900
  * // Remove from the front
838
901
  * const list = new SinglyLinkedList<number>([10, 20, 30]);
@@ -863,6 +926,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
863
926
 
864
927
 
865
928
 
929
+
930
+
931
+
932
+
933
+
934
+
935
+
936
+
937
+
938
+
939
+
940
+
941
+
942
+
943
+
944
+
945
+
946
+
947
+
948
+
949
+
866
950
  * @example
867
951
  * // SinglyLinkedList unshift and forward traversal
868
952
  * const list = new SinglyLinkedList<number>([20, 30, 40]);
@@ -954,6 +1038,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
954
1038
 
955
1039
 
956
1040
 
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+
1061
+
957
1062
  * @example
958
1063
  * // Access element by index
959
1064
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c', 'd']);
@@ -989,6 +1094,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
989
1094
 
990
1095
 
991
1096
 
1097
+
1098
+
1099
+
1100
+
1101
+
1102
+
1103
+
1104
+
1105
+
1106
+
1107
+
1108
+
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+
1115
+
1116
+
1117
+
992
1118
  * @example
993
1119
  * // Get node at index
994
1120
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
@@ -1013,6 +1139,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1013
1139
 
1014
1140
 
1015
1141
 
1142
+
1143
+
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+
1155
+
1156
+
1157
+
1158
+
1159
+
1160
+
1161
+
1162
+
1016
1163
  * @example
1017
1164
  * // Remove by index
1018
1165
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
@@ -1043,6 +1190,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1043
1190
 
1044
1191
 
1045
1192
 
1193
+
1194
+
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1046
1214
  * @example
1047
1215
  * // Remove first occurrence
1048
1216
  * const list = new SinglyLinkedList<number>([1, 2, 3, 2]);
@@ -1078,6 +1246,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1078
1246
 
1079
1247
 
1080
1248
 
1249
+
1250
+
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+
1269
+
1081
1270
  * @example
1082
1271
  * // Insert at index
1083
1272
  * const list = new SinglyLinkedList<number>([1, 3]);
@@ -1121,6 +1310,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1121
1310
 
1122
1311
 
1123
1312
 
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+
1124
1334
  * @example
1125
1335
  * // Check empty
1126
1336
  * console.log(new SinglyLinkedList().isEmpty()); // true;
@@ -1141,6 +1351,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1141
1351
 
1142
1352
 
1143
1353
 
1354
+
1355
+
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+
1362
+
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1374
+
1144
1375
  * @example
1145
1376
  * // Remove all
1146
1377
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1167,6 +1398,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1167
1398
 
1168
1399
 
1169
1400
 
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+
1421
+
1170
1422
  * @example
1171
1423
  * // Reverse the list in-place
1172
1424
  * const list = new SinglyLinkedList<number>([1, 2, 3, 4]);
@@ -1359,10 +1611,31 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1359
1611
 
1360
1612
 
1361
1613
 
1362
- * @example
1363
- * // Deep copy
1364
- * const list = new SinglyLinkedList<number>([1, 2, 3]);
1365
- * const copy = list.clone();
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+ * @example
1636
+ * // Deep copy
1637
+ * const list = new SinglyLinkedList<number>([1, 2, 3]);
1638
+ * const copy = list.clone();
1366
1639
  * copy.pop();
1367
1640
  * console.log(list.length); // 3;
1368
1641
  * console.log(copy.length); // 2;
@@ -1389,6 +1662,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1389
1662
 
1390
1663
 
1391
1664
 
1665
+
1666
+
1667
+
1668
+
1669
+
1670
+
1671
+
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+
1682
+
1683
+
1684
+
1685
+
1392
1686
  * @example
1393
1687
  * // SinglyLinkedList filter and map operations
1394
1688
  * const list = new SinglyLinkedList<number>([1, 2, 3, 4, 5]);
@@ -1447,6 +1741,27 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1447
1741
 
1448
1742
 
1449
1743
 
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+
1753
+
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+
1450
1765
  * @example
1451
1766
  * // Transform elements
1452
1767
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1743,6 +2058,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1743
2058
 
1744
2059
 
1745
2060
 
2061
+
2062
+
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+
2079
+
2080
+
2081
+
1746
2082
  * @example
1747
2083
  * // basic DoublyLinkedList creation and push operation
1748
2084
  * // Create a simple DoublyLinkedList with initial values
@@ -1788,6 +2124,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1788
2124
 
1789
2125
 
1790
2126
 
2127
+
2128
+
2129
+
2130
+
2131
+
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+
2143
+
2144
+
2145
+
2146
+
2147
+
1791
2148
  * @example
1792
2149
  * // DoublyLinkedList pop and shift operations
1793
2150
  * const list = new DoublyLinkedList<number>([10, 20, 30, 40, 50]);
@@ -1832,6 +2189,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1832
2189
 
1833
2190
 
1834
2191
 
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+
2209
+
2210
+
2211
+
2212
+
1835
2213
  * @example
1836
2214
  * // Remove from the front
1837
2215
  * const list = new DoublyLinkedList<number>([10, 20, 30]);
@@ -1867,6 +2245,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1867
2245
 
1868
2246
 
1869
2247
 
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+
2261
+
2262
+
2263
+
2264
+
2265
+
2266
+
2267
+
2268
+
1870
2269
  * @example
1871
2270
  * // Add to the front
1872
2271
  * const list = new DoublyLinkedList<number>([2, 3]);
@@ -1931,6 +2330,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1931
2330
 
1932
2331
 
1933
2332
 
2333
+
2334
+
2335
+
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+
2343
+
2344
+
2345
+
2346
+
2347
+
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
1934
2354
  * @example
1935
2355
  * // Access by index
1936
2356
  * const list = new DoublyLinkedList<string>(['a', 'b', 'c']);
@@ -1956,6 +2376,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
1956
2376
 
1957
2377
 
1958
2378
 
2379
+
2380
+
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+
2395
+
2396
+
2397
+
2398
+
2399
+
1959
2400
  * @example
1960
2401
  * // Get node at index
1961
2402
  * const list = new DoublyLinkedList<string>(['a', 'b', 'c']);
@@ -2012,6 +2453,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2012
2453
 
2013
2454
 
2014
2455
 
2456
+
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+
2466
+
2467
+
2468
+
2469
+
2470
+
2471
+
2472
+
2473
+
2474
+
2475
+
2476
+
2015
2477
  * @example
2016
2478
  * // Insert at position
2017
2479
  * const list = new DoublyLinkedList<number>([1, 3]);
@@ -2096,6 +2558,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2096
2558
 
2097
2559
 
2098
2560
 
2561
+
2562
+
2563
+
2564
+
2565
+
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+
2572
+
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2099
2582
  * @example
2100
2583
  * // Remove by index
2101
2584
  * const list = new DoublyLinkedList<string>(['a', 'b', 'c']);
@@ -2127,6 +2610,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2127
2610
 
2128
2611
 
2129
2612
 
2613
+
2614
+
2615
+
2616
+
2617
+
2618
+
2619
+
2620
+
2621
+
2622
+
2623
+
2624
+
2625
+
2626
+
2627
+
2628
+
2629
+
2630
+
2631
+
2632
+
2633
+
2130
2634
  * @example
2131
2635
  * // Remove first occurrence
2132
2636
  * const list = new DoublyLinkedList<number>([1, 2, 3, 2]);
@@ -2160,6 +2664,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2160
2664
 
2161
2665
 
2162
2666
 
2667
+
2668
+
2669
+
2670
+
2671
+
2672
+
2673
+
2674
+
2675
+
2676
+
2677
+
2678
+
2679
+
2680
+
2681
+
2682
+
2683
+
2684
+
2685
+
2686
+
2687
+
2163
2688
  * @example
2164
2689
  * // Check empty
2165
2690
  * console.log(new DoublyLinkedList().isEmpty()); // true;
@@ -2180,6 +2705,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2180
2705
 
2181
2706
 
2182
2707
 
2708
+
2709
+
2710
+
2711
+
2712
+
2713
+
2714
+
2715
+
2716
+
2717
+
2718
+
2719
+
2720
+
2721
+
2722
+
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2183
2729
  * @example
2184
2730
  * // Remove all
2185
2731
  * const list = new DoublyLinkedList<number>([1, 2]);
@@ -2204,6 +2750,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2204
2750
 
2205
2751
 
2206
2752
 
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+
2771
+
2772
+
2773
+
2207
2774
  * @example
2208
2775
  * // Search with predicate
2209
2776
  * const list = new DoublyLinkedList<number>([10, 20, 30]);
@@ -2232,6 +2799,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2232
2799
 
2233
2800
 
2234
2801
 
2802
+
2803
+
2804
+
2805
+
2806
+
2807
+
2808
+
2809
+
2810
+
2811
+
2812
+
2813
+
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+
2820
+
2821
+
2822
+
2235
2823
  * @example
2236
2824
  * // Find value scanning from tail
2237
2825
  * const list = new DoublyLinkedList<number>([1, 2, 3, 4]);
@@ -2263,6 +2851,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2263
2851
 
2264
2852
 
2265
2853
 
2854
+
2855
+
2856
+
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2266
2875
  * @example
2267
2876
  * // Reverse in-place
2268
2877
  * const list = new DoublyLinkedList<number>([1, 2, 3]);
@@ -2302,6 +2911,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2302
2911
 
2303
2912
 
2304
2913
 
2914
+
2915
+
2916
+
2917
+
2918
+
2919
+
2920
+
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+
2932
+
2933
+
2934
+
2305
2935
  * @example
2306
2936
  * // Deep copy
2307
2937
  * const list = new DoublyLinkedList<number>([1, 2, 3]);
@@ -2331,6 +2961,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2331
2961
 
2332
2962
 
2333
2963
 
2964
+
2965
+
2966
+
2967
+
2968
+
2969
+
2970
+
2971
+
2972
+
2973
+
2974
+
2975
+
2976
+
2977
+
2978
+
2979
+
2980
+
2981
+
2982
+
2983
+
2984
+
2334
2985
  * @example
2335
2986
  * // Filter elements
2336
2987
  * const list = new DoublyLinkedList<number>([1, 2, 3, 4, 5]);
@@ -2379,6 +3030,27 @@ var _DoublyLinkedList = class _DoublyLinkedList extends LinearLinkedBase {
2379
3030
 
2380
3031
 
2381
3032
 
3033
+
3034
+
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+
3041
+
3042
+
3043
+
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+
3051
+
3052
+
3053
+
2382
3054
  * @example
2383
3055
  * // DoublyLinkedList for...of iteration and map operation
2384
3056
  * const list = new DoublyLinkedList<number>([1, 2, 3, 4, 5]);
@@ -2804,6 +3476,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2804
3476
 
2805
3477
 
2806
3478
 
3479
+
3480
+
3481
+
3482
+
3483
+
3484
+
3485
+
3486
+
3487
+
3488
+
3489
+
3490
+
3491
+
3492
+
3493
+
3494
+
3495
+
3496
+
3497
+
3498
+
3499
+
2807
3500
  * @example
2808
3501
  * // Check if empty
2809
3502
  * const sl = new SkipList<number, string>();
@@ -2822,6 +3515,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2822
3515
 
2823
3516
 
2824
3517
 
3518
+
3519
+
3520
+
3521
+
3522
+
3523
+
3524
+
3525
+
3526
+
3527
+
3528
+
3529
+
3530
+
3531
+
3532
+
3533
+
3534
+
3535
+
3536
+
3537
+
3538
+
2825
3539
  * @example
2826
3540
  * // Remove all entries
2827
3541
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b']]);
@@ -2843,6 +3557,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2843
3557
 
2844
3558
 
2845
3559
 
3560
+
3561
+
3562
+
3563
+
3564
+
3565
+
3566
+
3567
+
3568
+
3569
+
3570
+
3571
+
3572
+
3573
+
3574
+
3575
+
3576
+
3577
+
3578
+
3579
+
3580
+
2846
3581
  * @example
2847
3582
  * // Create independent copy
2848
3583
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b']]);
@@ -2872,6 +3607,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2872
3607
 
2873
3608
 
2874
3609
 
3610
+
3611
+
3612
+
3613
+
3614
+
3615
+
3616
+
3617
+
3618
+
3619
+
3620
+
3621
+
3622
+
3623
+
3624
+
3625
+
3626
+
3627
+
3628
+
3629
+
3630
+
2875
3631
  * @example
2876
3632
  * // In-memory sorted key-value store
2877
3633
  * const store = new SkipList<number, string>();
@@ -2926,17 +3682,38 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2926
3682
 
2927
3683
 
2928
3684
 
2929
- * @example
2930
- * // Building a sorted index
2931
- * type Product = { id: number; name: string; price: number };
2932
- * const products: Product[] = [
3685
+
3686
+
3687
+
3688
+
3689
+
3690
+
3691
+
3692
+
3693
+
3694
+
3695
+
3696
+
3697
+
3698
+
3699
+
3700
+
3701
+
3702
+
3703
+
3704
+
3705
+
3706
+ * @example
3707
+ * // Building a sorted index
3708
+ * type Product = { id: number; name: string; price: number };
3709
+ * const products: Product[] = [
2933
3710
  * { id: 1, name: 'Widget', price: 25 },
2934
3711
  * { id: 2, name: 'Gadget', price: 50 },
2935
3712
  * { id: 3, name: 'Doohickey', price: 15 }
2936
3713
  * ];
2937
3714
  *
2938
- * const index = new SkipList<number, Product>(products as any, {
2939
- * toEntryFn: (p: any) => [p.price, p]
3715
+ * const index = new SkipList<number, Product, Product>(products, {
3716
+ * toEntryFn: (p: Product) => [p.price, p]
2940
3717
  * });
2941
3718
  *
2942
3719
  * // Iterate in sorted order by price
@@ -2965,6 +3742,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2965
3742
 
2966
3743
 
2967
3744
 
3745
+
3746
+
3747
+
3748
+
3749
+
3750
+
3751
+
3752
+
3753
+
3754
+
3755
+
3756
+
3757
+
3758
+
3759
+
3760
+
3761
+
3762
+
3763
+
3764
+
3765
+
2968
3766
  * @example
2969
3767
  * // Check key existence
2970
3768
  * const sl = new SkipList<number, string>([[1, 'a'], [3, 'c'], [5, 'e']]);
@@ -2987,6 +3785,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
2987
3785
 
2988
3786
 
2989
3787
 
3788
+
3789
+
3790
+
3791
+
3792
+
3793
+
3794
+
3795
+
3796
+
3797
+
3798
+
3799
+
3800
+
3801
+
3802
+
3803
+
3804
+
3805
+
3806
+
3807
+
3808
+
2990
3809
  * @example
2991
3810
  * // Fast lookup with deletion
2992
3811
  * const cache = new SkipList<string, number>();
@@ -3029,6 +3848,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3029
3848
 
3030
3849
 
3031
3850
 
3851
+
3852
+
3853
+
3854
+
3855
+
3856
+
3857
+
3858
+
3859
+
3860
+
3861
+
3862
+
3863
+
3864
+
3865
+
3866
+
3867
+
3868
+
3869
+
3870
+
3871
+
3032
3872
  * @example
3033
3873
  * // Access the minimum entry
3034
3874
  * const sl = new SkipList<number, string>([[5, 'e'], [1, 'a'], [3, 'c']]);
@@ -3051,6 +3891,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3051
3891
 
3052
3892
 
3053
3893
 
3894
+
3895
+
3896
+
3897
+
3898
+
3899
+
3900
+
3901
+
3902
+
3903
+
3904
+
3905
+
3906
+
3907
+
3908
+
3909
+
3910
+
3911
+
3912
+
3913
+
3914
+
3054
3915
  * @example
3055
3916
  * // Access the maximum entry
3056
3917
  * const sl = new SkipList<number, string>([[5, 'e'], [1, 'a'], [3, 'c']]);
@@ -3075,6 +3936,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3075
3936
 
3076
3937
 
3077
3938
 
3939
+
3940
+
3941
+
3942
+
3943
+
3944
+
3945
+
3946
+
3947
+
3948
+
3949
+
3950
+
3951
+
3952
+
3953
+
3954
+
3955
+
3956
+
3957
+
3958
+
3959
+
3078
3960
  * @example
3079
3961
  * // Remove and return smallest
3080
3962
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
@@ -3097,6 +3979,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3097
3979
 
3098
3980
 
3099
3981
 
3982
+
3983
+
3984
+
3985
+
3986
+
3987
+
3988
+
3989
+
3990
+
3991
+
3992
+
3993
+
3994
+
3995
+
3996
+
3997
+
3998
+
3999
+
4000
+
4001
+
4002
+
3100
4003
  * @example
3101
4004
  * // Remove and return largest
3102
4005
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
@@ -3122,6 +4025,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3122
4025
 
3123
4026
 
3124
4027
 
4028
+
4029
+
4030
+
4031
+
4032
+
4033
+
4034
+
4035
+
4036
+
4037
+
4038
+
4039
+
4040
+
4041
+
4042
+
4043
+
4044
+
4045
+
4046
+
4047
+
4048
+
3125
4049
  * @example
3126
4050
  * // Least entry ≥ key
3127
4051
  * const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
@@ -3152,6 +4076,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3152
4076
 
3153
4077
 
3154
4078
 
4079
+
4080
+
4081
+
4082
+
4083
+
4084
+
4085
+
4086
+
4087
+
4088
+
4089
+
4090
+
4091
+
4092
+
4093
+
4094
+
4095
+
4096
+
4097
+
4098
+
4099
+
3155
4100
  * @example
3156
4101
  * // Greatest entry ≤ key
3157
4102
  * const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
@@ -3180,6 +4125,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3180
4125
 
3181
4126
 
3182
4127
 
4128
+
4129
+
4130
+
4131
+
4132
+
4133
+
4134
+
4135
+
4136
+
4137
+
4138
+
4139
+
4140
+
4141
+
4142
+
4143
+
4144
+
4145
+
4146
+
4147
+
4148
+
3183
4149
  * @example
3184
4150
  * // Strictly greater entry
3185
4151
  * const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
@@ -3207,6 +4173,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3207
4173
 
3208
4174
 
3209
4175
 
4176
+
4177
+
4178
+
4179
+
4180
+
4181
+
4182
+
4183
+
4184
+
4185
+
4186
+
4187
+
4188
+
4189
+
4190
+
4191
+
4192
+
4193
+
4194
+
4195
+
4196
+
3210
4197
  * @example
3211
4198
  * // Strictly less entry
3212
4199
  * const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
@@ -3240,6 +4227,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3240
4227
 
3241
4228
 
3242
4229
 
4230
+
4231
+
4232
+
4233
+
4234
+
4235
+
4236
+
4237
+
4238
+
4239
+
4240
+
4241
+
4242
+
4243
+
4244
+
4245
+
4246
+
4247
+
4248
+
4249
+
4250
+
3243
4251
  * @example
3244
4252
  * // Find entries in a range
3245
4253
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd'], [5, 'e']]);
@@ -3281,6 +4289,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3281
4289
 
3282
4290
 
3283
4291
 
4292
+
4293
+
4294
+
4295
+
4296
+
4297
+
4298
+
4299
+
4300
+
4301
+
4302
+
4303
+
4304
+
4305
+
4306
+
4307
+
4308
+
4309
+
4310
+
4311
+
4312
+
3284
4313
  * @example
3285
4314
  * // Transform entries
3286
4315
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b']]);
@@ -3306,6 +4335,27 @@ var _SkipList = class _SkipList extends IterableEntryBase {
3306
4335
 
3307
4336
 
3308
4337
 
4338
+
4339
+
4340
+
4341
+
4342
+
4343
+
4344
+
4345
+
4346
+
4347
+
4348
+
4349
+
4350
+
4351
+
4352
+
4353
+
4354
+
4355
+
4356
+
4357
+
4358
+
3309
4359
  * @example
3310
4360
  * // Filter entries
3311
4361
  * const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);