data-structure-typed 2.5.2 → 2.5.3
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/CHANGELOG.md +3 -1
- package/MIGRATION.md +169 -0
- package/README.md +60 -6
- package/README_CN.md +551 -143
- package/SPECIFICATION.md +20 -14
- package/SPECIFICATION.zh-CN.md +20 -14
- package/dist/cjs/binary-tree.cjs +2417 -132
- package/dist/cjs/graph.cjs +248 -14
- package/dist/cjs/hash.cjs +62 -7
- package/dist/cjs/heap.cjs +103 -16
- package/dist/cjs/index.cjs +3046 -124
- package/dist/cjs/linked-list.cjs +219 -0
- package/dist/cjs/matrix.cjs +32 -0
- package/dist/cjs/priority-queue.cjs +101 -14
- package/dist/cjs/queue.cjs +215 -0
- package/dist/cjs/stack.cjs +44 -4
- package/dist/cjs/trie.cjs +44 -0
- package/dist/cjs-legacy/binary-tree.cjs +2406 -123
- package/dist/cjs-legacy/graph.cjs +248 -14
- package/dist/cjs-legacy/hash.cjs +62 -7
- package/dist/cjs-legacy/heap.cjs +103 -16
- package/dist/cjs-legacy/index.cjs +3105 -185
- package/dist/cjs-legacy/linked-list.cjs +219 -0
- package/dist/cjs-legacy/matrix.cjs +32 -0
- package/dist/cjs-legacy/priority-queue.cjs +101 -14
- package/dist/cjs-legacy/queue.cjs +215 -0
- package/dist/cjs-legacy/stack.cjs +44 -4
- package/dist/cjs-legacy/trie.cjs +44 -0
- package/dist/esm/binary-tree.mjs +2417 -132
- package/dist/esm/graph.mjs +248 -14
- package/dist/esm/hash.mjs +62 -7
- package/dist/esm/heap.mjs +103 -16
- package/dist/esm/index.mjs +3046 -124
- package/dist/esm/linked-list.mjs +219 -0
- package/dist/esm/matrix.mjs +32 -0
- package/dist/esm/priority-queue.mjs +101 -14
- package/dist/esm/queue.mjs +215 -0
- package/dist/esm/stack.mjs +44 -4
- package/dist/esm/trie.mjs +44 -0
- package/dist/esm-legacy/binary-tree.mjs +2406 -123
- package/dist/esm-legacy/graph.mjs +248 -14
- package/dist/esm-legacy/hash.mjs +62 -7
- package/dist/esm-legacy/heap.mjs +103 -16
- package/dist/esm-legacy/index.mjs +3105 -185
- package/dist/esm-legacy/linked-list.mjs +219 -0
- package/dist/esm-legacy/matrix.mjs +32 -0
- package/dist/esm-legacy/priority-queue.mjs +101 -14
- package/dist/esm-legacy/queue.mjs +215 -0
- package/dist/esm-legacy/stack.mjs +44 -4
- package/dist/esm-legacy/trie.mjs +44 -0
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +50 -2
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +116 -15
- package/dist/types/data-structures/binary-tree/bst.d.ts +99 -3
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +79 -8
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +520 -1
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +489 -1
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +393 -1
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +500 -1
- package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +51 -6
- package/dist/types/data-structures/heap/heap.d.ts +98 -12
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +61 -1
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
- package/dist/types/data-structures/queue/deque.d.ts +82 -0
- package/dist/types/data-structures/queue/queue.d.ts +61 -0
- package/dist/types/data-structures/stack/stack.d.ts +42 -2
- package/dist/types/data-structures/trie/trie.d.ts +48 -0
- package/dist/types/interfaces/binary-tree.d.ts +2 -3
- package/dist/umd/data-structure-typed.js +3105 -185
- package/dist/umd/data-structure-typed.min.js +4 -4
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +188 -200
- package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
- package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +62 -62
- package/docs-site-docusaurus/docs/api/classes/BST.md +183 -195
- package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
- package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +143 -155
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/Deque.md +99 -85
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +73 -73
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +100 -70
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +12 -12
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
- package/docs-site-docusaurus/docs/api/classes/HashMap.md +38 -38
- package/docs-site-docusaurus/docs/api/classes/Heap.md +96 -85
- package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
- package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +23 -23
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +48 -48
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +52 -52
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +42 -42
- package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +74 -74
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +73 -73
- package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
- package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/MinHeap.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
- package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +103 -88
- package/docs-site-docusaurus/docs/api/classes/Queue.md +111 -59
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +200 -212
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +75 -75
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +37 -37
- package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +107 -36
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +43 -43
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +106 -35
- package/docs-site-docusaurus/docs/api/classes/Trie.md +43 -43
- package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +72 -72
- package/docs-site-docusaurus/docs/guide/architecture.md +75 -7
- package/docs-site-docusaurus/docs/guide/concepts.md +53 -34
- package/docs-site-docusaurus/docs/guide/faq.md +53 -0
- package/docs-site-docusaurus/docs/guide/guides.md +8 -9
- package/docs-site-docusaurus/docs/guide/integrations.md +74 -177
- package/docs-site-docusaurus/docs/guide/overview.md +131 -17
- package/docs-site-docusaurus/src/pages/index.tsx +4 -0
- package/docs-site-docusaurus/typedoc.json +1 -0
- package/package.json +7 -6
- package/src/data-structures/binary-tree/avl-tree.ts +52 -5
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +56 -0
- package/src/data-structures/binary-tree/binary-tree.ts +167 -81
- package/src/data-structures/binary-tree/bst.ts +101 -7
- package/src/data-structures/binary-tree/red-black-tree.ts +82 -15
- package/src/data-structures/binary-tree/segment-tree.ts +24 -0
- package/src/data-structures/binary-tree/tree-map.ts +540 -3
- package/src/data-structures/binary-tree/tree-multi-map.ts +490 -2
- package/src/data-structures/binary-tree/tree-multi-set.ts +393 -1
- package/src/data-structures/binary-tree/tree-set.ts +520 -3
- package/src/data-structures/graph/directed-graph.ts +41 -1
- package/src/data-structures/graph/undirected-graph.ts +37 -1
- package/src/data-structures/hash/hash-map.ts +67 -12
- package/src/data-structures/heap/heap.ts +107 -19
- package/src/data-structures/linked-list/doubly-linked-list.ts +88 -0
- package/src/data-structures/linked-list/singly-linked-list.ts +61 -1
- package/src/data-structures/linked-list/skip-linked-list.ts +72 -0
- package/src/data-structures/matrix/matrix.ts +32 -0
- package/src/data-structures/queue/deque.ts +85 -0
- package/src/data-structures/queue/queue.ts +73 -0
- package/src/data-structures/stack/stack.ts +45 -5
- package/src/data-structures/trie/trie.ts +48 -0
- package/src/interfaces/binary-tree.ts +1 -9
- package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +0 -12984
- package/.vitepress/cache/deps_temp_51f5f1b0/package.json +0 -3
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +0 -4505
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +0 -9731
- package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +0 -347
package/dist/esm/graph.mjs
CHANGED
|
@@ -715,6 +715,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
715
715
|
|
|
716
716
|
|
|
717
717
|
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
|
|
721
|
+
|
|
718
722
|
|
|
719
723
|
|
|
720
724
|
|
|
@@ -768,7 +772,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
768
772
|
}
|
|
769
773
|
/**
|
|
770
774
|
* Insert an element.
|
|
771
|
-
* @remarks Time O(
|
|
775
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
772
776
|
* @param element - Element to insert.
|
|
773
777
|
* @returns True.
|
|
774
778
|
|
|
@@ -801,6 +805,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
801
805
|
|
|
802
806
|
|
|
803
807
|
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
|
|
804
812
|
|
|
805
813
|
|
|
806
814
|
|
|
@@ -858,6 +866,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
858
866
|
|
|
859
867
|
|
|
860
868
|
|
|
869
|
+
|
|
870
|
+
|
|
871
|
+
|
|
872
|
+
|
|
861
873
|
|
|
862
874
|
|
|
863
875
|
|
|
@@ -918,10 +930,41 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
918
930
|
|
|
919
931
|
|
|
920
932
|
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
|
|
921
936
|
|
|
922
937
|
|
|
923
938
|
|
|
924
939
|
|
|
940
|
+
* @example
|
|
941
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
942
|
+
* interface Task {
|
|
943
|
+
* id: number;
|
|
944
|
+
* priority: number;
|
|
945
|
+
* name: string;
|
|
946
|
+
* }
|
|
947
|
+
*
|
|
948
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
949
|
+
* const tasks: Task[] = [
|
|
950
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
951
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
952
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
953
|
+
* ];
|
|
954
|
+
*
|
|
955
|
+
* const maxHeap = new Heap(tasks, {
|
|
956
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
957
|
+
* });
|
|
958
|
+
*
|
|
959
|
+
* console.log(maxHeap.size); // 3;
|
|
960
|
+
*
|
|
961
|
+
* // Peek returns highest priority task
|
|
962
|
+
* const topTask = maxHeap.peek();
|
|
963
|
+
* console.log(topTask?.priority); // 8;
|
|
964
|
+
* console.log(topTask?.name); // 'Alert';
|
|
965
|
+
*/
|
|
966
|
+
/**
|
|
967
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
925
968
|
* @example
|
|
926
969
|
* // Heap with custom comparator (MaxHeap behavior)
|
|
927
970
|
* interface Task {
|
|
@@ -949,6 +992,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
949
992
|
* console.log(topTask?.name); // 'Alert';
|
|
950
993
|
*/
|
|
951
994
|
poll() {
|
|
995
|
+
return this.pop();
|
|
996
|
+
}
|
|
997
|
+
/**
|
|
998
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
999
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1000
|
+
* @returns The removed top element, or undefined if empty.
|
|
1001
|
+
*/
|
|
1002
|
+
pop() {
|
|
952
1003
|
if (this.elements.length === 0) return;
|
|
953
1004
|
const value = this.elements[0];
|
|
954
1005
|
const last = this.elements.pop();
|
|
@@ -992,6 +1043,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
992
1043
|
|
|
993
1044
|
|
|
994
1045
|
|
|
1046
|
+
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
|
|
995
1050
|
|
|
996
1051
|
|
|
997
1052
|
|
|
@@ -1092,6 +1147,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1092
1147
|
|
|
1093
1148
|
|
|
1094
1149
|
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
|
|
1153
|
+
|
|
1095
1154
|
|
|
1096
1155
|
|
|
1097
1156
|
|
|
@@ -1139,6 +1198,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1139
1198
|
|
|
1140
1199
|
|
|
1141
1200
|
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1142
1205
|
|
|
1143
1206
|
|
|
1144
1207
|
|
|
@@ -1153,16 +1216,6 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1153
1216
|
clear() {
|
|
1154
1217
|
this._elements = [];
|
|
1155
1218
|
}
|
|
1156
|
-
/**
|
|
1157
|
-
* Replace the backing array and rebuild the heap.
|
|
1158
|
-
* @remarks Time O(N), Space O(N)
|
|
1159
|
-
* @param elements - Iterable used to refill the heap.
|
|
1160
|
-
* @returns Array of per-node results from fixing steps.
|
|
1161
|
-
*/
|
|
1162
|
-
refill(elements) {
|
|
1163
|
-
this._elements = Array.from(elements);
|
|
1164
|
-
return this.fix();
|
|
1165
|
-
}
|
|
1166
1219
|
/**
|
|
1167
1220
|
* Check if an equal element exists in the heap.
|
|
1168
1221
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1189,6 +1242,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1189
1242
|
|
|
1190
1243
|
|
|
1191
1244
|
|
|
1245
|
+
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
|
|
1192
1249
|
|
|
1193
1250
|
|
|
1194
1251
|
|
|
@@ -1236,6 +1293,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1236
1293
|
|
|
1237
1294
|
|
|
1238
1295
|
|
|
1296
|
+
|
|
1297
|
+
|
|
1298
|
+
|
|
1299
|
+
|
|
1239
1300
|
|
|
1240
1301
|
|
|
1241
1302
|
|
|
@@ -1257,7 +1318,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1257
1318
|
}
|
|
1258
1319
|
if (index < 0) return false;
|
|
1259
1320
|
if (index === 0) {
|
|
1260
|
-
this.
|
|
1321
|
+
this.pop();
|
|
1261
1322
|
} else if (index === this.elements.length - 1) {
|
|
1262
1323
|
this.elements.pop();
|
|
1263
1324
|
} else {
|
|
@@ -1267,13 +1328,19 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1267
1328
|
}
|
|
1268
1329
|
return true;
|
|
1269
1330
|
}
|
|
1331
|
+
/**
|
|
1332
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1333
|
+
*/
|
|
1334
|
+
deleteBy(predicate) {
|
|
1335
|
+
return this.deleteWhere(predicate);
|
|
1336
|
+
}
|
|
1270
1337
|
/**
|
|
1271
1338
|
* Delete the first element that matches a predicate.
|
|
1272
1339
|
* @remarks Time O(N), Space O(1)
|
|
1273
1340
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1274
1341
|
* @returns True if an element was removed.
|
|
1275
1342
|
*/
|
|
1276
|
-
|
|
1343
|
+
deleteWhere(predicate) {
|
|
1277
1344
|
let idx = -1;
|
|
1278
1345
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1279
1346
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1283,7 +1350,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1283
1350
|
}
|
|
1284
1351
|
if (idx < 0) return false;
|
|
1285
1352
|
if (idx === 0) {
|
|
1286
|
-
this.
|
|
1353
|
+
this.pop();
|
|
1287
1354
|
} else if (idx === this.elements.length - 1) {
|
|
1288
1355
|
this.elements.pop();
|
|
1289
1356
|
} else {
|
|
@@ -1329,6 +1396,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1329
1396
|
|
|
1330
1397
|
|
|
1331
1398
|
|
|
1399
|
+
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
|
|
1332
1403
|
|
|
1333
1404
|
|
|
1334
1405
|
|
|
@@ -1409,6 +1480,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1409
1480
|
|
|
1410
1481
|
|
|
1411
1482
|
|
|
1483
|
+
|
|
1484
|
+
|
|
1485
|
+
|
|
1486
|
+
|
|
1412
1487
|
|
|
1413
1488
|
|
|
1414
1489
|
|
|
@@ -1462,6 +1537,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1462
1537
|
|
|
1463
1538
|
|
|
1464
1539
|
|
|
1540
|
+
|
|
1541
|
+
|
|
1542
|
+
|
|
1543
|
+
|
|
1465
1544
|
|
|
1466
1545
|
|
|
1467
1546
|
|
|
@@ -1514,6 +1593,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1514
1593
|
|
|
1515
1594
|
|
|
1516
1595
|
|
|
1596
|
+
|
|
1597
|
+
|
|
1598
|
+
|
|
1599
|
+
|
|
1517
1600
|
|
|
1518
1601
|
|
|
1519
1602
|
|
|
@@ -1573,6 +1656,10 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1573
1656
|
|
|
1574
1657
|
|
|
1575
1658
|
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
|
|
1662
|
+
|
|
1576
1663
|
|
|
1577
1664
|
|
|
1578
1665
|
|
|
@@ -1786,6 +1873,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1786
1873
|
|
|
1787
1874
|
|
|
1788
1875
|
|
|
1876
|
+
|
|
1877
|
+
|
|
1878
|
+
|
|
1879
|
+
|
|
1789
1880
|
|
|
1790
1881
|
|
|
1791
1882
|
|
|
@@ -1836,6 +1927,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1836
1927
|
|
|
1837
1928
|
|
|
1838
1929
|
|
|
1930
|
+
|
|
1931
|
+
|
|
1932
|
+
|
|
1933
|
+
|
|
1839
1934
|
|
|
1840
1935
|
|
|
1841
1936
|
|
|
@@ -1850,6 +1945,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1850
1945
|
get first() {
|
|
1851
1946
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1852
1947
|
}
|
|
1948
|
+
/**
|
|
1949
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
1950
|
+
* @remarks Time O(1), Space O(1)
|
|
1951
|
+
* @returns Front element or undefined.
|
|
1952
|
+
*/
|
|
1953
|
+
peek() {
|
|
1954
|
+
return this.first;
|
|
1955
|
+
}
|
|
1853
1956
|
/**
|
|
1854
1957
|
* Get the last element (back) without removing it.
|
|
1855
1958
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1902,6 +2005,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1902
2005
|
|
|
1903
2006
|
|
|
1904
2007
|
|
|
2008
|
+
|
|
2009
|
+
|
|
2010
|
+
|
|
2011
|
+
|
|
1905
2012
|
|
|
1906
2013
|
|
|
1907
2014
|
|
|
@@ -1964,6 +2071,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1964
2071
|
|
|
1965
2072
|
|
|
1966
2073
|
|
|
2074
|
+
|
|
2075
|
+
|
|
2076
|
+
|
|
2077
|
+
|
|
1967
2078
|
|
|
1968
2079
|
|
|
1969
2080
|
|
|
@@ -2033,6 +2144,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2033
2144
|
|
|
2034
2145
|
|
|
2035
2146
|
|
|
2147
|
+
|
|
2148
|
+
|
|
2149
|
+
|
|
2150
|
+
|
|
2036
2151
|
|
|
2037
2152
|
|
|
2038
2153
|
|
|
@@ -2092,6 +2207,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2092
2207
|
|
|
2093
2208
|
|
|
2094
2209
|
|
|
2210
|
+
|
|
2211
|
+
|
|
2212
|
+
|
|
2213
|
+
|
|
2095
2214
|
|
|
2096
2215
|
|
|
2097
2216
|
|
|
@@ -2144,6 +2263,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2144
2263
|
|
|
2145
2264
|
|
|
2146
2265
|
|
|
2266
|
+
|
|
2267
|
+
|
|
2268
|
+
|
|
2269
|
+
|
|
2147
2270
|
|
|
2148
2271
|
|
|
2149
2272
|
|
|
@@ -2195,6 +2318,21 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2195
2318
|
this._elements[this._offset + index] = newElement;
|
|
2196
2319
|
return true;
|
|
2197
2320
|
}
|
|
2321
|
+
/**
|
|
2322
|
+
* Delete the first element that satisfies a predicate.
|
|
2323
|
+
* @remarks Time O(N), Space O(N)
|
|
2324
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2325
|
+
* @returns True if a match was removed.
|
|
2326
|
+
*/
|
|
2327
|
+
deleteWhere(predicate) {
|
|
2328
|
+
for (let i = 0; i < this.length; i++) {
|
|
2329
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2330
|
+
this.deleteAt(i);
|
|
2331
|
+
return true;
|
|
2332
|
+
}
|
|
2333
|
+
}
|
|
2334
|
+
return false;
|
|
2335
|
+
}
|
|
2198
2336
|
/**
|
|
2199
2337
|
* Reverse the queue in-place by compacting then reversing.
|
|
2200
2338
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2237,6 +2375,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2237
2375
|
|
|
2238
2376
|
|
|
2239
2377
|
|
|
2378
|
+
|
|
2379
|
+
|
|
2380
|
+
|
|
2381
|
+
|
|
2240
2382
|
|
|
2241
2383
|
|
|
2242
2384
|
|
|
@@ -2283,6 +2425,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2283
2425
|
|
|
2284
2426
|
|
|
2285
2427
|
|
|
2428
|
+
|
|
2429
|
+
|
|
2430
|
+
|
|
2431
|
+
|
|
2286
2432
|
|
|
2287
2433
|
|
|
2288
2434
|
|
|
@@ -2352,6 +2498,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2352
2498
|
|
|
2353
2499
|
|
|
2354
2500
|
|
|
2501
|
+
|
|
2502
|
+
|
|
2503
|
+
|
|
2504
|
+
|
|
2355
2505
|
|
|
2356
2506
|
|
|
2357
2507
|
|
|
@@ -2405,6 +2555,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2405
2555
|
|
|
2406
2556
|
|
|
2407
2557
|
|
|
2558
|
+
|
|
2559
|
+
|
|
2560
|
+
|
|
2561
|
+
|
|
2408
2562
|
|
|
2409
2563
|
|
|
2410
2564
|
|
|
@@ -2462,6 +2616,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2462
2616
|
|
|
2463
2617
|
|
|
2464
2618
|
|
|
2619
|
+
|
|
2620
|
+
|
|
2621
|
+
|
|
2622
|
+
|
|
2465
2623
|
|
|
2466
2624
|
|
|
2467
2625
|
|
|
@@ -3601,6 +3759,10 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3601
3759
|
|
|
3602
3760
|
|
|
3603
3761
|
|
|
3762
|
+
|
|
3763
|
+
|
|
3764
|
+
|
|
3765
|
+
|
|
3604
3766
|
|
|
3605
3767
|
|
|
3606
3768
|
|
|
@@ -3689,6 +3851,10 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3689
3851
|
|
|
3690
3852
|
|
|
3691
3853
|
|
|
3854
|
+
|
|
3855
|
+
|
|
3856
|
+
|
|
3857
|
+
|
|
3692
3858
|
|
|
3693
3859
|
|
|
3694
3860
|
|
|
@@ -3775,6 +3941,10 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3775
3941
|
|
|
3776
3942
|
|
|
3777
3943
|
|
|
3944
|
+
|
|
3945
|
+
|
|
3946
|
+
|
|
3947
|
+
|
|
3778
3948
|
|
|
3779
3949
|
|
|
3780
3950
|
|
|
@@ -3852,6 +4022,10 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3852
4022
|
|
|
3853
4023
|
|
|
3854
4024
|
|
|
4025
|
+
|
|
4026
|
+
|
|
4027
|
+
|
|
4028
|
+
|
|
3855
4029
|
|
|
3856
4030
|
|
|
3857
4031
|
|
|
@@ -3906,6 +4080,10 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3906
4080
|
|
|
3907
4081
|
|
|
3908
4082
|
|
|
4083
|
+
|
|
4084
|
+
|
|
4085
|
+
|
|
4086
|
+
|
|
3909
4087
|
|
|
3910
4088
|
|
|
3911
4089
|
|
|
@@ -4013,6 +4191,10 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4013
4191
|
|
|
4014
4192
|
|
|
4015
4193
|
|
|
4194
|
+
|
|
4195
|
+
|
|
4196
|
+
|
|
4197
|
+
|
|
4016
4198
|
|
|
4017
4199
|
|
|
4018
4200
|
|
|
@@ -4101,6 +4283,10 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4101
4283
|
|
|
4102
4284
|
|
|
4103
4285
|
|
|
4286
|
+
|
|
4287
|
+
|
|
4288
|
+
|
|
4289
|
+
|
|
4104
4290
|
|
|
4105
4291
|
|
|
4106
4292
|
|
|
@@ -4151,6 +4337,10 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4151
4337
|
|
|
4152
4338
|
|
|
4153
4339
|
|
|
4340
|
+
|
|
4341
|
+
|
|
4342
|
+
|
|
4343
|
+
|
|
4154
4344
|
|
|
4155
4345
|
|
|
4156
4346
|
|
|
@@ -4254,6 +4444,10 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4254
4444
|
|
|
4255
4445
|
|
|
4256
4446
|
|
|
4447
|
+
|
|
4448
|
+
|
|
4449
|
+
|
|
4450
|
+
|
|
4257
4451
|
|
|
4258
4452
|
|
|
4259
4453
|
|
|
@@ -4360,6 +4554,10 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4360
4554
|
|
|
4361
4555
|
|
|
4362
4556
|
|
|
4557
|
+
|
|
4558
|
+
|
|
4559
|
+
|
|
4560
|
+
|
|
4363
4561
|
|
|
4364
4562
|
|
|
4365
4563
|
|
|
@@ -4532,6 +4730,10 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4532
4730
|
|
|
4533
4731
|
|
|
4534
4732
|
|
|
4733
|
+
|
|
4734
|
+
|
|
4735
|
+
|
|
4736
|
+
|
|
4535
4737
|
|
|
4536
4738
|
|
|
4537
4739
|
|
|
@@ -4616,6 +4818,10 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4616
4818
|
|
|
4617
4819
|
|
|
4618
4820
|
|
|
4821
|
+
|
|
4822
|
+
|
|
4823
|
+
|
|
4824
|
+
|
|
4619
4825
|
|
|
4620
4826
|
|
|
4621
4827
|
|
|
@@ -4700,6 +4906,10 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4700
4906
|
|
|
4701
4907
|
|
|
4702
4908
|
|
|
4909
|
+
|
|
4910
|
+
|
|
4911
|
+
|
|
4912
|
+
|
|
4703
4913
|
|
|
4704
4914
|
|
|
4705
4915
|
|
|
@@ -4798,6 +5008,10 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4798
5008
|
|
|
4799
5009
|
|
|
4800
5010
|
|
|
5011
|
+
|
|
5012
|
+
|
|
5013
|
+
|
|
5014
|
+
|
|
4801
5015
|
|
|
4802
5016
|
|
|
4803
5017
|
|
|
@@ -4852,6 +5066,10 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4852
5066
|
|
|
4853
5067
|
|
|
4854
5068
|
|
|
5069
|
+
|
|
5070
|
+
|
|
5071
|
+
|
|
5072
|
+
|
|
4855
5073
|
|
|
4856
5074
|
|
|
4857
5075
|
|
|
@@ -4976,6 +5194,10 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4976
5194
|
|
|
4977
5195
|
|
|
4978
5196
|
|
|
5197
|
+
|
|
5198
|
+
|
|
5199
|
+
|
|
5200
|
+
|
|
4979
5201
|
|
|
4980
5202
|
|
|
4981
5203
|
|
|
@@ -5122,6 +5344,10 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5122
5344
|
|
|
5123
5345
|
|
|
5124
5346
|
|
|
5347
|
+
|
|
5348
|
+
|
|
5349
|
+
|
|
5350
|
+
|
|
5125
5351
|
|
|
5126
5352
|
|
|
5127
5353
|
|
|
@@ -5190,6 +5416,10 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5190
5416
|
|
|
5191
5417
|
|
|
5192
5418
|
|
|
5419
|
+
|
|
5420
|
+
|
|
5421
|
+
|
|
5422
|
+
|
|
5193
5423
|
|
|
5194
5424
|
|
|
5195
5425
|
|
|
@@ -5240,6 +5470,10 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5240
5470
|
|
|
5241
5471
|
|
|
5242
5472
|
|
|
5473
|
+
|
|
5474
|
+
|
|
5475
|
+
|
|
5476
|
+
|
|
5243
5477
|
|
|
5244
5478
|
|
|
5245
5479
|
|