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
|
@@ -722,6 +722,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
722
722
|
|
|
723
723
|
|
|
724
724
|
|
|
725
|
+
|
|
726
|
+
|
|
727
|
+
|
|
728
|
+
|
|
725
729
|
|
|
726
730
|
|
|
727
731
|
|
|
@@ -776,7 +780,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
776
780
|
}
|
|
777
781
|
/**
|
|
778
782
|
* Insert an element.
|
|
779
|
-
* @remarks Time O(
|
|
783
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
780
784
|
* @param element - Element to insert.
|
|
781
785
|
* @returns True.
|
|
782
786
|
|
|
@@ -809,6 +813,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
809
813
|
|
|
810
814
|
|
|
811
815
|
|
|
816
|
+
|
|
817
|
+
|
|
818
|
+
|
|
819
|
+
|
|
812
820
|
|
|
813
821
|
|
|
814
822
|
|
|
@@ -866,6 +874,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
866
874
|
|
|
867
875
|
|
|
868
876
|
|
|
877
|
+
|
|
878
|
+
|
|
879
|
+
|
|
880
|
+
|
|
869
881
|
|
|
870
882
|
|
|
871
883
|
|
|
@@ -926,10 +938,41 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
926
938
|
|
|
927
939
|
|
|
928
940
|
|
|
941
|
+
|
|
942
|
+
|
|
943
|
+
|
|
929
944
|
|
|
930
945
|
|
|
931
946
|
|
|
932
947
|
|
|
948
|
+
* @example
|
|
949
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
950
|
+
* interface Task {
|
|
951
|
+
* id: number;
|
|
952
|
+
* priority: number;
|
|
953
|
+
* name: string;
|
|
954
|
+
* }
|
|
955
|
+
*
|
|
956
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
957
|
+
* const tasks: Task[] = [
|
|
958
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
959
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
960
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
961
|
+
* ];
|
|
962
|
+
*
|
|
963
|
+
* const maxHeap = new Heap(tasks, {
|
|
964
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
965
|
+
* });
|
|
966
|
+
*
|
|
967
|
+
* console.log(maxHeap.size); // 3;
|
|
968
|
+
*
|
|
969
|
+
* // Peek returns highest priority task
|
|
970
|
+
* const topTask = maxHeap.peek();
|
|
971
|
+
* console.log(topTask?.priority); // 8;
|
|
972
|
+
* console.log(topTask?.name); // 'Alert';
|
|
973
|
+
*/
|
|
974
|
+
/**
|
|
975
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
933
976
|
* @example
|
|
934
977
|
* // Heap with custom comparator (MaxHeap behavior)
|
|
935
978
|
* interface Task {
|
|
@@ -957,6 +1000,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
957
1000
|
* console.log(topTask?.name); // 'Alert';
|
|
958
1001
|
*/
|
|
959
1002
|
poll() {
|
|
1003
|
+
return this.pop();
|
|
1004
|
+
}
|
|
1005
|
+
/**
|
|
1006
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
1007
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1008
|
+
* @returns The removed top element, or undefined if empty.
|
|
1009
|
+
*/
|
|
1010
|
+
pop() {
|
|
960
1011
|
if (this.elements.length === 0) return;
|
|
961
1012
|
const value = this.elements[0];
|
|
962
1013
|
const last = this.elements.pop();
|
|
@@ -1000,6 +1051,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1000
1051
|
|
|
1001
1052
|
|
|
1002
1053
|
|
|
1054
|
+
|
|
1055
|
+
|
|
1056
|
+
|
|
1057
|
+
|
|
1003
1058
|
|
|
1004
1059
|
|
|
1005
1060
|
|
|
@@ -1100,6 +1155,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1100
1155
|
|
|
1101
1156
|
|
|
1102
1157
|
|
|
1158
|
+
|
|
1159
|
+
|
|
1160
|
+
|
|
1161
|
+
|
|
1103
1162
|
|
|
1104
1163
|
|
|
1105
1164
|
|
|
@@ -1147,6 +1206,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1147
1206
|
|
|
1148
1207
|
|
|
1149
1208
|
|
|
1209
|
+
|
|
1210
|
+
|
|
1211
|
+
|
|
1212
|
+
|
|
1150
1213
|
|
|
1151
1214
|
|
|
1152
1215
|
|
|
@@ -1161,16 +1224,6 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1161
1224
|
clear() {
|
|
1162
1225
|
this._elements = [];
|
|
1163
1226
|
}
|
|
1164
|
-
/**
|
|
1165
|
-
* Replace the backing array and rebuild the heap.
|
|
1166
|
-
* @remarks Time O(N), Space O(N)
|
|
1167
|
-
* @param elements - Iterable used to refill the heap.
|
|
1168
|
-
* @returns Array of per-node results from fixing steps.
|
|
1169
|
-
*/
|
|
1170
|
-
refill(elements) {
|
|
1171
|
-
this._elements = Array.from(elements);
|
|
1172
|
-
return this.fix();
|
|
1173
|
-
}
|
|
1174
1227
|
/**
|
|
1175
1228
|
* Check if an equal element exists in the heap.
|
|
1176
1229
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1197,6 +1250,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1197
1250
|
|
|
1198
1251
|
|
|
1199
1252
|
|
|
1253
|
+
|
|
1254
|
+
|
|
1255
|
+
|
|
1256
|
+
|
|
1200
1257
|
|
|
1201
1258
|
|
|
1202
1259
|
|
|
@@ -1244,6 +1301,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1244
1301
|
|
|
1245
1302
|
|
|
1246
1303
|
|
|
1304
|
+
|
|
1305
|
+
|
|
1306
|
+
|
|
1307
|
+
|
|
1247
1308
|
|
|
1248
1309
|
|
|
1249
1310
|
|
|
@@ -1265,7 +1326,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1265
1326
|
}
|
|
1266
1327
|
if (index < 0) return false;
|
|
1267
1328
|
if (index === 0) {
|
|
1268
|
-
this.
|
|
1329
|
+
this.pop();
|
|
1269
1330
|
} else if (index === this.elements.length - 1) {
|
|
1270
1331
|
this.elements.pop();
|
|
1271
1332
|
} else {
|
|
@@ -1275,13 +1336,19 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1275
1336
|
}
|
|
1276
1337
|
return true;
|
|
1277
1338
|
}
|
|
1339
|
+
/**
|
|
1340
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1341
|
+
*/
|
|
1342
|
+
deleteBy(predicate) {
|
|
1343
|
+
return this.deleteWhere(predicate);
|
|
1344
|
+
}
|
|
1278
1345
|
/**
|
|
1279
1346
|
* Delete the first element that matches a predicate.
|
|
1280
1347
|
* @remarks Time O(N), Space O(1)
|
|
1281
1348
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1282
1349
|
* @returns True if an element was removed.
|
|
1283
1350
|
*/
|
|
1284
|
-
|
|
1351
|
+
deleteWhere(predicate) {
|
|
1285
1352
|
let idx = -1;
|
|
1286
1353
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1287
1354
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1291,7 +1358,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1291
1358
|
}
|
|
1292
1359
|
if (idx < 0) return false;
|
|
1293
1360
|
if (idx === 0) {
|
|
1294
|
-
this.
|
|
1361
|
+
this.pop();
|
|
1295
1362
|
} else if (idx === this.elements.length - 1) {
|
|
1296
1363
|
this.elements.pop();
|
|
1297
1364
|
} else {
|
|
@@ -1337,6 +1404,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1337
1404
|
|
|
1338
1405
|
|
|
1339
1406
|
|
|
1407
|
+
|
|
1408
|
+
|
|
1409
|
+
|
|
1410
|
+
|
|
1340
1411
|
|
|
1341
1412
|
|
|
1342
1413
|
|
|
@@ -1417,6 +1488,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1417
1488
|
|
|
1418
1489
|
|
|
1419
1490
|
|
|
1491
|
+
|
|
1492
|
+
|
|
1493
|
+
|
|
1494
|
+
|
|
1420
1495
|
|
|
1421
1496
|
|
|
1422
1497
|
|
|
@@ -1470,6 +1545,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1470
1545
|
|
|
1471
1546
|
|
|
1472
1547
|
|
|
1548
|
+
|
|
1549
|
+
|
|
1550
|
+
|
|
1551
|
+
|
|
1473
1552
|
|
|
1474
1553
|
|
|
1475
1554
|
|
|
@@ -1522,6 +1601,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1522
1601
|
|
|
1523
1602
|
|
|
1524
1603
|
|
|
1604
|
+
|
|
1605
|
+
|
|
1606
|
+
|
|
1607
|
+
|
|
1525
1608
|
|
|
1526
1609
|
|
|
1527
1610
|
|
|
@@ -1581,6 +1664,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1581
1664
|
|
|
1582
1665
|
|
|
1583
1666
|
|
|
1667
|
+
|
|
1668
|
+
|
|
1669
|
+
|
|
1670
|
+
|
|
1584
1671
|
|
|
1585
1672
|
|
|
1586
1673
|
|
|
@@ -1784,6 +1871,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1784
1871
|
|
|
1785
1872
|
|
|
1786
1873
|
|
|
1874
|
+
|
|
1875
|
+
|
|
1876
|
+
|
|
1877
|
+
|
|
1787
1878
|
|
|
1788
1879
|
|
|
1789
1880
|
|
|
@@ -1834,6 +1925,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1834
1925
|
|
|
1835
1926
|
|
|
1836
1927
|
|
|
1928
|
+
|
|
1929
|
+
|
|
1930
|
+
|
|
1931
|
+
|
|
1837
1932
|
|
|
1838
1933
|
|
|
1839
1934
|
|
|
@@ -1848,6 +1943,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1848
1943
|
get first() {
|
|
1849
1944
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1850
1945
|
}
|
|
1946
|
+
/**
|
|
1947
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
1948
|
+
* @remarks Time O(1), Space O(1)
|
|
1949
|
+
* @returns Front element or undefined.
|
|
1950
|
+
*/
|
|
1951
|
+
peek() {
|
|
1952
|
+
return this.first;
|
|
1953
|
+
}
|
|
1851
1954
|
/**
|
|
1852
1955
|
* Get the last element (back) without removing it.
|
|
1853
1956
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1900,6 +2003,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1900
2003
|
|
|
1901
2004
|
|
|
1902
2005
|
|
|
2006
|
+
|
|
2007
|
+
|
|
2008
|
+
|
|
2009
|
+
|
|
1903
2010
|
|
|
1904
2011
|
|
|
1905
2012
|
|
|
@@ -1962,6 +2069,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1962
2069
|
|
|
1963
2070
|
|
|
1964
2071
|
|
|
2072
|
+
|
|
2073
|
+
|
|
2074
|
+
|
|
2075
|
+
|
|
1965
2076
|
|
|
1966
2077
|
|
|
1967
2078
|
|
|
@@ -2031,6 +2142,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2031
2142
|
|
|
2032
2143
|
|
|
2033
2144
|
|
|
2145
|
+
|
|
2146
|
+
|
|
2147
|
+
|
|
2148
|
+
|
|
2034
2149
|
|
|
2035
2150
|
|
|
2036
2151
|
|
|
@@ -2090,6 +2205,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2090
2205
|
|
|
2091
2206
|
|
|
2092
2207
|
|
|
2208
|
+
|
|
2209
|
+
|
|
2210
|
+
|
|
2211
|
+
|
|
2093
2212
|
|
|
2094
2213
|
|
|
2095
2214
|
|
|
@@ -2142,6 +2261,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2142
2261
|
|
|
2143
2262
|
|
|
2144
2263
|
|
|
2264
|
+
|
|
2265
|
+
|
|
2266
|
+
|
|
2267
|
+
|
|
2145
2268
|
|
|
2146
2269
|
|
|
2147
2270
|
|
|
@@ -2193,6 +2316,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2193
2316
|
this._elements[this._offset + index] = newElement;
|
|
2194
2317
|
return true;
|
|
2195
2318
|
}
|
|
2319
|
+
/**
|
|
2320
|
+
* Delete the first element that satisfies a predicate.
|
|
2321
|
+
* @remarks Time O(N), Space O(N)
|
|
2322
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2323
|
+
* @returns True if a match was removed.
|
|
2324
|
+
*/
|
|
2325
|
+
deleteWhere(predicate) {
|
|
2326
|
+
for (let i = 0; i < this.length; i++) {
|
|
2327
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2328
|
+
this.deleteAt(i);
|
|
2329
|
+
return true;
|
|
2330
|
+
}
|
|
2331
|
+
}
|
|
2332
|
+
return false;
|
|
2333
|
+
}
|
|
2196
2334
|
/**
|
|
2197
2335
|
* Reverse the queue in-place by compacting then reversing.
|
|
2198
2336
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2235,6 +2373,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2235
2373
|
|
|
2236
2374
|
|
|
2237
2375
|
|
|
2376
|
+
|
|
2377
|
+
|
|
2378
|
+
|
|
2379
|
+
|
|
2238
2380
|
|
|
2239
2381
|
|
|
2240
2382
|
|
|
@@ -2281,6 +2423,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2281
2423
|
|
|
2282
2424
|
|
|
2283
2425
|
|
|
2426
|
+
|
|
2427
|
+
|
|
2428
|
+
|
|
2429
|
+
|
|
2284
2430
|
|
|
2285
2431
|
|
|
2286
2432
|
|
|
@@ -2350,6 +2496,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2350
2496
|
|
|
2351
2497
|
|
|
2352
2498
|
|
|
2499
|
+
|
|
2500
|
+
|
|
2501
|
+
|
|
2502
|
+
|
|
2353
2503
|
|
|
2354
2504
|
|
|
2355
2505
|
|
|
@@ -2403,6 +2553,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2403
2553
|
|
|
2404
2554
|
|
|
2405
2555
|
|
|
2556
|
+
|
|
2557
|
+
|
|
2558
|
+
|
|
2559
|
+
|
|
2406
2560
|
|
|
2407
2561
|
|
|
2408
2562
|
|
|
@@ -2460,6 +2614,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2460
2614
|
|
|
2461
2615
|
|
|
2462
2616
|
|
|
2617
|
+
|
|
2618
|
+
|
|
2619
|
+
|
|
2620
|
+
|
|
2463
2621
|
|
|
2464
2622
|
|
|
2465
2623
|
|
|
@@ -3602,6 +3760,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3602
3760
|
|
|
3603
3761
|
|
|
3604
3762
|
|
|
3763
|
+
|
|
3764
|
+
|
|
3765
|
+
|
|
3766
|
+
|
|
3605
3767
|
|
|
3606
3768
|
|
|
3607
3769
|
|
|
@@ -3690,6 +3852,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3690
3852
|
|
|
3691
3853
|
|
|
3692
3854
|
|
|
3855
|
+
|
|
3856
|
+
|
|
3857
|
+
|
|
3858
|
+
|
|
3693
3859
|
|
|
3694
3860
|
|
|
3695
3861
|
|
|
@@ -3776,6 +3942,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3776
3942
|
|
|
3777
3943
|
|
|
3778
3944
|
|
|
3945
|
+
|
|
3946
|
+
|
|
3947
|
+
|
|
3948
|
+
|
|
3779
3949
|
|
|
3780
3950
|
|
|
3781
3951
|
|
|
@@ -3853,6 +4023,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3853
4023
|
|
|
3854
4024
|
|
|
3855
4025
|
|
|
4026
|
+
|
|
4027
|
+
|
|
4028
|
+
|
|
4029
|
+
|
|
3856
4030
|
|
|
3857
4031
|
|
|
3858
4032
|
|
|
@@ -3907,6 +4081,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3907
4081
|
|
|
3908
4082
|
|
|
3909
4083
|
|
|
4084
|
+
|
|
4085
|
+
|
|
4086
|
+
|
|
4087
|
+
|
|
3910
4088
|
|
|
3911
4089
|
|
|
3912
4090
|
|
|
@@ -4014,6 +4192,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4014
4192
|
|
|
4015
4193
|
|
|
4016
4194
|
|
|
4195
|
+
|
|
4196
|
+
|
|
4197
|
+
|
|
4198
|
+
|
|
4017
4199
|
|
|
4018
4200
|
|
|
4019
4201
|
|
|
@@ -4102,6 +4284,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4102
4284
|
|
|
4103
4285
|
|
|
4104
4286
|
|
|
4287
|
+
|
|
4288
|
+
|
|
4289
|
+
|
|
4290
|
+
|
|
4105
4291
|
|
|
4106
4292
|
|
|
4107
4293
|
|
|
@@ -4152,6 +4338,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4152
4338
|
|
|
4153
4339
|
|
|
4154
4340
|
|
|
4341
|
+
|
|
4342
|
+
|
|
4343
|
+
|
|
4344
|
+
|
|
4155
4345
|
|
|
4156
4346
|
|
|
4157
4347
|
|
|
@@ -4255,6 +4445,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4255
4445
|
|
|
4256
4446
|
|
|
4257
4447
|
|
|
4448
|
+
|
|
4449
|
+
|
|
4450
|
+
|
|
4451
|
+
|
|
4258
4452
|
|
|
4259
4453
|
|
|
4260
4454
|
|
|
@@ -4361,6 +4555,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4361
4555
|
|
|
4362
4556
|
|
|
4363
4557
|
|
|
4558
|
+
|
|
4559
|
+
|
|
4560
|
+
|
|
4561
|
+
|
|
4364
4562
|
|
|
4365
4563
|
|
|
4366
4564
|
|
|
@@ -4531,6 +4729,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4531
4729
|
|
|
4532
4730
|
|
|
4533
4731
|
|
|
4732
|
+
|
|
4733
|
+
|
|
4734
|
+
|
|
4735
|
+
|
|
4534
4736
|
|
|
4535
4737
|
|
|
4536
4738
|
|
|
@@ -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
|
|
|
@@ -4799,6 +5009,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4799
5009
|
|
|
4800
5010
|
|
|
4801
5011
|
|
|
5012
|
+
|
|
5013
|
+
|
|
5014
|
+
|
|
5015
|
+
|
|
4802
5016
|
|
|
4803
5017
|
|
|
4804
5018
|
|
|
@@ -4853,6 +5067,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4853
5067
|
|
|
4854
5068
|
|
|
4855
5069
|
|
|
5070
|
+
|
|
5071
|
+
|
|
5072
|
+
|
|
5073
|
+
|
|
4856
5074
|
|
|
4857
5075
|
|
|
4858
5076
|
|
|
@@ -4977,6 +5195,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4977
5195
|
|
|
4978
5196
|
|
|
4979
5197
|
|
|
5198
|
+
|
|
5199
|
+
|
|
5200
|
+
|
|
5201
|
+
|
|
4980
5202
|
|
|
4981
5203
|
|
|
4982
5204
|
|
|
@@ -5123,6 +5345,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5123
5345
|
|
|
5124
5346
|
|
|
5125
5347
|
|
|
5348
|
+
|
|
5349
|
+
|
|
5350
|
+
|
|
5351
|
+
|
|
5126
5352
|
|
|
5127
5353
|
|
|
5128
5354
|
|
|
@@ -5191,6 +5417,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5191
5417
|
|
|
5192
5418
|
|
|
5193
5419
|
|
|
5420
|
+
|
|
5421
|
+
|
|
5422
|
+
|
|
5423
|
+
|
|
5194
5424
|
|
|
5195
5425
|
|
|
5196
5426
|
|
|
@@ -5241,6 +5471,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5241
5471
|
|
|
5242
5472
|
|
|
5243
5473
|
|
|
5474
|
+
|
|
5475
|
+
|
|
5476
|
+
|
|
5477
|
+
|
|
5244
5478
|
|
|
5245
5479
|
|
|
5246
5480
|
|