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/cjs/index.cjs
CHANGED
|
@@ -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 {
|
|
@@ -811,6 +850,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
811
850
|
|
|
812
851
|
|
|
813
852
|
|
|
853
|
+
|
|
854
|
+
|
|
855
|
+
|
|
856
|
+
|
|
857
|
+
|
|
858
|
+
|
|
859
|
+
|
|
814
860
|
|
|
815
861
|
|
|
816
862
|
|
|
@@ -878,6 +924,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
878
924
|
|
|
879
925
|
|
|
880
926
|
|
|
927
|
+
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
|
|
881
934
|
|
|
882
935
|
|
|
883
936
|
|
|
@@ -950,6 +1003,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
950
1003
|
|
|
951
1004
|
|
|
952
1005
|
|
|
1006
|
+
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
|
|
1010
|
+
|
|
1011
|
+
|
|
1012
|
+
|
|
953
1013
|
|
|
954
1014
|
|
|
955
1015
|
|
|
@@ -1004,6 +1064,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1004
1064
|
|
|
1005
1065
|
|
|
1006
1066
|
|
|
1067
|
+
|
|
1068
|
+
|
|
1069
|
+
|
|
1070
|
+
|
|
1071
|
+
|
|
1072
|
+
|
|
1073
|
+
|
|
1007
1074
|
|
|
1008
1075
|
|
|
1009
1076
|
|
|
@@ -1119,6 +1186,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1119
1186
|
|
|
1120
1187
|
|
|
1121
1188
|
|
|
1189
|
+
|
|
1190
|
+
|
|
1191
|
+
|
|
1192
|
+
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
|
|
1122
1196
|
|
|
1123
1197
|
|
|
1124
1198
|
|
|
@@ -1178,6 +1252,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1178
1252
|
|
|
1179
1253
|
|
|
1180
1254
|
|
|
1255
|
+
|
|
1256
|
+
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
|
|
1260
|
+
|
|
1261
|
+
|
|
1181
1262
|
|
|
1182
1263
|
|
|
1183
1264
|
|
|
@@ -1226,6 +1307,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1226
1307
|
|
|
1227
1308
|
|
|
1228
1309
|
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
|
|
1314
|
+
|
|
1315
|
+
|
|
1316
|
+
|
|
1229
1317
|
|
|
1230
1318
|
|
|
1231
1319
|
|
|
@@ -1280,6 +1368,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1280
1368
|
|
|
1281
1369
|
|
|
1282
1370
|
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
|
|
1374
|
+
|
|
1375
|
+
|
|
1376
|
+
|
|
1377
|
+
|
|
1283
1378
|
|
|
1284
1379
|
|
|
1285
1380
|
|
|
@@ -1339,6 +1434,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1339
1434
|
|
|
1340
1435
|
|
|
1341
1436
|
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
|
|
1442
|
+
|
|
1443
|
+
|
|
1342
1444
|
|
|
1343
1445
|
|
|
1344
1446
|
|
|
@@ -1406,6 +1508,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1406
1508
|
|
|
1407
1509
|
|
|
1408
1510
|
|
|
1511
|
+
|
|
1512
|
+
|
|
1513
|
+
|
|
1514
|
+
|
|
1515
|
+
|
|
1516
|
+
|
|
1517
|
+
|
|
1409
1518
|
|
|
1410
1519
|
|
|
1411
1520
|
|
|
@@ -1450,6 +1559,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1450
1559
|
|
|
1451
1560
|
|
|
1452
1561
|
|
|
1562
|
+
|
|
1563
|
+
|
|
1564
|
+
|
|
1565
|
+
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
|
|
1453
1569
|
|
|
1454
1570
|
|
|
1455
1571
|
|
|
@@ -1500,6 +1616,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1500
1616
|
|
|
1501
1617
|
|
|
1502
1618
|
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
|
|
1622
|
+
|
|
1623
|
+
|
|
1624
|
+
|
|
1625
|
+
|
|
1503
1626
|
|
|
1504
1627
|
|
|
1505
1628
|
|
|
@@ -1716,6 +1839,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1716
1839
|
|
|
1717
1840
|
|
|
1718
1841
|
|
|
1842
|
+
|
|
1843
|
+
|
|
1844
|
+
|
|
1845
|
+
|
|
1846
|
+
|
|
1847
|
+
|
|
1848
|
+
|
|
1719
1849
|
|
|
1720
1850
|
|
|
1721
1851
|
|
|
@@ -1770,6 +1900,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1770
1900
|
|
|
1771
1901
|
|
|
1772
1902
|
|
|
1903
|
+
|
|
1904
|
+
|
|
1905
|
+
|
|
1906
|
+
|
|
1907
|
+
|
|
1908
|
+
|
|
1909
|
+
|
|
1773
1910
|
|
|
1774
1911
|
|
|
1775
1912
|
|
|
@@ -1852,6 +1989,13 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1852
1989
|
|
|
1853
1990
|
|
|
1854
1991
|
|
|
1992
|
+
|
|
1993
|
+
|
|
1994
|
+
|
|
1995
|
+
|
|
1996
|
+
|
|
1997
|
+
|
|
1998
|
+
|
|
1855
1999
|
|
|
1856
2000
|
|
|
1857
2001
|
|
|
@@ -2172,6 +2316,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2172
2316
|
|
|
2173
2317
|
|
|
2174
2318
|
|
|
2319
|
+
|
|
2320
|
+
|
|
2321
|
+
|
|
2322
|
+
|
|
2323
|
+
|
|
2324
|
+
|
|
2325
|
+
|
|
2175
2326
|
|
|
2176
2327
|
|
|
2177
2328
|
|
|
@@ -2241,6 +2392,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2241
2392
|
|
|
2242
2393
|
|
|
2243
2394
|
|
|
2395
|
+
|
|
2396
|
+
|
|
2397
|
+
|
|
2398
|
+
|
|
2399
|
+
|
|
2400
|
+
|
|
2401
|
+
|
|
2244
2402
|
|
|
2245
2403
|
|
|
2246
2404
|
|
|
@@ -2309,6 +2467,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2309
2467
|
|
|
2310
2468
|
|
|
2311
2469
|
|
|
2470
|
+
|
|
2471
|
+
|
|
2472
|
+
|
|
2473
|
+
|
|
2474
|
+
|
|
2475
|
+
|
|
2476
|
+
|
|
2312
2477
|
|
|
2313
2478
|
|
|
2314
2479
|
|
|
@@ -2368,6 +2533,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2368
2533
|
|
|
2369
2534
|
|
|
2370
2535
|
|
|
2536
|
+
|
|
2537
|
+
|
|
2538
|
+
|
|
2539
|
+
|
|
2540
|
+
|
|
2541
|
+
|
|
2542
|
+
|
|
2371
2543
|
|
|
2372
2544
|
|
|
2373
2545
|
|
|
@@ -2456,6 +2628,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2456
2628
|
|
|
2457
2629
|
|
|
2458
2630
|
|
|
2631
|
+
|
|
2632
|
+
|
|
2633
|
+
|
|
2634
|
+
|
|
2635
|
+
|
|
2636
|
+
|
|
2637
|
+
|
|
2459
2638
|
|
|
2460
2639
|
|
|
2461
2640
|
|
|
@@ -2505,6 +2684,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2505
2684
|
|
|
2506
2685
|
|
|
2507
2686
|
|
|
2687
|
+
|
|
2688
|
+
|
|
2689
|
+
|
|
2690
|
+
|
|
2691
|
+
|
|
2692
|
+
|
|
2693
|
+
|
|
2508
2694
|
|
|
2509
2695
|
|
|
2510
2696
|
|
|
@@ -2585,6 +2771,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2585
2771
|
|
|
2586
2772
|
|
|
2587
2773
|
|
|
2774
|
+
|
|
2775
|
+
|
|
2776
|
+
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
|
|
2780
|
+
|
|
2588
2781
|
|
|
2589
2782
|
|
|
2590
2783
|
|
|
@@ -2693,6 +2886,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2693
2886
|
|
|
2694
2887
|
|
|
2695
2888
|
|
|
2889
|
+
|
|
2890
|
+
|
|
2891
|
+
|
|
2892
|
+
|
|
2893
|
+
|
|
2894
|
+
|
|
2895
|
+
|
|
2696
2896
|
|
|
2697
2897
|
|
|
2698
2898
|
|
|
@@ -2748,6 +2948,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2748
2948
|
|
|
2749
2949
|
|
|
2750
2950
|
|
|
2951
|
+
|
|
2952
|
+
|
|
2953
|
+
|
|
2954
|
+
|
|
2955
|
+
|
|
2956
|
+
|
|
2957
|
+
|
|
2751
2958
|
|
|
2752
2959
|
|
|
2753
2960
|
|
|
@@ -2805,6 +3012,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2805
3012
|
|
|
2806
3013
|
|
|
2807
3014
|
|
|
3015
|
+
|
|
3016
|
+
|
|
3017
|
+
|
|
3018
|
+
|
|
3019
|
+
|
|
3020
|
+
|
|
3021
|
+
|
|
2808
3022
|
|
|
2809
3023
|
|
|
2810
3024
|
|
|
@@ -2849,6 +3063,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2849
3063
|
|
|
2850
3064
|
|
|
2851
3065
|
|
|
3066
|
+
|
|
3067
|
+
|
|
3068
|
+
|
|
3069
|
+
|
|
3070
|
+
|
|
3071
|
+
|
|
3072
|
+
|
|
2852
3073
|
|
|
2853
3074
|
|
|
2854
3075
|
|
|
@@ -2897,6 +3118,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2897
3118
|
|
|
2898
3119
|
|
|
2899
3120
|
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
3127
|
+
|
|
2900
3128
|
|
|
2901
3129
|
|
|
2902
3130
|
|
|
@@ -2952,6 +3180,10 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2952
3180
|
|
|
2953
3181
|
|
|
2954
3182
|
|
|
3183
|
+
|
|
3184
|
+
|
|
3185
|
+
|
|
3186
|
+
|
|
2955
3187
|
|
|
2956
3188
|
|
|
2957
3189
|
|
|
@@ -2960,11 +3192,31 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2960
3192
|
* @example
|
|
2961
3193
|
* // Find value scanning from tail
|
|
2962
3194
|
* const list = new DoublyLinkedList<number>([1, 2, 3, 4]);
|
|
2963
|
-
* //
|
|
2964
|
-
* const found = list.
|
|
3195
|
+
* // findLast scans from tail to head, returns first match
|
|
3196
|
+
* const found = list.findLast(node => node.value < 4);
|
|
2965
3197
|
* console.log(found); // 3;
|
|
2966
3198
|
*/
|
|
3199
|
+
/**
|
|
3200
|
+
* @deprecated Use `findLast` instead. Will be removed in a future major version.
|
|
3201
|
+
*/
|
|
2967
3202
|
getBackward(elementNodeOrPredicate) {
|
|
3203
|
+
return this.findLast(elementNodeOrPredicate);
|
|
3204
|
+
}
|
|
3205
|
+
/**
|
|
3206
|
+
* Find the first value matching a predicate scanning backward (tail → head).
|
|
3207
|
+
* @remarks Time O(N), Space O(1)
|
|
3208
|
+
* @param elementNodeOrPredicate - Element, node, or predicate to match.
|
|
3209
|
+
* @returns Matching value or undefined.
|
|
3210
|
+
|
|
3211
|
+
|
|
3212
|
+
* @example
|
|
3213
|
+
* // Find value scanning from tail
|
|
3214
|
+
* const list = new DoublyLinkedList<number>([1, 2, 3, 4]);
|
|
3215
|
+
* // findLast scans from tail to head, returns first match
|
|
3216
|
+
* const found = list.findLast(node => node.value < 4);
|
|
3217
|
+
* console.log(found); // 3;
|
|
3218
|
+
*/
|
|
3219
|
+
findLast(elementNodeOrPredicate) {
|
|
2968
3220
|
const predicate = this._ensurePredicate(elementNodeOrPredicate);
|
|
2969
3221
|
let current = this.tail;
|
|
2970
3222
|
while (current) {
|
|
@@ -2973,6 +3225,22 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
2973
3225
|
}
|
|
2974
3226
|
return void 0;
|
|
2975
3227
|
}
|
|
3228
|
+
/**
|
|
3229
|
+
* Find the index of the last value matching a predicate (scans tail → head).
|
|
3230
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
|
|
3231
|
+
* @param predicate - Function called with (value, index, list).
|
|
3232
|
+
* @returns Matching index, or -1 if not found.
|
|
3233
|
+
*/
|
|
3234
|
+
findLastIndex(predicate) {
|
|
3235
|
+
let current = this.tail;
|
|
3236
|
+
let index = this.length - 1;
|
|
3237
|
+
while (current) {
|
|
3238
|
+
if (predicate(current.value, index, this)) return index;
|
|
3239
|
+
current = current.prev;
|
|
3240
|
+
index--;
|
|
3241
|
+
}
|
|
3242
|
+
return -1;
|
|
3243
|
+
}
|
|
2976
3244
|
/**
|
|
2977
3245
|
* Reverse the list in place.
|
|
2978
3246
|
* @remarks Time O(N), Space O(1)
|
|
@@ -3004,6 +3272,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
3004
3272
|
|
|
3005
3273
|
|
|
3006
3274
|
|
|
3275
|
+
|
|
3276
|
+
|
|
3277
|
+
|
|
3278
|
+
|
|
3279
|
+
|
|
3280
|
+
|
|
3281
|
+
|
|
3007
3282
|
|
|
3008
3283
|
|
|
3009
3284
|
|
|
@@ -3028,6 +3303,25 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
3028
3303
|
}
|
|
3029
3304
|
return this;
|
|
3030
3305
|
}
|
|
3306
|
+
/**
|
|
3307
|
+
* Delete the first element that satisfies a predicate.
|
|
3308
|
+
* @remarks Time O(N), Space O(1)
|
|
3309
|
+
* @param predicate - Function (value, index, list) → boolean to decide deletion.
|
|
3310
|
+
* @returns True if a match was removed.
|
|
3311
|
+
*/
|
|
3312
|
+
deleteWhere(predicate) {
|
|
3313
|
+
let current = this.head;
|
|
3314
|
+
let index = 0;
|
|
3315
|
+
while (current) {
|
|
3316
|
+
if (predicate(current.value, index, this)) {
|
|
3317
|
+
this.delete(current);
|
|
3318
|
+
return true;
|
|
3319
|
+
}
|
|
3320
|
+
current = current.next;
|
|
3321
|
+
index++;
|
|
3322
|
+
}
|
|
3323
|
+
return false;
|
|
3324
|
+
}
|
|
3031
3325
|
/**
|
|
3032
3326
|
* Set the equality comparator used to compare values.
|
|
3033
3327
|
* @remarks Time O(1), Space O(1)
|
|
@@ -3067,6 +3361,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
3067
3361
|
|
|
3068
3362
|
|
|
3069
3363
|
|
|
3364
|
+
|
|
3365
|
+
|
|
3366
|
+
|
|
3367
|
+
|
|
3368
|
+
|
|
3369
|
+
|
|
3370
|
+
|
|
3070
3371
|
|
|
3071
3372
|
|
|
3072
3373
|
|
|
@@ -3120,6 +3421,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
3120
3421
|
|
|
3121
3422
|
|
|
3122
3423
|
|
|
3424
|
+
|
|
3425
|
+
|
|
3426
|
+
|
|
3427
|
+
|
|
3428
|
+
|
|
3429
|
+
|
|
3430
|
+
|
|
3123
3431
|
|
|
3124
3432
|
|
|
3125
3433
|
|
|
@@ -3192,6 +3500,13 @@ var DoublyLinkedList = class extends LinearLinkedBase {
|
|
|
3192
3500
|
|
|
3193
3501
|
|
|
3194
3502
|
|
|
3503
|
+
|
|
3504
|
+
|
|
3505
|
+
|
|
3506
|
+
|
|
3507
|
+
|
|
3508
|
+
|
|
3509
|
+
|
|
3195
3510
|
|
|
3196
3511
|
|
|
3197
3512
|
|
|
@@ -3595,6 +3910,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3595
3910
|
|
|
3596
3911
|
|
|
3597
3912
|
|
|
3913
|
+
|
|
3914
|
+
|
|
3915
|
+
|
|
3916
|
+
|
|
3917
|
+
|
|
3918
|
+
|
|
3919
|
+
|
|
3598
3920
|
|
|
3599
3921
|
|
|
3600
3922
|
|
|
@@ -3637,6 +3959,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3637
3959
|
|
|
3638
3960
|
|
|
3639
3961
|
|
|
3962
|
+
|
|
3963
|
+
|
|
3964
|
+
|
|
3965
|
+
|
|
3966
|
+
|
|
3967
|
+
|
|
3968
|
+
|
|
3640
3969
|
|
|
3641
3970
|
|
|
3642
3971
|
|
|
@@ -3682,6 +4011,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3682
4011
|
|
|
3683
4012
|
|
|
3684
4013
|
|
|
4014
|
+
|
|
4015
|
+
|
|
4016
|
+
|
|
4017
|
+
|
|
4018
|
+
|
|
4019
|
+
|
|
4020
|
+
|
|
3685
4021
|
|
|
3686
4022
|
|
|
3687
4023
|
|
|
@@ -3735,6 +4071,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3735
4071
|
|
|
3736
4072
|
|
|
3737
4073
|
|
|
4074
|
+
|
|
4075
|
+
|
|
4076
|
+
|
|
4077
|
+
|
|
4078
|
+
|
|
4079
|
+
|
|
4080
|
+
|
|
3738
4081
|
|
|
3739
4082
|
|
|
3740
4083
|
|
|
@@ -3813,6 +4156,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3813
4156
|
|
|
3814
4157
|
|
|
3815
4158
|
|
|
4159
|
+
|
|
4160
|
+
|
|
4161
|
+
|
|
4162
|
+
|
|
4163
|
+
|
|
4164
|
+
|
|
4165
|
+
|
|
3816
4166
|
|
|
3817
4167
|
|
|
3818
4168
|
|
|
@@ -3876,6 +4226,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3876
4226
|
|
|
3877
4227
|
|
|
3878
4228
|
|
|
4229
|
+
|
|
4230
|
+
|
|
4231
|
+
|
|
4232
|
+
|
|
4233
|
+
|
|
4234
|
+
|
|
4235
|
+
|
|
3879
4236
|
|
|
3880
4237
|
|
|
3881
4238
|
|
|
@@ -3922,6 +4279,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3922
4279
|
|
|
3923
4280
|
|
|
3924
4281
|
|
|
4282
|
+
|
|
4283
|
+
|
|
4284
|
+
|
|
4285
|
+
|
|
4286
|
+
|
|
4287
|
+
|
|
4288
|
+
|
|
3925
4289
|
|
|
3926
4290
|
|
|
3927
4291
|
|
|
@@ -3988,6 +4352,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
3988
4352
|
|
|
3989
4353
|
|
|
3990
4354
|
|
|
4355
|
+
|
|
4356
|
+
|
|
4357
|
+
|
|
4358
|
+
|
|
4359
|
+
|
|
4360
|
+
|
|
4361
|
+
|
|
3991
4362
|
|
|
3992
4363
|
|
|
3993
4364
|
|
|
@@ -4034,6 +4405,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4034
4405
|
|
|
4035
4406
|
|
|
4036
4407
|
|
|
4408
|
+
|
|
4409
|
+
|
|
4410
|
+
|
|
4411
|
+
|
|
4412
|
+
|
|
4413
|
+
|
|
4414
|
+
|
|
4037
4415
|
|
|
4038
4416
|
|
|
4039
4417
|
|
|
@@ -4082,6 +4460,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4082
4460
|
|
|
4083
4461
|
|
|
4084
4462
|
|
|
4463
|
+
|
|
4464
|
+
|
|
4465
|
+
|
|
4466
|
+
|
|
4467
|
+
|
|
4468
|
+
|
|
4469
|
+
|
|
4085
4470
|
|
|
4086
4471
|
|
|
4087
4472
|
|
|
@@ -4128,6 +4513,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4128
4513
|
|
|
4129
4514
|
|
|
4130
4515
|
|
|
4516
|
+
|
|
4517
|
+
|
|
4518
|
+
|
|
4519
|
+
|
|
4520
|
+
|
|
4521
|
+
|
|
4522
|
+
|
|
4131
4523
|
|
|
4132
4524
|
|
|
4133
4525
|
|
|
@@ -4177,6 +4569,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4177
4569
|
|
|
4178
4570
|
|
|
4179
4571
|
|
|
4572
|
+
|
|
4573
|
+
|
|
4574
|
+
|
|
4575
|
+
|
|
4576
|
+
|
|
4577
|
+
|
|
4578
|
+
|
|
4180
4579
|
|
|
4181
4580
|
|
|
4182
4581
|
|
|
@@ -4231,6 +4630,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4231
4630
|
|
|
4232
4631
|
|
|
4233
4632
|
|
|
4633
|
+
|
|
4634
|
+
|
|
4635
|
+
|
|
4636
|
+
|
|
4637
|
+
|
|
4638
|
+
|
|
4639
|
+
|
|
4234
4640
|
|
|
4235
4641
|
|
|
4236
4642
|
|
|
@@ -4283,6 +4689,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4283
4689
|
|
|
4284
4690
|
|
|
4285
4691
|
|
|
4692
|
+
|
|
4693
|
+
|
|
4694
|
+
|
|
4695
|
+
|
|
4696
|
+
|
|
4697
|
+
|
|
4698
|
+
|
|
4286
4699
|
|
|
4287
4700
|
|
|
4288
4701
|
|
|
@@ -4334,6 +4747,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4334
4747
|
|
|
4335
4748
|
|
|
4336
4749
|
|
|
4750
|
+
|
|
4751
|
+
|
|
4752
|
+
|
|
4753
|
+
|
|
4754
|
+
|
|
4755
|
+
|
|
4756
|
+
|
|
4337
4757
|
|
|
4338
4758
|
|
|
4339
4759
|
|
|
@@ -4391,6 +4811,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4391
4811
|
|
|
4392
4812
|
|
|
4393
4813
|
|
|
4814
|
+
|
|
4815
|
+
|
|
4816
|
+
|
|
4817
|
+
|
|
4818
|
+
|
|
4819
|
+
|
|
4820
|
+
|
|
4394
4821
|
|
|
4395
4822
|
|
|
4396
4823
|
|
|
@@ -4456,6 +4883,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4456
4883
|
|
|
4457
4884
|
|
|
4458
4885
|
|
|
4886
|
+
|
|
4887
|
+
|
|
4888
|
+
|
|
4889
|
+
|
|
4890
|
+
|
|
4891
|
+
|
|
4892
|
+
|
|
4459
4893
|
|
|
4460
4894
|
|
|
4461
4895
|
|
|
@@ -4505,6 +4939,13 @@ var SkipList = class _SkipList extends IterableEntryBase {
|
|
|
4505
4939
|
|
|
4506
4940
|
|
|
4507
4941
|
|
|
4942
|
+
|
|
4943
|
+
|
|
4944
|
+
|
|
4945
|
+
|
|
4946
|
+
|
|
4947
|
+
|
|
4948
|
+
|
|
4508
4949
|
|
|
4509
4950
|
|
|
4510
4951
|
|