linked-list-typed 2.5.2 → 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.
- package/dist/cjs/index.cjs +443 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs-legacy/index.cjs +443 -2
- package/dist/cjs-legacy/index.cjs.map +1 -1
- package/dist/esm/index.mjs +443 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm-legacy/index.mjs +443 -2
- package/dist/esm-legacy/index.mjs.map +1 -1
- package/dist/types/data-structures/base/iterable-element-base.d.ts +17 -0
- package/dist/types/data-structures/base/linear-base.d.ts +6 -0
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +86 -2
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +98 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +191 -15
- package/dist/types/data-structures/binary-tree/bst.d.ts +171 -3
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +136 -8
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +42 -0
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +1061 -167
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1232 -355
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +916 -194
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +1078 -141
- package/dist/types/data-structures/graph/directed-graph.d.ts +70 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +63 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +84 -6
- package/dist/types/data-structures/heap/heap.d.ts +140 -12
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +150 -2
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +106 -1
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +126 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +56 -0
- package/dist/types/data-structures/queue/deque.d.ts +171 -0
- package/dist/types/data-structures/queue/queue.d.ts +97 -0
- package/dist/types/data-structures/stack/stack.d.ts +72 -2
- package/dist/types/data-structures/trie/trie.d.ts +84 -0
- package/dist/types/interfaces/binary-tree.d.ts +2 -3
- package/dist/umd/linked-list-typed.js +443 -2
- package/dist/umd/linked-list-typed.js.map +1 -1
- package/dist/umd/linked-list-typed.min.js +1 -1
- package/dist/umd/linked-list-typed.min.js.map +1 -1
- package/package.json +2 -2
- package/src/data-structures/base/iterable-element-base.ts +32 -0
- package/src/data-structures/base/linear-base.ts +11 -0
- package/src/data-structures/binary-tree/avl-tree.ts +88 -5
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +98 -0
- package/src/data-structures/binary-tree/binary-tree.ts +242 -81
- package/src/data-structures/binary-tree/bst.ts +173 -7
- package/src/data-structures/binary-tree/red-black-tree.ts +139 -15
- package/src/data-structures/binary-tree/segment-tree.ts +42 -0
- package/src/data-structures/binary-tree/tree-map.ts +948 -36
- package/src/data-structures/binary-tree/tree-multi-map.ts +893 -13
- package/src/data-structures/binary-tree/tree-multi-set.ts +761 -33
- package/src/data-structures/binary-tree/tree-set.ts +1260 -251
- package/src/data-structures/graph/directed-graph.ts +71 -1
- package/src/data-structures/graph/undirected-graph.ts +64 -1
- package/src/data-structures/hash/hash-map.ts +100 -12
- package/src/data-structures/heap/heap.ts +149 -19
- package/src/data-structures/linked-list/doubly-linked-list.ts +178 -2
- package/src/data-structures/linked-list/singly-linked-list.ts +106 -1
- package/src/data-structures/linked-list/skip-linked-list.ts +126 -0
- package/src/data-structures/matrix/matrix.ts +56 -0
- package/src/data-structures/queue/deque.ts +187 -0
- package/src/data-structures/queue/queue.ts +109 -0
- package/src/data-structures/stack/stack.ts +75 -5
- package/src/data-structures/trie/trie.ts +84 -0
- package/src/interfaces/binary-tree.ts +1 -9
package/dist/esm/index.mjs
CHANGED
|
@@ -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 {
|
|
@@ -809,6 +848,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
809
848
|
|
|
810
849
|
|
|
811
850
|
|
|
851
|
+
|
|
852
|
+
|
|
853
|
+
|
|
854
|
+
|
|
855
|
+
|
|
856
|
+
|
|
857
|
+
|
|
812
858
|
|
|
813
859
|
|
|
814
860
|
|
|
@@ -876,6 +922,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
876
922
|
|
|
877
923
|
|
|
878
924
|
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
|
|
931
|
+
|
|
879
932
|
|
|
880
933
|
|
|
881
934
|
|
|
@@ -948,6 +1001,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
948
1001
|
|
|
949
1002
|
|
|
950
1003
|
|
|
1004
|
+
|
|
1005
|
+
|
|
1006
|
+
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
|
|
1010
|
+
|
|
951
1011
|
|
|
952
1012
|
|
|
953
1013
|
|
|
@@ -1002,6 +1062,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1002
1062
|
|
|
1003
1063
|
|
|
1004
1064
|
|
|
1065
|
+
|
|
1066
|
+
|
|
1067
|
+
|
|
1068
|
+
|
|
1069
|
+
|
|
1070
|
+
|
|
1071
|
+
|
|
1005
1072
|
|
|
1006
1073
|
|
|
1007
1074
|
|
|
@@ -1117,6 +1184,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1117
1184
|
|
|
1118
1185
|
|
|
1119
1186
|
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
|
|
1190
|
+
|
|
1191
|
+
|
|
1192
|
+
|
|
1193
|
+
|
|
1120
1194
|
|
|
1121
1195
|
|
|
1122
1196
|
|
|
@@ -1176,6 +1250,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1176
1250
|
|
|
1177
1251
|
|
|
1178
1252
|
|
|
1253
|
+
|
|
1254
|
+
|
|
1255
|
+
|
|
1256
|
+
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
|
|
1179
1260
|
|
|
1180
1261
|
|
|
1181
1262
|
|
|
@@ -1224,6 +1305,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1224
1305
|
|
|
1225
1306
|
|
|
1226
1307
|
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
|
|
1314
|
+
|
|
1227
1315
|
|
|
1228
1316
|
|
|
1229
1317
|
|
|
@@ -1278,6 +1366,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1278
1366
|
|
|
1279
1367
|
|
|
1280
1368
|
|
|
1369
|
+
|
|
1370
|
+
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
|
|
1374
|
+
|
|
1375
|
+
|
|
1281
1376
|
|
|
1282
1377
|
|
|
1283
1378
|
|
|
@@ -1337,6 +1432,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1337
1432
|
|
|
1338
1433
|
|
|
1339
1434
|
|
|
1435
|
+
|
|
1436
|
+
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
|
|
1340
1442
|
|
|
1341
1443
|
|
|
1342
1444
|
|
|
@@ -1404,6 +1506,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1404
1506
|
|
|
1405
1507
|
|
|
1406
1508
|
|
|
1509
|
+
|
|
1510
|
+
|
|
1511
|
+
|
|
1512
|
+
|
|
1513
|
+
|
|
1514
|
+
|
|
1515
|
+
|
|
1407
1516
|
|
|
1408
1517
|
|
|
1409
1518
|
|
|
@@ -1448,6 +1557,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1448
1557
|
|
|
1449
1558
|
|
|
1450
1559
|
|
|
1560
|
+
|
|
1561
|
+
|
|
1562
|
+
|
|
1563
|
+
|
|
1564
|
+
|
|
1565
|
+
|
|
1566
|
+
|
|
1451
1567
|
|
|
1452
1568
|
|
|
1453
1569
|
|
|
@@ -1498,6 +1614,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1498
1614
|
|
|
1499
1615
|
|
|
1500
1616
|
|
|
1617
|
+
|
|
1618
|
+
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
|
|
1622
|
+
|
|
1623
|
+
|
|
1501
1624
|
|
|
1502
1625
|
|
|
1503
1626
|
|
|
@@ -1714,6 +1837,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1714
1837
|
|
|
1715
1838
|
|
|
1716
1839
|
|
|
1840
|
+
|
|
1841
|
+
|
|
1842
|
+
|
|
1843
|
+
|
|
1844
|
+
|
|
1845
|
+
|
|
1846
|
+
|
|
1717
1847
|
|
|
1718
1848
|
|
|
1719
1849
|
|
|
@@ -1768,6 +1898,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1768
1898
|
|
|
1769
1899
|
|
|
1770
1900
|
|
|
1901
|
+
|
|
1902
|
+
|
|
1903
|
+
|
|
1904
|
+
|
|
1905
|
+
|
|
1906
|
+
|
|
1907
|
+
|
|
1771
1908
|
|
|
1772
1909
|
|
|
1773
1910
|
|
|
@@ -1850,6 +1987,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1850
1987
|
|
|
1851
1988
|
|
|
1852
1989
|
|
|
1990
|
+
|
|
1991
|
+
|
|
1992
|
+
|
|
1993
|
+
|
|
1994
|
+
|
|
1995
|
+
|
|
1996
|
+
|
|
1853
1997
|
|
|
1854
1998
|
|
|
1855
1999
|
|
|
@@ -2170,6 +2314,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2170
2314
|
|
|
2171
2315
|
|
|
2172
2316
|
|
|
2317
|
+
|
|
2318
|
+
|
|
2319
|
+
|
|
2320
|
+
|
|
2321
|
+
|
|
2322
|
+
|
|
2323
|
+
|
|
2173
2324
|
|
|
2174
2325
|
|
|
2175
2326
|
|
|
@@ -2239,6 +2390,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2239
2390
|
|
|
2240
2391
|
|
|
2241
2392
|
|
|
2393
|
+
|
|
2394
|
+
|
|
2395
|
+
|
|
2396
|
+
|
|
2397
|
+
|
|
2398
|
+
|
|
2399
|
+
|
|
2242
2400
|
|
|
2243
2401
|
|
|
2244
2402
|
|
|
@@ -2307,6 +2465,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2307
2465
|
|
|
2308
2466
|
|
|
2309
2467
|
|
|
2468
|
+
|
|
2469
|
+
|
|
2470
|
+
|
|
2471
|
+
|
|
2472
|
+
|
|
2473
|
+
|
|
2474
|
+
|
|
2310
2475
|
|
|
2311
2476
|
|
|
2312
2477
|
|
|
@@ -2366,6 +2531,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2366
2531
|
|
|
2367
2532
|
|
|
2368
2533
|
|
|
2534
|
+
|
|
2535
|
+
|
|
2536
|
+
|
|
2537
|
+
|
|
2538
|
+
|
|
2539
|
+
|
|
2540
|
+
|
|
2369
2541
|
|
|
2370
2542
|
|
|
2371
2543
|
|
|
@@ -2454,6 +2626,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2454
2626
|
|
|
2455
2627
|
|
|
2456
2628
|
|
|
2629
|
+
|
|
2630
|
+
|
|
2631
|
+
|
|
2632
|
+
|
|
2633
|
+
|
|
2634
|
+
|
|
2635
|
+
|
|
2457
2636
|
|
|
2458
2637
|
|
|
2459
2638
|
|
|
@@ -2503,6 +2682,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2503
2682
|
|
|
2504
2683
|
|
|
2505
2684
|
|
|
2685
|
+
|
|
2686
|
+
|
|
2687
|
+
|
|
2688
|
+
|
|
2689
|
+
|
|
2690
|
+
|
|
2691
|
+
|
|
2506
2692
|
|
|
2507
2693
|
|
|
2508
2694
|
|
|
@@ -2583,6 +2769,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2583
2769
|
|
|
2584
2770
|
|
|
2585
2771
|
|
|
2772
|
+
|
|
2773
|
+
|
|
2774
|
+
|
|
2775
|
+
|
|
2776
|
+
|
|
2777
|
+
|
|
2778
|
+
|
|
2586
2779
|
|
|
2587
2780
|
|
|
2588
2781
|
|
|
@@ -2691,6 +2884,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2691
2884
|
|
|
2692
2885
|
|
|
2693
2886
|
|
|
2887
|
+
|
|
2888
|
+
|
|
2889
|
+
|
|
2890
|
+
|
|
2891
|
+
|
|
2892
|
+
|
|
2893
|
+
|
|
2694
2894
|
|
|
2695
2895
|
|
|
2696
2896
|
|
|
@@ -2746,6 +2946,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2746
2946
|
|
|
2747
2947
|
|
|
2748
2948
|
|
|
2949
|
+
|
|
2950
|
+
|
|
2951
|
+
|
|
2952
|
+
|
|
2953
|
+
|
|
2954
|
+
|
|
2955
|
+
|
|
2749
2956
|
|
|
2750
2957
|
|
|
2751
2958
|
|
|
@@ -2803,6 +3010,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2803
3010
|
|
|
2804
3011
|
|
|
2805
3012
|
|
|
3013
|
+
|
|
3014
|
+
|
|
3015
|
+
|
|
3016
|
+
|
|
3017
|
+
|
|
3018
|
+
|
|
3019
|
+
|
|
2806
3020
|
|
|
2807
3021
|
|
|
2808
3022
|
|
|
@@ -2847,6 +3061,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2847
3061
|
|
|
2848
3062
|
|
|
2849
3063
|
|
|
3064
|
+
|
|
3065
|
+
|
|
3066
|
+
|
|
3067
|
+
|
|
3068
|
+
|
|
3069
|
+
|
|
3070
|
+
|
|
2850
3071
|
|
|
2851
3072
|
|
|
2852
3073
|
|
|
@@ -2895,6 +3116,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2895
3116
|
|
|
2896
3117
|
|
|
2897
3118
|
|
|
3119
|
+
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
|
|
3124
|
+
|
|
3125
|
+
|
|
2898
3126
|
|
|
2899
3127
|
|
|
2900
3128
|
|
|
@@ -2950,6 +3178,10 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2950
3178
|
|
|
2951
3179
|
|
|
2952
3180
|
|
|
3181
|
+
|
|
3182
|
+
|
|
3183
|
+
|
|
3184
|
+
|
|
2953
3185
|
|
|
2954
3186
|
|
|
2955
3187
|
|
|
@@ -2958,11 +3190,31 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2958
3190
|
* @example
|
|
2959
3191
|
* // Find value scanning from tail
|
|
2960
3192
|
* const list = new DoublyLinkedList<number>([1, 2, 3, 4]);
|
|
2961
|
-
* //
|
|
2962
|
-
* const found = list.
|
|
3193
|
+
* // findLast scans from tail to head, returns first match
|
|
3194
|
+
* const found = list.findLast(node => node.value < 4);
|
|
2963
3195
|
* console.log(found); // 3;
|
|
2964
3196
|
*/
|
|
3197
|
+
/**
|
|
3198
|
+
* @deprecated Use `findLast` instead. Will be removed in a future major version.
|
|
3199
|
+
*/
|
|
2965
3200
|
getBackward(elementNodeOrPredicate) {
|
|
3201
|
+
return this.findLast(elementNodeOrPredicate);
|
|
3202
|
+
}
|
|
3203
|
+
/**
|
|
3204
|
+
* Find the first value matching a predicate scanning backward (tail → head).
|
|
3205
|
+
* @remarks Time O(N), Space O(1)
|
|
3206
|
+
* @param elementNodeOrPredicate - Element, node, or predicate to match.
|
|
3207
|
+
* @returns Matching value or undefined.
|
|
3208
|
+
|
|
3209
|
+
|
|
3210
|
+
* @example
|
|
3211
|
+
* // Find value scanning from tail
|
|
3212
|
+
* const list = new DoublyLinkedList<number>([1, 2, 3, 4]);
|
|
3213
|
+
* // findLast scans from tail to head, returns first match
|
|
3214
|
+
* const found = list.findLast(node => node.value < 4);
|
|
3215
|
+
* console.log(found); // 3;
|
|
3216
|
+
*/
|
|
3217
|
+
findLast(elementNodeOrPredicate) {
|
|
2966
3218
|
const predicate = this._ensurePredicate(elementNodeOrPredicate);
|
|
2967
3219
|
let current = this.tail;
|
|
2968
3220
|
while (current) {
|
|
@@ -2971,6 +3223,22 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2971
3223
|
}
|
|
2972
3224
|
return void 0;
|
|
2973
3225
|
}
|
|
3226
|
+
/**
|
|
3227
|
+
* Find the index of the last value matching a predicate (scans tail → head).
|
|
3228
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
|
|
3229
|
+
* @param predicate - Function called with (value, index, list).
|
|
3230
|
+
* @returns Matching index, or -1 if not found.
|
|
3231
|
+
*/
|
|
3232
|
+
findLastIndex(predicate) {
|
|
3233
|
+
let current = this.tail;
|
|
3234
|
+
let index = this.length - 1;
|
|
3235
|
+
while (current) {
|
|
3236
|
+
if (predicate(current.value, index, this)) return index;
|
|
3237
|
+
current = current.prev;
|
|
3238
|
+
index--;
|
|
3239
|
+
}
|
|
3240
|
+
return -1;
|
|
3241
|
+
}
|
|
2974
3242
|
/**
|
|
2975
3243
|
* Reverse the list in place.
|
|
2976
3244
|
* @remarks Time O(N), Space O(1)
|
|
@@ -3002,6 +3270,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
3002
3270
|
|
|
3003
3271
|
|
|
3004
3272
|
|
|
3273
|
+
|
|
3274
|
+
|
|
3275
|
+
|
|
3276
|
+
|
|
3277
|
+
|
|
3278
|
+
|
|
3279
|
+
|
|
3005
3280
|
|
|
3006
3281
|
|
|
3007
3282
|
|
|
@@ -3026,6 +3301,25 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
3026
3301
|
}
|
|
3027
3302
|
return this;
|
|
3028
3303
|
}
|
|
3304
|
+
/**
|
|
3305
|
+
* Delete the first element that satisfies a predicate.
|
|
3306
|
+
* @remarks Time O(N), Space O(1)
|
|
3307
|
+
* @param predicate - Function (value, index, list) → boolean to decide deletion.
|
|
3308
|
+
* @returns True if a match was removed.
|
|
3309
|
+
*/
|
|
3310
|
+
deleteWhere(predicate) {
|
|
3311
|
+
let current = this.head;
|
|
3312
|
+
let index = 0;
|
|
3313
|
+
while (current) {
|
|
3314
|
+
if (predicate(current.value, index, this)) {
|
|
3315
|
+
this.delete(current);
|
|
3316
|
+
return true;
|
|
3317
|
+
}
|
|
3318
|
+
current = current.next;
|
|
3319
|
+
index++;
|
|
3320
|
+
}
|
|
3321
|
+
return false;
|
|
3322
|
+
}
|
|
3029
3323
|
/**
|
|
3030
3324
|
* Set the equality comparator used to compare values.
|
|
3031
3325
|
* @remarks Time O(1), Space O(1)
|
|
@@ -3065,6 +3359,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
3065
3359
|
|
|
3066
3360
|
|
|
3067
3361
|
|
|
3362
|
+
|
|
3363
|
+
|
|
3364
|
+
|
|
3365
|
+
|
|
3366
|
+
|
|
3367
|
+
|
|
3368
|
+
|
|
3068
3369
|
|
|
3069
3370
|
|
|
3070
3371
|
|
|
@@ -3118,6 +3419,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
3118
3419
|
|
|
3119
3420
|
|
|
3120
3421
|
|
|
3422
|
+
|
|
3423
|
+
|
|
3424
|
+
|
|
3425
|
+
|
|
3426
|
+
|
|
3427
|
+
|
|
3428
|
+
|
|
3121
3429
|
|
|
3122
3430
|
|
|
3123
3431
|
|
|
@@ -3190,6 +3498,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
3190
3498
|
|
|
3191
3499
|
|
|
3192
3500
|
|
|
3501
|
+
|
|
3502
|
+
|
|
3503
|
+
|
|
3504
|
+
|
|
3505
|
+
|
|
3506
|
+
|
|
3507
|
+
|
|
3193
3508
|
|
|
3194
3509
|
|
|
3195
3510
|
|
|
@@ -3593,6 +3908,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3593
3908
|
|
|
3594
3909
|
|
|
3595
3910
|
|
|
3911
|
+
|
|
3912
|
+
|
|
3913
|
+
|
|
3914
|
+
|
|
3915
|
+
|
|
3916
|
+
|
|
3917
|
+
|
|
3596
3918
|
|
|
3597
3919
|
|
|
3598
3920
|
|
|
@@ -3635,6 +3957,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3635
3957
|
|
|
3636
3958
|
|
|
3637
3959
|
|
|
3960
|
+
|
|
3961
|
+
|
|
3962
|
+
|
|
3963
|
+
|
|
3964
|
+
|
|
3965
|
+
|
|
3966
|
+
|
|
3638
3967
|
|
|
3639
3968
|
|
|
3640
3969
|
|
|
@@ -3680,6 +4009,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3680
4009
|
|
|
3681
4010
|
|
|
3682
4011
|
|
|
4012
|
+
|
|
4013
|
+
|
|
4014
|
+
|
|
4015
|
+
|
|
4016
|
+
|
|
4017
|
+
|
|
4018
|
+
|
|
3683
4019
|
|
|
3684
4020
|
|
|
3685
4021
|
|
|
@@ -3733,6 +4069,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3733
4069
|
|
|
3734
4070
|
|
|
3735
4071
|
|
|
4072
|
+
|
|
4073
|
+
|
|
4074
|
+
|
|
4075
|
+
|
|
4076
|
+
|
|
4077
|
+
|
|
4078
|
+
|
|
3736
4079
|
|
|
3737
4080
|
|
|
3738
4081
|
|
|
@@ -3811,6 +4154,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3811
4154
|
|
|
3812
4155
|
|
|
3813
4156
|
|
|
4157
|
+
|
|
4158
|
+
|
|
4159
|
+
|
|
4160
|
+
|
|
4161
|
+
|
|
4162
|
+
|
|
4163
|
+
|
|
3814
4164
|
|
|
3815
4165
|
|
|
3816
4166
|
|
|
@@ -3874,6 +4224,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3874
4224
|
|
|
3875
4225
|
|
|
3876
4226
|
|
|
4227
|
+
|
|
4228
|
+
|
|
4229
|
+
|
|
4230
|
+
|
|
4231
|
+
|
|
4232
|
+
|
|
4233
|
+
|
|
3877
4234
|
|
|
3878
4235
|
|
|
3879
4236
|
|
|
@@ -3920,6 +4277,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3920
4277
|
|
|
3921
4278
|
|
|
3922
4279
|
|
|
4280
|
+
|
|
4281
|
+
|
|
4282
|
+
|
|
4283
|
+
|
|
4284
|
+
|
|
4285
|
+
|
|
4286
|
+
|
|
3923
4287
|
|
|
3924
4288
|
|
|
3925
4289
|
|
|
@@ -3986,6 +4350,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3986
4350
|
|
|
3987
4351
|
|
|
3988
4352
|
|
|
4353
|
+
|
|
4354
|
+
|
|
4355
|
+
|
|
4356
|
+
|
|
4357
|
+
|
|
4358
|
+
|
|
4359
|
+
|
|
3989
4360
|
|
|
3990
4361
|
|
|
3991
4362
|
|
|
@@ -4032,6 +4403,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4032
4403
|
|
|
4033
4404
|
|
|
4034
4405
|
|
|
4406
|
+
|
|
4407
|
+
|
|
4408
|
+
|
|
4409
|
+
|
|
4410
|
+
|
|
4411
|
+
|
|
4412
|
+
|
|
4035
4413
|
|
|
4036
4414
|
|
|
4037
4415
|
|
|
@@ -4080,6 +4458,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4080
4458
|
|
|
4081
4459
|
|
|
4082
4460
|
|
|
4461
|
+
|
|
4462
|
+
|
|
4463
|
+
|
|
4464
|
+
|
|
4465
|
+
|
|
4466
|
+
|
|
4467
|
+
|
|
4083
4468
|
|
|
4084
4469
|
|
|
4085
4470
|
|
|
@@ -4126,6 +4511,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4126
4511
|
|
|
4127
4512
|
|
|
4128
4513
|
|
|
4514
|
+
|
|
4515
|
+
|
|
4516
|
+
|
|
4517
|
+
|
|
4518
|
+
|
|
4519
|
+
|
|
4520
|
+
|
|
4129
4521
|
|
|
4130
4522
|
|
|
4131
4523
|
|
|
@@ -4175,6 +4567,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4175
4567
|
|
|
4176
4568
|
|
|
4177
4569
|
|
|
4570
|
+
|
|
4571
|
+
|
|
4572
|
+
|
|
4573
|
+
|
|
4574
|
+
|
|
4575
|
+
|
|
4576
|
+
|
|
4178
4577
|
|
|
4179
4578
|
|
|
4180
4579
|
|
|
@@ -4229,6 +4628,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4229
4628
|
|
|
4230
4629
|
|
|
4231
4630
|
|
|
4631
|
+
|
|
4632
|
+
|
|
4633
|
+
|
|
4634
|
+
|
|
4635
|
+
|
|
4636
|
+
|
|
4637
|
+
|
|
4232
4638
|
|
|
4233
4639
|
|
|
4234
4640
|
|
|
@@ -4281,6 +4687,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4281
4687
|
|
|
4282
4688
|
|
|
4283
4689
|
|
|
4690
|
+
|
|
4691
|
+
|
|
4692
|
+
|
|
4693
|
+
|
|
4694
|
+
|
|
4695
|
+
|
|
4696
|
+
|
|
4284
4697
|
|
|
4285
4698
|
|
|
4286
4699
|
|
|
@@ -4332,6 +4745,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4332
4745
|
|
|
4333
4746
|
|
|
4334
4747
|
|
|
4748
|
+
|
|
4749
|
+
|
|
4750
|
+
|
|
4751
|
+
|
|
4752
|
+
|
|
4753
|
+
|
|
4754
|
+
|
|
4335
4755
|
|
|
4336
4756
|
|
|
4337
4757
|
|
|
@@ -4389,6 +4809,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4389
4809
|
|
|
4390
4810
|
|
|
4391
4811
|
|
|
4812
|
+
|
|
4813
|
+
|
|
4814
|
+
|
|
4815
|
+
|
|
4816
|
+
|
|
4817
|
+
|
|
4818
|
+
|
|
4392
4819
|
|
|
4393
4820
|
|
|
4394
4821
|
|
|
@@ -4454,6 +4881,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4454
4881
|
|
|
4455
4882
|
|
|
4456
4883
|
|
|
4884
|
+
|
|
4885
|
+
|
|
4886
|
+
|
|
4887
|
+
|
|
4888
|
+
|
|
4889
|
+
|
|
4890
|
+
|
|
4457
4891
|
|
|
4458
4892
|
|
|
4459
4893
|
|
|
@@ -4503,6 +4937,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4503
4937
|
|
|
4504
4938
|
|
|
4505
4939
|
|
|
4940
|
+
|
|
4941
|
+
|
|
4942
|
+
|
|
4943
|
+
|
|
4944
|
+
|
|
4945
|
+
|
|
4946
|
+
|
|
4506
4947
|
|
|
4507
4948
|
|
|
4508
4949
|
|