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
|
@@ -720,6 +720,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
720
720
|
|
|
721
721
|
|
|
722
722
|
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
|
|
726
|
+
|
|
723
727
|
|
|
724
728
|
|
|
725
729
|
|
|
@@ -774,7 +778,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
774
778
|
}
|
|
775
779
|
/**
|
|
776
780
|
* Insert an element.
|
|
777
|
-
* @remarks Time O(
|
|
781
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
778
782
|
* @param element - Element to insert.
|
|
779
783
|
* @returns True.
|
|
780
784
|
|
|
@@ -807,6 +811,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
807
811
|
|
|
808
812
|
|
|
809
813
|
|
|
814
|
+
|
|
815
|
+
|
|
816
|
+
|
|
817
|
+
|
|
810
818
|
|
|
811
819
|
|
|
812
820
|
|
|
@@ -864,6 +872,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
864
872
|
|
|
865
873
|
|
|
866
874
|
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
|
|
878
|
+
|
|
867
879
|
|
|
868
880
|
|
|
869
881
|
|
|
@@ -924,10 +936,41 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
924
936
|
|
|
925
937
|
|
|
926
938
|
|
|
939
|
+
|
|
940
|
+
|
|
941
|
+
|
|
927
942
|
|
|
928
943
|
|
|
929
944
|
|
|
930
945
|
|
|
946
|
+
* @example
|
|
947
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
948
|
+
* interface Task {
|
|
949
|
+
* id: number;
|
|
950
|
+
* priority: number;
|
|
951
|
+
* name: string;
|
|
952
|
+
* }
|
|
953
|
+
*
|
|
954
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
955
|
+
* const tasks: Task[] = [
|
|
956
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
957
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
958
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
959
|
+
* ];
|
|
960
|
+
*
|
|
961
|
+
* const maxHeap = new Heap(tasks, {
|
|
962
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
963
|
+
* });
|
|
964
|
+
*
|
|
965
|
+
* console.log(maxHeap.size); // 3;
|
|
966
|
+
*
|
|
967
|
+
* // Peek returns highest priority task
|
|
968
|
+
* const topTask = maxHeap.peek();
|
|
969
|
+
* console.log(topTask?.priority); // 8;
|
|
970
|
+
* console.log(topTask?.name); // 'Alert';
|
|
971
|
+
*/
|
|
972
|
+
/**
|
|
973
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
931
974
|
* @example
|
|
932
975
|
* // Heap with custom comparator (MaxHeap behavior)
|
|
933
976
|
* interface Task {
|
|
@@ -955,6 +998,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
955
998
|
* console.log(topTask?.name); // 'Alert';
|
|
956
999
|
*/
|
|
957
1000
|
poll() {
|
|
1001
|
+
return this.pop();
|
|
1002
|
+
}
|
|
1003
|
+
/**
|
|
1004
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
1005
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1006
|
+
* @returns The removed top element, or undefined if empty.
|
|
1007
|
+
*/
|
|
1008
|
+
pop() {
|
|
958
1009
|
if (this.elements.length === 0) return;
|
|
959
1010
|
const value = this.elements[0];
|
|
960
1011
|
const last = this.elements.pop();
|
|
@@ -998,6 +1049,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
998
1049
|
|
|
999
1050
|
|
|
1000
1051
|
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
|
|
1055
|
+
|
|
1001
1056
|
|
|
1002
1057
|
|
|
1003
1058
|
|
|
@@ -1098,6 +1153,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1098
1153
|
|
|
1099
1154
|
|
|
1100
1155
|
|
|
1156
|
+
|
|
1157
|
+
|
|
1158
|
+
|
|
1159
|
+
|
|
1101
1160
|
|
|
1102
1161
|
|
|
1103
1162
|
|
|
@@ -1145,6 +1204,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1145
1204
|
|
|
1146
1205
|
|
|
1147
1206
|
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
|
|
1210
|
+
|
|
1148
1211
|
|
|
1149
1212
|
|
|
1150
1213
|
|
|
@@ -1159,16 +1222,6 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1159
1222
|
clear() {
|
|
1160
1223
|
this._elements = [];
|
|
1161
1224
|
}
|
|
1162
|
-
/**
|
|
1163
|
-
* Replace the backing array and rebuild the heap.
|
|
1164
|
-
* @remarks Time O(N), Space O(N)
|
|
1165
|
-
* @param elements - Iterable used to refill the heap.
|
|
1166
|
-
* @returns Array of per-node results from fixing steps.
|
|
1167
|
-
*/
|
|
1168
|
-
refill(elements) {
|
|
1169
|
-
this._elements = Array.from(elements);
|
|
1170
|
-
return this.fix();
|
|
1171
|
-
}
|
|
1172
1225
|
/**
|
|
1173
1226
|
* Check if an equal element exists in the heap.
|
|
1174
1227
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1195,6 +1248,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1195
1248
|
|
|
1196
1249
|
|
|
1197
1250
|
|
|
1251
|
+
|
|
1252
|
+
|
|
1253
|
+
|
|
1254
|
+
|
|
1198
1255
|
|
|
1199
1256
|
|
|
1200
1257
|
|
|
@@ -1242,6 +1299,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1242
1299
|
|
|
1243
1300
|
|
|
1244
1301
|
|
|
1302
|
+
|
|
1303
|
+
|
|
1304
|
+
|
|
1305
|
+
|
|
1245
1306
|
|
|
1246
1307
|
|
|
1247
1308
|
|
|
@@ -1263,7 +1324,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1263
1324
|
}
|
|
1264
1325
|
if (index < 0) return false;
|
|
1265
1326
|
if (index === 0) {
|
|
1266
|
-
this.
|
|
1327
|
+
this.pop();
|
|
1267
1328
|
} else if (index === this.elements.length - 1) {
|
|
1268
1329
|
this.elements.pop();
|
|
1269
1330
|
} else {
|
|
@@ -1273,13 +1334,19 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1273
1334
|
}
|
|
1274
1335
|
return true;
|
|
1275
1336
|
}
|
|
1337
|
+
/**
|
|
1338
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1339
|
+
*/
|
|
1340
|
+
deleteBy(predicate) {
|
|
1341
|
+
return this.deleteWhere(predicate);
|
|
1342
|
+
}
|
|
1276
1343
|
/**
|
|
1277
1344
|
* Delete the first element that matches a predicate.
|
|
1278
1345
|
* @remarks Time O(N), Space O(1)
|
|
1279
1346
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1280
1347
|
* @returns True if an element was removed.
|
|
1281
1348
|
*/
|
|
1282
|
-
|
|
1349
|
+
deleteWhere(predicate) {
|
|
1283
1350
|
let idx = -1;
|
|
1284
1351
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1285
1352
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1289,7 +1356,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1289
1356
|
}
|
|
1290
1357
|
if (idx < 0) return false;
|
|
1291
1358
|
if (idx === 0) {
|
|
1292
|
-
this.
|
|
1359
|
+
this.pop();
|
|
1293
1360
|
} else if (idx === this.elements.length - 1) {
|
|
1294
1361
|
this.elements.pop();
|
|
1295
1362
|
} else {
|
|
@@ -1335,6 +1402,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1335
1402
|
|
|
1336
1403
|
|
|
1337
1404
|
|
|
1405
|
+
|
|
1406
|
+
|
|
1407
|
+
|
|
1408
|
+
|
|
1338
1409
|
|
|
1339
1410
|
|
|
1340
1411
|
|
|
@@ -1415,6 +1486,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1415
1486
|
|
|
1416
1487
|
|
|
1417
1488
|
|
|
1489
|
+
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
|
|
1418
1493
|
|
|
1419
1494
|
|
|
1420
1495
|
|
|
@@ -1468,6 +1543,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1468
1543
|
|
|
1469
1544
|
|
|
1470
1545
|
|
|
1546
|
+
|
|
1547
|
+
|
|
1548
|
+
|
|
1549
|
+
|
|
1471
1550
|
|
|
1472
1551
|
|
|
1473
1552
|
|
|
@@ -1520,6 +1599,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1520
1599
|
|
|
1521
1600
|
|
|
1522
1601
|
|
|
1602
|
+
|
|
1603
|
+
|
|
1604
|
+
|
|
1605
|
+
|
|
1523
1606
|
|
|
1524
1607
|
|
|
1525
1608
|
|
|
@@ -1579,6 +1662,10 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1579
1662
|
|
|
1580
1663
|
|
|
1581
1664
|
|
|
1665
|
+
|
|
1666
|
+
|
|
1667
|
+
|
|
1668
|
+
|
|
1582
1669
|
|
|
1583
1670
|
|
|
1584
1671
|
|
|
@@ -1782,6 +1869,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1782
1869
|
|
|
1783
1870
|
|
|
1784
1871
|
|
|
1872
|
+
|
|
1873
|
+
|
|
1874
|
+
|
|
1875
|
+
|
|
1785
1876
|
|
|
1786
1877
|
|
|
1787
1878
|
|
|
@@ -1832,6 +1923,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1832
1923
|
|
|
1833
1924
|
|
|
1834
1925
|
|
|
1926
|
+
|
|
1927
|
+
|
|
1928
|
+
|
|
1929
|
+
|
|
1835
1930
|
|
|
1836
1931
|
|
|
1837
1932
|
|
|
@@ -1846,6 +1941,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1846
1941
|
get first() {
|
|
1847
1942
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1848
1943
|
}
|
|
1944
|
+
/**
|
|
1945
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
1946
|
+
* @remarks Time O(1), Space O(1)
|
|
1947
|
+
* @returns Front element or undefined.
|
|
1948
|
+
*/
|
|
1949
|
+
peek() {
|
|
1950
|
+
return this.first;
|
|
1951
|
+
}
|
|
1849
1952
|
/**
|
|
1850
1953
|
* Get the last element (back) without removing it.
|
|
1851
1954
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1898,6 +2001,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1898
2001
|
|
|
1899
2002
|
|
|
1900
2003
|
|
|
2004
|
+
|
|
2005
|
+
|
|
2006
|
+
|
|
2007
|
+
|
|
1901
2008
|
|
|
1902
2009
|
|
|
1903
2010
|
|
|
@@ -1960,6 +2067,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1960
2067
|
|
|
1961
2068
|
|
|
1962
2069
|
|
|
2070
|
+
|
|
2071
|
+
|
|
2072
|
+
|
|
2073
|
+
|
|
1963
2074
|
|
|
1964
2075
|
|
|
1965
2076
|
|
|
@@ -2029,6 +2140,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2029
2140
|
|
|
2030
2141
|
|
|
2031
2142
|
|
|
2143
|
+
|
|
2144
|
+
|
|
2145
|
+
|
|
2146
|
+
|
|
2032
2147
|
|
|
2033
2148
|
|
|
2034
2149
|
|
|
@@ -2088,6 +2203,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2088
2203
|
|
|
2089
2204
|
|
|
2090
2205
|
|
|
2206
|
+
|
|
2207
|
+
|
|
2208
|
+
|
|
2209
|
+
|
|
2091
2210
|
|
|
2092
2211
|
|
|
2093
2212
|
|
|
@@ -2140,6 +2259,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2140
2259
|
|
|
2141
2260
|
|
|
2142
2261
|
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
|
|
2265
|
+
|
|
2143
2266
|
|
|
2144
2267
|
|
|
2145
2268
|
|
|
@@ -2191,6 +2314,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2191
2314
|
this._elements[this._offset + index] = newElement;
|
|
2192
2315
|
return true;
|
|
2193
2316
|
}
|
|
2317
|
+
/**
|
|
2318
|
+
* Delete the first element that satisfies a predicate.
|
|
2319
|
+
* @remarks Time O(N), Space O(N)
|
|
2320
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2321
|
+
* @returns True if a match was removed.
|
|
2322
|
+
*/
|
|
2323
|
+
deleteWhere(predicate) {
|
|
2324
|
+
for (let i = 0; i < this.length; i++) {
|
|
2325
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2326
|
+
this.deleteAt(i);
|
|
2327
|
+
return true;
|
|
2328
|
+
}
|
|
2329
|
+
}
|
|
2330
|
+
return false;
|
|
2331
|
+
}
|
|
2194
2332
|
/**
|
|
2195
2333
|
* Reverse the queue in-place by compacting then reversing.
|
|
2196
2334
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2233,6 +2371,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2233
2371
|
|
|
2234
2372
|
|
|
2235
2373
|
|
|
2374
|
+
|
|
2375
|
+
|
|
2376
|
+
|
|
2377
|
+
|
|
2236
2378
|
|
|
2237
2379
|
|
|
2238
2380
|
|
|
@@ -2279,6 +2421,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2279
2421
|
|
|
2280
2422
|
|
|
2281
2423
|
|
|
2424
|
+
|
|
2425
|
+
|
|
2426
|
+
|
|
2427
|
+
|
|
2282
2428
|
|
|
2283
2429
|
|
|
2284
2430
|
|
|
@@ -2348,6 +2494,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2348
2494
|
|
|
2349
2495
|
|
|
2350
2496
|
|
|
2497
|
+
|
|
2498
|
+
|
|
2499
|
+
|
|
2500
|
+
|
|
2351
2501
|
|
|
2352
2502
|
|
|
2353
2503
|
|
|
@@ -2401,6 +2551,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2401
2551
|
|
|
2402
2552
|
|
|
2403
2553
|
|
|
2554
|
+
|
|
2555
|
+
|
|
2556
|
+
|
|
2557
|
+
|
|
2404
2558
|
|
|
2405
2559
|
|
|
2406
2560
|
|
|
@@ -2458,6 +2612,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2458
2612
|
|
|
2459
2613
|
|
|
2460
2614
|
|
|
2615
|
+
|
|
2616
|
+
|
|
2617
|
+
|
|
2618
|
+
|
|
2461
2619
|
|
|
2462
2620
|
|
|
2463
2621
|
|
|
@@ -3600,6 +3758,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3600
3758
|
|
|
3601
3759
|
|
|
3602
3760
|
|
|
3761
|
+
|
|
3762
|
+
|
|
3763
|
+
|
|
3764
|
+
|
|
3603
3765
|
|
|
3604
3766
|
|
|
3605
3767
|
|
|
@@ -3688,6 +3850,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3688
3850
|
|
|
3689
3851
|
|
|
3690
3852
|
|
|
3853
|
+
|
|
3854
|
+
|
|
3855
|
+
|
|
3856
|
+
|
|
3691
3857
|
|
|
3692
3858
|
|
|
3693
3859
|
|
|
@@ -3774,6 +3940,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3774
3940
|
|
|
3775
3941
|
|
|
3776
3942
|
|
|
3943
|
+
|
|
3944
|
+
|
|
3945
|
+
|
|
3946
|
+
|
|
3777
3947
|
|
|
3778
3948
|
|
|
3779
3949
|
|
|
@@ -3851,6 +4021,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3851
4021
|
|
|
3852
4022
|
|
|
3853
4023
|
|
|
4024
|
+
|
|
4025
|
+
|
|
4026
|
+
|
|
4027
|
+
|
|
3854
4028
|
|
|
3855
4029
|
|
|
3856
4030
|
|
|
@@ -3905,6 +4079,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3905
4079
|
|
|
3906
4080
|
|
|
3907
4081
|
|
|
4082
|
+
|
|
4083
|
+
|
|
4084
|
+
|
|
4085
|
+
|
|
3908
4086
|
|
|
3909
4087
|
|
|
3910
4088
|
|
|
@@ -4012,6 +4190,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4012
4190
|
|
|
4013
4191
|
|
|
4014
4192
|
|
|
4193
|
+
|
|
4194
|
+
|
|
4195
|
+
|
|
4196
|
+
|
|
4015
4197
|
|
|
4016
4198
|
|
|
4017
4199
|
|
|
@@ -4100,6 +4282,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4100
4282
|
|
|
4101
4283
|
|
|
4102
4284
|
|
|
4285
|
+
|
|
4286
|
+
|
|
4287
|
+
|
|
4288
|
+
|
|
4103
4289
|
|
|
4104
4290
|
|
|
4105
4291
|
|
|
@@ -4150,6 +4336,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4150
4336
|
|
|
4151
4337
|
|
|
4152
4338
|
|
|
4339
|
+
|
|
4340
|
+
|
|
4341
|
+
|
|
4342
|
+
|
|
4153
4343
|
|
|
4154
4344
|
|
|
4155
4345
|
|
|
@@ -4253,6 +4443,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4253
4443
|
|
|
4254
4444
|
|
|
4255
4445
|
|
|
4446
|
+
|
|
4447
|
+
|
|
4448
|
+
|
|
4449
|
+
|
|
4256
4450
|
|
|
4257
4451
|
|
|
4258
4452
|
|
|
@@ -4359,6 +4553,10 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4359
4553
|
|
|
4360
4554
|
|
|
4361
4555
|
|
|
4556
|
+
|
|
4557
|
+
|
|
4558
|
+
|
|
4559
|
+
|
|
4362
4560
|
|
|
4363
4561
|
|
|
4364
4562
|
|
|
@@ -4529,6 +4727,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4529
4727
|
|
|
4530
4728
|
|
|
4531
4729
|
|
|
4730
|
+
|
|
4731
|
+
|
|
4732
|
+
|
|
4733
|
+
|
|
4532
4734
|
|
|
4533
4735
|
|
|
4534
4736
|
|
|
@@ -4614,6 +4816,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4614
4816
|
|
|
4615
4817
|
|
|
4616
4818
|
|
|
4819
|
+
|
|
4820
|
+
|
|
4821
|
+
|
|
4822
|
+
|
|
4617
4823
|
|
|
4618
4824
|
|
|
4619
4825
|
|
|
@@ -4698,6 +4904,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4698
4904
|
|
|
4699
4905
|
|
|
4700
4906
|
|
|
4907
|
+
|
|
4908
|
+
|
|
4909
|
+
|
|
4910
|
+
|
|
4701
4911
|
|
|
4702
4912
|
|
|
4703
4913
|
|
|
@@ -4797,6 +5007,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4797
5007
|
|
|
4798
5008
|
|
|
4799
5009
|
|
|
5010
|
+
|
|
5011
|
+
|
|
5012
|
+
|
|
5013
|
+
|
|
4800
5014
|
|
|
4801
5015
|
|
|
4802
5016
|
|
|
@@ -4851,6 +5065,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4851
5065
|
|
|
4852
5066
|
|
|
4853
5067
|
|
|
5068
|
+
|
|
5069
|
+
|
|
5070
|
+
|
|
5071
|
+
|
|
4854
5072
|
|
|
4855
5073
|
|
|
4856
5074
|
|
|
@@ -4975,6 +5193,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4975
5193
|
|
|
4976
5194
|
|
|
4977
5195
|
|
|
5196
|
+
|
|
5197
|
+
|
|
5198
|
+
|
|
5199
|
+
|
|
4978
5200
|
|
|
4979
5201
|
|
|
4980
5202
|
|
|
@@ -5121,6 +5343,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5121
5343
|
|
|
5122
5344
|
|
|
5123
5345
|
|
|
5346
|
+
|
|
5347
|
+
|
|
5348
|
+
|
|
5349
|
+
|
|
5124
5350
|
|
|
5125
5351
|
|
|
5126
5352
|
|
|
@@ -5189,6 +5415,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5189
5415
|
|
|
5190
5416
|
|
|
5191
5417
|
|
|
5418
|
+
|
|
5419
|
+
|
|
5420
|
+
|
|
5421
|
+
|
|
5192
5422
|
|
|
5193
5423
|
|
|
5194
5424
|
|
|
@@ -5239,6 +5469,10 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5239
5469
|
|
|
5240
5470
|
|
|
5241
5471
|
|
|
5472
|
+
|
|
5473
|
+
|
|
5474
|
+
|
|
5475
|
+
|
|
5242
5476
|
|
|
5243
5477
|
|
|
5244
5478
|
|