graph-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 +422 -14
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs-legacy/index.cjs +422 -14
- package/dist/cjs-legacy/index.cjs.map +1 -1
- package/dist/esm/index.mjs +422 -14
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm-legacy/index.mjs +422 -14
- 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/graph-typed.js +422 -14
- package/dist/umd/graph-typed.js.map +1 -1
- package/dist/umd/graph-typed.min.js +2 -2
- package/dist/umd/graph-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
|
@@ -410,6 +410,35 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
410
410
|
for (const ele of this) if (ele === element) return true;
|
|
411
411
|
return false;
|
|
412
412
|
}
|
|
413
|
+
/**
|
|
414
|
+
* Check whether a value exists (Array-compatible alias for `has`).
|
|
415
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
|
|
416
|
+
* @param element - Element to search for (uses `===`).
|
|
417
|
+
* @returns `true` if found.
|
|
418
|
+
*/
|
|
419
|
+
includes(element) {
|
|
420
|
+
return this.has(element);
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Return an iterator of `[index, value]` pairs (Array-compatible).
|
|
424
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
|
|
425
|
+
*/
|
|
426
|
+
*entries() {
|
|
427
|
+
let index = 0;
|
|
428
|
+
for (const value of this) {
|
|
429
|
+
yield [index++, value];
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Return an iterator of numeric indices (Array-compatible).
|
|
434
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
|
|
435
|
+
*/
|
|
436
|
+
*keys() {
|
|
437
|
+
let index = 0;
|
|
438
|
+
for (const _ of this) {
|
|
439
|
+
yield index++;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
413
442
|
/**
|
|
414
443
|
* Reduces all elements to a single accumulated value.
|
|
415
444
|
*
|
|
@@ -671,6 +700,16 @@ var _LinearBase = class _LinearBase extends IterableElementBase {
|
|
|
671
700
|
}
|
|
672
701
|
return this;
|
|
673
702
|
}
|
|
703
|
+
/**
|
|
704
|
+
* Return a new instance of the same type with elements in reverse order (non-mutating).
|
|
705
|
+
* @remarks Provided for familiarity when migrating from Array (ES2023 `toReversed`). Time O(n), Space O(n).
|
|
706
|
+
* @returns A new reversed instance.
|
|
707
|
+
*/
|
|
708
|
+
toReversed() {
|
|
709
|
+
const cloned = this.clone();
|
|
710
|
+
cloned.reverse();
|
|
711
|
+
return cloned;
|
|
712
|
+
}
|
|
674
713
|
};
|
|
675
714
|
__name(_LinearBase, "LinearBase");
|
|
676
715
|
var LinearBase = _LinearBase;
|
|
@@ -742,6 +781,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
742
781
|
|
|
743
782
|
|
|
744
783
|
|
|
784
|
+
|
|
785
|
+
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
|
|
789
|
+
|
|
790
|
+
|
|
745
791
|
|
|
746
792
|
|
|
747
793
|
|
|
@@ -799,7 +845,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
799
845
|
}
|
|
800
846
|
/**
|
|
801
847
|
* Insert an element.
|
|
802
|
-
* @remarks Time O(
|
|
848
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
803
849
|
* @param element - Element to insert.
|
|
804
850
|
* @returns True.
|
|
805
851
|
|
|
@@ -829,6 +875,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
829
875
|
|
|
830
876
|
|
|
831
877
|
|
|
878
|
+
|
|
879
|
+
|
|
880
|
+
|
|
881
|
+
|
|
882
|
+
|
|
883
|
+
|
|
884
|
+
|
|
832
885
|
|
|
833
886
|
|
|
834
887
|
|
|
@@ -886,6 +939,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
886
939
|
|
|
887
940
|
|
|
888
941
|
|
|
942
|
+
|
|
943
|
+
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
|
|
948
|
+
|
|
889
949
|
|
|
890
950
|
|
|
891
951
|
|
|
@@ -949,7 +1009,41 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
949
1009
|
|
|
950
1010
|
|
|
951
1011
|
|
|
1012
|
+
|
|
1013
|
+
|
|
1014
|
+
|
|
952
1015
|
|
|
1016
|
+
|
|
1017
|
+
|
|
1018
|
+
|
|
1019
|
+
* @example
|
|
1020
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
1021
|
+
* interface Task {
|
|
1022
|
+
* id: number;
|
|
1023
|
+
* priority: number;
|
|
1024
|
+
* name: string;
|
|
1025
|
+
* }
|
|
1026
|
+
*
|
|
1027
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
1028
|
+
* const tasks: Task[] = [
|
|
1029
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
1030
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
1031
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
1032
|
+
* ];
|
|
1033
|
+
*
|
|
1034
|
+
* const maxHeap = new Heap(tasks, {
|
|
1035
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
1036
|
+
* });
|
|
1037
|
+
*
|
|
1038
|
+
* console.log(maxHeap.size); // 3;
|
|
1039
|
+
*
|
|
1040
|
+
* // Peek returns highest priority task
|
|
1041
|
+
* const topTask = maxHeap.peek();
|
|
1042
|
+
* console.log(topTask?.priority); // 8;
|
|
1043
|
+
* console.log(topTask?.name); // 'Alert';
|
|
1044
|
+
*/
|
|
1045
|
+
/**
|
|
1046
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
953
1047
|
|
|
954
1048
|
|
|
955
1049
|
|
|
@@ -980,6 +1074,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
980
1074
|
* console.log(topTask?.name); // 'Alert';
|
|
981
1075
|
*/
|
|
982
1076
|
poll() {
|
|
1077
|
+
return this.pop();
|
|
1078
|
+
}
|
|
1079
|
+
/**
|
|
1080
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
1081
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1082
|
+
* @returns The removed top element, or undefined if empty.
|
|
1083
|
+
*/
|
|
1084
|
+
pop() {
|
|
983
1085
|
if (this.elements.length === 0) return;
|
|
984
1086
|
const value = this.elements[0];
|
|
985
1087
|
const last = this.elements.pop();
|
|
@@ -1020,6 +1122,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1020
1122
|
|
|
1021
1123
|
|
|
1022
1124
|
|
|
1125
|
+
|
|
1126
|
+
|
|
1127
|
+
|
|
1128
|
+
|
|
1129
|
+
|
|
1130
|
+
|
|
1131
|
+
|
|
1023
1132
|
|
|
1024
1133
|
|
|
1025
1134
|
|
|
@@ -1120,6 +1229,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1120
1229
|
|
|
1121
1230
|
|
|
1122
1231
|
|
|
1232
|
+
|
|
1233
|
+
|
|
1234
|
+
|
|
1235
|
+
|
|
1236
|
+
|
|
1237
|
+
|
|
1238
|
+
|
|
1123
1239
|
|
|
1124
1240
|
|
|
1125
1241
|
|
|
@@ -1167,6 +1283,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1167
1283
|
|
|
1168
1284
|
|
|
1169
1285
|
|
|
1286
|
+
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
|
|
1290
|
+
|
|
1291
|
+
|
|
1292
|
+
|
|
1170
1293
|
|
|
1171
1294
|
|
|
1172
1295
|
|
|
@@ -1184,16 +1307,6 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1184
1307
|
clear() {
|
|
1185
1308
|
this._elements = [];
|
|
1186
1309
|
}
|
|
1187
|
-
/**
|
|
1188
|
-
* Replace the backing array and rebuild the heap.
|
|
1189
|
-
* @remarks Time O(N), Space O(N)
|
|
1190
|
-
* @param elements - Iterable used to refill the heap.
|
|
1191
|
-
* @returns Array of per-node results from fixing steps.
|
|
1192
|
-
*/
|
|
1193
|
-
refill(elements) {
|
|
1194
|
-
this._elements = Array.from(elements);
|
|
1195
|
-
return this.fix();
|
|
1196
|
-
}
|
|
1197
1310
|
/**
|
|
1198
1311
|
* Check if an equal element exists in the heap.
|
|
1199
1312
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1217,6 +1330,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1217
1330
|
|
|
1218
1331
|
|
|
1219
1332
|
|
|
1333
|
+
|
|
1334
|
+
|
|
1335
|
+
|
|
1336
|
+
|
|
1337
|
+
|
|
1338
|
+
|
|
1339
|
+
|
|
1220
1340
|
|
|
1221
1341
|
|
|
1222
1342
|
|
|
@@ -1264,6 +1384,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1264
1384
|
|
|
1265
1385
|
|
|
1266
1386
|
|
|
1387
|
+
|
|
1388
|
+
|
|
1389
|
+
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
|
|
1267
1394
|
|
|
1268
1395
|
|
|
1269
1396
|
|
|
@@ -1288,7 +1415,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1288
1415
|
}
|
|
1289
1416
|
if (index < 0) return false;
|
|
1290
1417
|
if (index === 0) {
|
|
1291
|
-
this.
|
|
1418
|
+
this.pop();
|
|
1292
1419
|
} else if (index === this.elements.length - 1) {
|
|
1293
1420
|
this.elements.pop();
|
|
1294
1421
|
} else {
|
|
@@ -1298,13 +1425,19 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1298
1425
|
}
|
|
1299
1426
|
return true;
|
|
1300
1427
|
}
|
|
1428
|
+
/**
|
|
1429
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1430
|
+
*/
|
|
1431
|
+
deleteBy(predicate) {
|
|
1432
|
+
return this.deleteWhere(predicate);
|
|
1433
|
+
}
|
|
1301
1434
|
/**
|
|
1302
1435
|
* Delete the first element that matches a predicate.
|
|
1303
1436
|
* @remarks Time O(N), Space O(1)
|
|
1304
1437
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1305
1438
|
* @returns True if an element was removed.
|
|
1306
1439
|
*/
|
|
1307
|
-
|
|
1440
|
+
deleteWhere(predicate) {
|
|
1308
1441
|
let idx = -1;
|
|
1309
1442
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1310
1443
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1314,7 +1447,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1314
1447
|
}
|
|
1315
1448
|
if (idx < 0) return false;
|
|
1316
1449
|
if (idx === 0) {
|
|
1317
|
-
this.
|
|
1450
|
+
this.pop();
|
|
1318
1451
|
} else if (idx === this.elements.length - 1) {
|
|
1319
1452
|
this.elements.pop();
|
|
1320
1453
|
} else {
|
|
@@ -1357,6 +1490,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1357
1490
|
|
|
1358
1491
|
|
|
1359
1492
|
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
|
|
1499
|
+
|
|
1360
1500
|
|
|
1361
1501
|
|
|
1362
1502
|
|
|
@@ -1437,6 +1577,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1437
1577
|
|
|
1438
1578
|
|
|
1439
1579
|
|
|
1580
|
+
|
|
1581
|
+
|
|
1582
|
+
|
|
1583
|
+
|
|
1584
|
+
|
|
1585
|
+
|
|
1586
|
+
|
|
1440
1587
|
|
|
1441
1588
|
|
|
1442
1589
|
|
|
@@ -1490,6 +1637,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1490
1637
|
|
|
1491
1638
|
|
|
1492
1639
|
|
|
1640
|
+
|
|
1641
|
+
|
|
1642
|
+
|
|
1643
|
+
|
|
1644
|
+
|
|
1645
|
+
|
|
1646
|
+
|
|
1493
1647
|
|
|
1494
1648
|
|
|
1495
1649
|
|
|
@@ -1542,6 +1696,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1542
1696
|
|
|
1543
1697
|
|
|
1544
1698
|
|
|
1699
|
+
|
|
1700
|
+
|
|
1701
|
+
|
|
1702
|
+
|
|
1703
|
+
|
|
1704
|
+
|
|
1705
|
+
|
|
1545
1706
|
|
|
1546
1707
|
|
|
1547
1708
|
|
|
@@ -1601,6 +1762,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1601
1762
|
|
|
1602
1763
|
|
|
1603
1764
|
|
|
1765
|
+
|
|
1766
|
+
|
|
1767
|
+
|
|
1768
|
+
|
|
1769
|
+
|
|
1770
|
+
|
|
1771
|
+
|
|
1604
1772
|
|
|
1605
1773
|
|
|
1606
1774
|
|
|
@@ -1804,6 +1972,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1804
1972
|
|
|
1805
1973
|
|
|
1806
1974
|
|
|
1975
|
+
|
|
1976
|
+
|
|
1977
|
+
|
|
1978
|
+
|
|
1979
|
+
|
|
1980
|
+
|
|
1981
|
+
|
|
1807
1982
|
|
|
1808
1983
|
|
|
1809
1984
|
|
|
@@ -1854,6 +2029,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1854
2029
|
|
|
1855
2030
|
|
|
1856
2031
|
|
|
2032
|
+
|
|
2033
|
+
|
|
2034
|
+
|
|
2035
|
+
|
|
2036
|
+
|
|
2037
|
+
|
|
2038
|
+
|
|
1857
2039
|
|
|
1858
2040
|
|
|
1859
2041
|
|
|
@@ -1871,6 +2053,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1871
2053
|
get first() {
|
|
1872
2054
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1873
2055
|
}
|
|
2056
|
+
/**
|
|
2057
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2058
|
+
* @remarks Time O(1), Space O(1)
|
|
2059
|
+
* @returns Front element or undefined.
|
|
2060
|
+
*/
|
|
2061
|
+
peek() {
|
|
2062
|
+
return this.first;
|
|
2063
|
+
}
|
|
1874
2064
|
/**
|
|
1875
2065
|
* Get the last element (back) without removing it.
|
|
1876
2066
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1920,6 +2110,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1920
2110
|
|
|
1921
2111
|
|
|
1922
2112
|
|
|
2113
|
+
|
|
2114
|
+
|
|
2115
|
+
|
|
2116
|
+
|
|
2117
|
+
|
|
2118
|
+
|
|
2119
|
+
|
|
1923
2120
|
|
|
1924
2121
|
|
|
1925
2122
|
|
|
@@ -1982,6 +2179,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1982
2179
|
|
|
1983
2180
|
|
|
1984
2181
|
|
|
2182
|
+
|
|
2183
|
+
|
|
2184
|
+
|
|
2185
|
+
|
|
2186
|
+
|
|
2187
|
+
|
|
2188
|
+
|
|
1985
2189
|
|
|
1986
2190
|
|
|
1987
2191
|
|
|
@@ -2051,6 +2255,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2051
2255
|
|
|
2052
2256
|
|
|
2053
2257
|
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
|
|
2261
|
+
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
|
|
2054
2265
|
|
|
2055
2266
|
|
|
2056
2267
|
|
|
@@ -2110,6 +2321,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2110
2321
|
|
|
2111
2322
|
|
|
2112
2323
|
|
|
2324
|
+
|
|
2325
|
+
|
|
2326
|
+
|
|
2327
|
+
|
|
2328
|
+
|
|
2329
|
+
|
|
2330
|
+
|
|
2113
2331
|
|
|
2114
2332
|
|
|
2115
2333
|
|
|
@@ -2162,6 +2380,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2162
2380
|
|
|
2163
2381
|
|
|
2164
2382
|
|
|
2383
|
+
|
|
2384
|
+
|
|
2385
|
+
|
|
2386
|
+
|
|
2387
|
+
|
|
2388
|
+
|
|
2389
|
+
|
|
2165
2390
|
|
|
2166
2391
|
|
|
2167
2392
|
|
|
@@ -2216,6 +2441,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2216
2441
|
this._elements[this._offset + index] = newElement;
|
|
2217
2442
|
return true;
|
|
2218
2443
|
}
|
|
2444
|
+
/**
|
|
2445
|
+
* Delete the first element that satisfies a predicate.
|
|
2446
|
+
* @remarks Time O(N), Space O(N)
|
|
2447
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2448
|
+
* @returns True if a match was removed.
|
|
2449
|
+
*/
|
|
2450
|
+
deleteWhere(predicate) {
|
|
2451
|
+
for (let i = 0; i < this.length; i++) {
|
|
2452
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2453
|
+
this.deleteAt(i);
|
|
2454
|
+
return true;
|
|
2455
|
+
}
|
|
2456
|
+
}
|
|
2457
|
+
return false;
|
|
2458
|
+
}
|
|
2219
2459
|
/**
|
|
2220
2460
|
* Reverse the queue in-place by compacting then reversing.
|
|
2221
2461
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2255,6 +2495,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2255
2495
|
|
|
2256
2496
|
|
|
2257
2497
|
|
|
2498
|
+
|
|
2499
|
+
|
|
2500
|
+
|
|
2501
|
+
|
|
2502
|
+
|
|
2503
|
+
|
|
2504
|
+
|
|
2258
2505
|
|
|
2259
2506
|
|
|
2260
2507
|
|
|
@@ -2301,6 +2548,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2301
2548
|
|
|
2302
2549
|
|
|
2303
2550
|
|
|
2551
|
+
|
|
2552
|
+
|
|
2553
|
+
|
|
2554
|
+
|
|
2555
|
+
|
|
2556
|
+
|
|
2557
|
+
|
|
2304
2558
|
|
|
2305
2559
|
|
|
2306
2560
|
|
|
@@ -2370,6 +2624,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2370
2624
|
|
|
2371
2625
|
|
|
2372
2626
|
|
|
2627
|
+
|
|
2628
|
+
|
|
2629
|
+
|
|
2630
|
+
|
|
2631
|
+
|
|
2632
|
+
|
|
2633
|
+
|
|
2373
2634
|
|
|
2374
2635
|
|
|
2375
2636
|
|
|
@@ -2423,6 +2684,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2423
2684
|
|
|
2424
2685
|
|
|
2425
2686
|
|
|
2687
|
+
|
|
2688
|
+
|
|
2689
|
+
|
|
2690
|
+
|
|
2691
|
+
|
|
2692
|
+
|
|
2693
|
+
|
|
2426
2694
|
|
|
2427
2695
|
|
|
2428
2696
|
|
|
@@ -2480,6 +2748,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2480
2748
|
|
|
2481
2749
|
|
|
2482
2750
|
|
|
2751
|
+
|
|
2752
|
+
|
|
2753
|
+
|
|
2754
|
+
|
|
2755
|
+
|
|
2756
|
+
|
|
2757
|
+
|
|
2483
2758
|
|
|
2484
2759
|
|
|
2485
2760
|
|
|
@@ -3622,6 +3897,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3622
3897
|
|
|
3623
3898
|
|
|
3624
3899
|
|
|
3900
|
+
|
|
3901
|
+
|
|
3902
|
+
|
|
3903
|
+
|
|
3904
|
+
|
|
3905
|
+
|
|
3906
|
+
|
|
3625
3907
|
|
|
3626
3908
|
|
|
3627
3909
|
|
|
@@ -3710,6 +3992,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3710
3992
|
|
|
3711
3993
|
|
|
3712
3994
|
|
|
3995
|
+
|
|
3996
|
+
|
|
3997
|
+
|
|
3998
|
+
|
|
3999
|
+
|
|
4000
|
+
|
|
4001
|
+
|
|
3713
4002
|
|
|
3714
4003
|
|
|
3715
4004
|
|
|
@@ -3796,6 +4085,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3796
4085
|
|
|
3797
4086
|
|
|
3798
4087
|
|
|
4088
|
+
|
|
4089
|
+
|
|
4090
|
+
|
|
4091
|
+
|
|
4092
|
+
|
|
4093
|
+
|
|
4094
|
+
|
|
3799
4095
|
|
|
3800
4096
|
|
|
3801
4097
|
|
|
@@ -3873,6 +4169,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3873
4169
|
|
|
3874
4170
|
|
|
3875
4171
|
|
|
4172
|
+
|
|
4173
|
+
|
|
4174
|
+
|
|
4175
|
+
|
|
4176
|
+
|
|
4177
|
+
|
|
4178
|
+
|
|
3876
4179
|
|
|
3877
4180
|
|
|
3878
4181
|
|
|
@@ -3927,6 +4230,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3927
4230
|
|
|
3928
4231
|
|
|
3929
4232
|
|
|
4233
|
+
|
|
4234
|
+
|
|
4235
|
+
|
|
4236
|
+
|
|
4237
|
+
|
|
4238
|
+
|
|
4239
|
+
|
|
3930
4240
|
|
|
3931
4241
|
|
|
3932
4242
|
|
|
@@ -4034,6 +4344,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4034
4344
|
|
|
4035
4345
|
|
|
4036
4346
|
|
|
4347
|
+
|
|
4348
|
+
|
|
4349
|
+
|
|
4350
|
+
|
|
4351
|
+
|
|
4352
|
+
|
|
4353
|
+
|
|
4037
4354
|
|
|
4038
4355
|
|
|
4039
4356
|
|
|
@@ -4122,6 +4439,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4122
4439
|
|
|
4123
4440
|
|
|
4124
4441
|
|
|
4442
|
+
|
|
4443
|
+
|
|
4444
|
+
|
|
4445
|
+
|
|
4446
|
+
|
|
4447
|
+
|
|
4448
|
+
|
|
4125
4449
|
|
|
4126
4450
|
|
|
4127
4451
|
|
|
@@ -4172,6 +4496,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4172
4496
|
|
|
4173
4497
|
|
|
4174
4498
|
|
|
4499
|
+
|
|
4500
|
+
|
|
4501
|
+
|
|
4502
|
+
|
|
4503
|
+
|
|
4504
|
+
|
|
4505
|
+
|
|
4175
4506
|
|
|
4176
4507
|
|
|
4177
4508
|
|
|
@@ -4275,6 +4606,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4275
4606
|
|
|
4276
4607
|
|
|
4277
4608
|
|
|
4609
|
+
|
|
4610
|
+
|
|
4611
|
+
|
|
4612
|
+
|
|
4613
|
+
|
|
4614
|
+
|
|
4615
|
+
|
|
4278
4616
|
|
|
4279
4617
|
|
|
4280
4618
|
|
|
@@ -4381,6 +4719,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4381
4719
|
|
|
4382
4720
|
|
|
4383
4721
|
|
|
4722
|
+
|
|
4723
|
+
|
|
4724
|
+
|
|
4725
|
+
|
|
4726
|
+
|
|
4727
|
+
|
|
4728
|
+
|
|
4384
4729
|
|
|
4385
4730
|
|
|
4386
4731
|
|
|
@@ -4551,6 +4896,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4551
4896
|
|
|
4552
4897
|
|
|
4553
4898
|
|
|
4899
|
+
|
|
4900
|
+
|
|
4901
|
+
|
|
4902
|
+
|
|
4903
|
+
|
|
4904
|
+
|
|
4905
|
+
|
|
4554
4906
|
|
|
4555
4907
|
|
|
4556
4908
|
|
|
@@ -4636,6 +4988,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4636
4988
|
|
|
4637
4989
|
|
|
4638
4990
|
|
|
4991
|
+
|
|
4992
|
+
|
|
4993
|
+
|
|
4994
|
+
|
|
4995
|
+
|
|
4996
|
+
|
|
4997
|
+
|
|
4639
4998
|
|
|
4640
4999
|
|
|
4641
5000
|
|
|
@@ -4720,6 +5079,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4720
5079
|
|
|
4721
5080
|
|
|
4722
5081
|
|
|
5082
|
+
|
|
5083
|
+
|
|
5084
|
+
|
|
5085
|
+
|
|
5086
|
+
|
|
5087
|
+
|
|
5088
|
+
|
|
4723
5089
|
|
|
4724
5090
|
|
|
4725
5091
|
|
|
@@ -4819,6 +5185,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4819
5185
|
|
|
4820
5186
|
|
|
4821
5187
|
|
|
5188
|
+
|
|
5189
|
+
|
|
5190
|
+
|
|
5191
|
+
|
|
5192
|
+
|
|
5193
|
+
|
|
5194
|
+
|
|
4822
5195
|
|
|
4823
5196
|
|
|
4824
5197
|
|
|
@@ -4873,6 +5246,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4873
5246
|
|
|
4874
5247
|
|
|
4875
5248
|
|
|
5249
|
+
|
|
5250
|
+
|
|
5251
|
+
|
|
5252
|
+
|
|
5253
|
+
|
|
5254
|
+
|
|
5255
|
+
|
|
4876
5256
|
|
|
4877
5257
|
|
|
4878
5258
|
|
|
@@ -4997,6 +5377,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4997
5377
|
|
|
4998
5378
|
|
|
4999
5379
|
|
|
5380
|
+
|
|
5381
|
+
|
|
5382
|
+
|
|
5383
|
+
|
|
5384
|
+
|
|
5385
|
+
|
|
5386
|
+
|
|
5000
5387
|
|
|
5001
5388
|
|
|
5002
5389
|
|
|
@@ -5143,6 +5530,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5143
5530
|
|
|
5144
5531
|
|
|
5145
5532
|
|
|
5533
|
+
|
|
5534
|
+
|
|
5535
|
+
|
|
5536
|
+
|
|
5537
|
+
|
|
5538
|
+
|
|
5539
|
+
|
|
5146
5540
|
|
|
5147
5541
|
|
|
5148
5542
|
|
|
@@ -5211,6 +5605,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5211
5605
|
|
|
5212
5606
|
|
|
5213
5607
|
|
|
5608
|
+
|
|
5609
|
+
|
|
5610
|
+
|
|
5611
|
+
|
|
5612
|
+
|
|
5613
|
+
|
|
5614
|
+
|
|
5214
5615
|
|
|
5215
5616
|
|
|
5216
5617
|
|
|
@@ -5261,6 +5662,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5261
5662
|
|
|
5262
5663
|
|
|
5263
5664
|
|
|
5665
|
+
|
|
5666
|
+
|
|
5667
|
+
|
|
5668
|
+
|
|
5669
|
+
|
|
5670
|
+
|
|
5671
|
+
|
|
5264
5672
|
|
|
5265
5673
|
|
|
5266
5674
|
|