data-structure-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/.husky/pre-commit +3 -0
- package/CHANGELOG.md +3 -1
- package/MIGRATION.md +217 -0
- package/README.md +80 -8
- package/README_CN.md +569 -143
- package/SPECIFICATION.md +44 -14
- package/SPECIFICATION.zh-CN.md +44 -14
- package/dist/cjs/binary-tree.cjs +5841 -1678
- package/dist/cjs/graph.cjs +422 -14
- package/dist/cjs/hash.cjs +95 -7
- package/dist/cjs/heap.cjs +174 -16
- package/dist/cjs/index.cjs +7751 -2449
- package/dist/cjs/linked-list.cjs +443 -2
- package/dist/cjs/matrix.cjs +56 -0
- package/dist/cjs/priority-queue.cjs +172 -14
- package/dist/cjs/queue.cjs +435 -0
- package/dist/cjs/stack.cjs +103 -4
- package/dist/cjs/trie.cjs +106 -0
- package/dist/cjs-legacy/binary-tree.cjs +5933 -1772
- package/dist/cjs-legacy/graph.cjs +422 -14
- package/dist/cjs-legacy/hash.cjs +95 -7
- package/dist/cjs-legacy/heap.cjs +174 -16
- package/dist/cjs-legacy/index.cjs +8154 -2854
- package/dist/cjs-legacy/linked-list.cjs +443 -2
- package/dist/cjs-legacy/matrix.cjs +56 -0
- package/dist/cjs-legacy/priority-queue.cjs +172 -14
- package/dist/cjs-legacy/queue.cjs +435 -0
- package/dist/cjs-legacy/stack.cjs +103 -4
- package/dist/cjs-legacy/trie.cjs +106 -0
- package/dist/esm/binary-tree.mjs +5841 -1678
- package/dist/esm/graph.mjs +422 -14
- package/dist/esm/hash.mjs +95 -7
- package/dist/esm/heap.mjs +174 -16
- package/dist/esm/index.mjs +7751 -2449
- package/dist/esm/linked-list.mjs +443 -2
- package/dist/esm/matrix.mjs +56 -0
- package/dist/esm/priority-queue.mjs +172 -14
- package/dist/esm/queue.mjs +435 -0
- package/dist/esm/stack.mjs +103 -4
- package/dist/esm/trie.mjs +106 -0
- package/dist/esm-legacy/binary-tree.mjs +5933 -1772
- package/dist/esm-legacy/graph.mjs +422 -14
- package/dist/esm-legacy/hash.mjs +95 -7
- package/dist/esm-legacy/heap.mjs +174 -16
- package/dist/esm-legacy/index.mjs +8154 -2854
- package/dist/esm-legacy/linked-list.mjs +443 -2
- package/dist/esm-legacy/matrix.mjs +56 -0
- package/dist/esm-legacy/priority-queue.mjs +172 -14
- package/dist/esm-legacy/queue.mjs +435 -0
- package/dist/esm-legacy/stack.mjs +103 -4
- package/dist/esm-legacy/trie.mjs +106 -0
- 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/data-structure-typed.js +7784 -2484
- 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 +46 -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/jest.integration.config.js +1 -2
- package/package.json +10 -7
- package/src/data-structures/base/iterable-element-base.ts +32 -0
- package/src/data-structures/base/linear-base.ts +11 -0
- package/src/data-structures/binary-tree/avl-tree.ts +88 -5
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +98 -0
- package/src/data-structures/binary-tree/binary-tree.ts +242 -81
- package/src/data-structures/binary-tree/bst.ts +173 -7
- package/src/data-structures/binary-tree/red-black-tree.ts +139 -15
- package/src/data-structures/binary-tree/segment-tree.ts +42 -0
- package/src/data-structures/binary-tree/tree-map.ts +948 -36
- package/src/data-structures/binary-tree/tree-multi-map.ts +893 -13
- package/src/data-structures/binary-tree/tree-multi-set.ts +761 -33
- package/src/data-structures/binary-tree/tree-set.ts +1260 -251
- package/src/data-structures/graph/directed-graph.ts +71 -1
- package/src/data-structures/graph/undirected-graph.ts +64 -1
- package/src/data-structures/hash/hash-map.ts +100 -12
- package/src/data-structures/heap/heap.ts +149 -19
- package/src/data-structures/linked-list/doubly-linked-list.ts +178 -2
- package/src/data-structures/linked-list/singly-linked-list.ts +106 -1
- package/src/data-structures/linked-list/skip-linked-list.ts +126 -0
- package/src/data-structures/matrix/matrix.ts +56 -0
- package/src/data-structures/queue/deque.ts +187 -0
- package/src/data-structures/queue/queue.ts +109 -0
- package/src/data-structures/stack/stack.ts +75 -5
- package/src/data-structures/trie/trie.ts +84 -0
- package/src/interfaces/binary-tree.ts +1 -9
- package/.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
|
@@ -385,6 +385,35 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
385
385
|
for (const ele of this) if (ele === element) return true;
|
|
386
386
|
return false;
|
|
387
387
|
}
|
|
388
|
+
/**
|
|
389
|
+
* Check whether a value exists (Array-compatible alias for `has`).
|
|
390
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
|
|
391
|
+
* @param element - Element to search for (uses `===`).
|
|
392
|
+
* @returns `true` if found.
|
|
393
|
+
*/
|
|
394
|
+
includes(element) {
|
|
395
|
+
return this.has(element);
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Return an iterator of `[index, value]` pairs (Array-compatible).
|
|
399
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
|
|
400
|
+
*/
|
|
401
|
+
*entries() {
|
|
402
|
+
let index = 0;
|
|
403
|
+
for (const value of this) {
|
|
404
|
+
yield [index++, value];
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Return an iterator of numeric indices (Array-compatible).
|
|
409
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
|
|
410
|
+
*/
|
|
411
|
+
*keys() {
|
|
412
|
+
let index = 0;
|
|
413
|
+
for (const _ of this) {
|
|
414
|
+
yield index++;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
388
417
|
/**
|
|
389
418
|
* Reduces all elements to a single accumulated value.
|
|
390
419
|
*
|
|
@@ -646,6 +675,16 @@ var _LinearBase = class _LinearBase extends IterableElementBase {
|
|
|
646
675
|
}
|
|
647
676
|
return this;
|
|
648
677
|
}
|
|
678
|
+
/**
|
|
679
|
+
* Return a new instance of the same type with elements in reverse order (non-mutating).
|
|
680
|
+
* @remarks Provided for familiarity when migrating from Array (ES2023 `toReversed`). Time O(n), Space O(n).
|
|
681
|
+
* @returns A new reversed instance.
|
|
682
|
+
*/
|
|
683
|
+
toReversed() {
|
|
684
|
+
const cloned = this.clone();
|
|
685
|
+
cloned.reverse();
|
|
686
|
+
return cloned;
|
|
687
|
+
}
|
|
649
688
|
};
|
|
650
689
|
__name(_LinearBase, "LinearBase");
|
|
651
690
|
var LinearBase = _LinearBase;
|
|
@@ -717,6 +756,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
717
756
|
|
|
718
757
|
|
|
719
758
|
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
|
|
720
766
|
|
|
721
767
|
|
|
722
768
|
|
|
@@ -774,7 +820,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
774
820
|
}
|
|
775
821
|
/**
|
|
776
822
|
* Insert an element.
|
|
777
|
-
* @remarks Time O(
|
|
823
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
778
824
|
* @param element - Element to insert.
|
|
779
825
|
* @returns True.
|
|
780
826
|
|
|
@@ -804,6 +850,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
804
850
|
|
|
805
851
|
|
|
806
852
|
|
|
853
|
+
|
|
854
|
+
|
|
855
|
+
|
|
856
|
+
|
|
857
|
+
|
|
858
|
+
|
|
859
|
+
|
|
807
860
|
|
|
808
861
|
|
|
809
862
|
|
|
@@ -861,6 +914,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
861
914
|
|
|
862
915
|
|
|
863
916
|
|
|
917
|
+
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
|
|
923
|
+
|
|
864
924
|
|
|
865
925
|
|
|
866
926
|
|
|
@@ -924,7 +984,41 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
924
984
|
|
|
925
985
|
|
|
926
986
|
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
|
|
927
990
|
|
|
991
|
+
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
* @example
|
|
995
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
996
|
+
* interface Task {
|
|
997
|
+
* id: number;
|
|
998
|
+
* priority: number;
|
|
999
|
+
* name: string;
|
|
1000
|
+
* }
|
|
1001
|
+
*
|
|
1002
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
1003
|
+
* const tasks: Task[] = [
|
|
1004
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
1005
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
1006
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
1007
|
+
* ];
|
|
1008
|
+
*
|
|
1009
|
+
* const maxHeap = new Heap(tasks, {
|
|
1010
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
1011
|
+
* });
|
|
1012
|
+
*
|
|
1013
|
+
* console.log(maxHeap.size); // 3;
|
|
1014
|
+
*
|
|
1015
|
+
* // Peek returns highest priority task
|
|
1016
|
+
* const topTask = maxHeap.peek();
|
|
1017
|
+
* console.log(topTask?.priority); // 8;
|
|
1018
|
+
* console.log(topTask?.name); // 'Alert';
|
|
1019
|
+
*/
|
|
1020
|
+
/**
|
|
1021
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
928
1022
|
|
|
929
1023
|
|
|
930
1024
|
|
|
@@ -955,6 +1049,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
955
1049
|
* console.log(topTask?.name); // 'Alert';
|
|
956
1050
|
*/
|
|
957
1051
|
poll() {
|
|
1052
|
+
return this.pop();
|
|
1053
|
+
}
|
|
1054
|
+
/**
|
|
1055
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
1056
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1057
|
+
* @returns The removed top element, or undefined if empty.
|
|
1058
|
+
*/
|
|
1059
|
+
pop() {
|
|
958
1060
|
if (this.elements.length === 0) return;
|
|
959
1061
|
const value = this.elements[0];
|
|
960
1062
|
const last = this.elements.pop();
|
|
@@ -995,6 +1097,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
995
1097
|
|
|
996
1098
|
|
|
997
1099
|
|
|
1100
|
+
|
|
1101
|
+
|
|
1102
|
+
|
|
1103
|
+
|
|
1104
|
+
|
|
1105
|
+
|
|
1106
|
+
|
|
998
1107
|
|
|
999
1108
|
|
|
1000
1109
|
|
|
@@ -1095,6 +1204,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1095
1204
|
|
|
1096
1205
|
|
|
1097
1206
|
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
|
|
1210
|
+
|
|
1211
|
+
|
|
1212
|
+
|
|
1213
|
+
|
|
1098
1214
|
|
|
1099
1215
|
|
|
1100
1216
|
|
|
@@ -1142,6 +1258,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1142
1258
|
|
|
1143
1259
|
|
|
1144
1260
|
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
|
|
1145
1268
|
|
|
1146
1269
|
|
|
1147
1270
|
|
|
@@ -1159,16 +1282,6 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1159
1282
|
clear() {
|
|
1160
1283
|
this._elements = [];
|
|
1161
1284
|
}
|
|
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
1285
|
/**
|
|
1173
1286
|
* Check if an equal element exists in the heap.
|
|
1174
1287
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1192,6 +1305,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1192
1305
|
|
|
1193
1306
|
|
|
1194
1307
|
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
|
|
1314
|
+
|
|
1195
1315
|
|
|
1196
1316
|
|
|
1197
1317
|
|
|
@@ -1239,6 +1359,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1239
1359
|
|
|
1240
1360
|
|
|
1241
1361
|
|
|
1362
|
+
|
|
1363
|
+
|
|
1364
|
+
|
|
1365
|
+
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
|
|
1242
1369
|
|
|
1243
1370
|
|
|
1244
1371
|
|
|
@@ -1263,7 +1390,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1263
1390
|
}
|
|
1264
1391
|
if (index < 0) return false;
|
|
1265
1392
|
if (index === 0) {
|
|
1266
|
-
this.
|
|
1393
|
+
this.pop();
|
|
1267
1394
|
} else if (index === this.elements.length - 1) {
|
|
1268
1395
|
this.elements.pop();
|
|
1269
1396
|
} else {
|
|
@@ -1273,13 +1400,19 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1273
1400
|
}
|
|
1274
1401
|
return true;
|
|
1275
1402
|
}
|
|
1403
|
+
/**
|
|
1404
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1405
|
+
*/
|
|
1406
|
+
deleteBy(predicate) {
|
|
1407
|
+
return this.deleteWhere(predicate);
|
|
1408
|
+
}
|
|
1276
1409
|
/**
|
|
1277
1410
|
* Delete the first element that matches a predicate.
|
|
1278
1411
|
* @remarks Time O(N), Space O(1)
|
|
1279
1412
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1280
1413
|
* @returns True if an element was removed.
|
|
1281
1414
|
*/
|
|
1282
|
-
|
|
1415
|
+
deleteWhere(predicate) {
|
|
1283
1416
|
let idx = -1;
|
|
1284
1417
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1285
1418
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1289,7 +1422,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1289
1422
|
}
|
|
1290
1423
|
if (idx < 0) return false;
|
|
1291
1424
|
if (idx === 0) {
|
|
1292
|
-
this.
|
|
1425
|
+
this.pop();
|
|
1293
1426
|
} else if (idx === this.elements.length - 1) {
|
|
1294
1427
|
this.elements.pop();
|
|
1295
1428
|
} else {
|
|
@@ -1332,6 +1465,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1332
1465
|
|
|
1333
1466
|
|
|
1334
1467
|
|
|
1468
|
+
|
|
1469
|
+
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
|
|
1473
|
+
|
|
1474
|
+
|
|
1335
1475
|
|
|
1336
1476
|
|
|
1337
1477
|
|
|
@@ -1412,6 +1552,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1412
1552
|
|
|
1413
1553
|
|
|
1414
1554
|
|
|
1555
|
+
|
|
1556
|
+
|
|
1557
|
+
|
|
1558
|
+
|
|
1559
|
+
|
|
1560
|
+
|
|
1561
|
+
|
|
1415
1562
|
|
|
1416
1563
|
|
|
1417
1564
|
|
|
@@ -1465,6 +1612,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1465
1612
|
|
|
1466
1613
|
|
|
1467
1614
|
|
|
1615
|
+
|
|
1616
|
+
|
|
1617
|
+
|
|
1618
|
+
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
|
|
1468
1622
|
|
|
1469
1623
|
|
|
1470
1624
|
|
|
@@ -1517,6 +1671,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1517
1671
|
|
|
1518
1672
|
|
|
1519
1673
|
|
|
1674
|
+
|
|
1675
|
+
|
|
1676
|
+
|
|
1677
|
+
|
|
1678
|
+
|
|
1679
|
+
|
|
1680
|
+
|
|
1520
1681
|
|
|
1521
1682
|
|
|
1522
1683
|
|
|
@@ -1576,6 +1737,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1576
1737
|
|
|
1577
1738
|
|
|
1578
1739
|
|
|
1740
|
+
|
|
1741
|
+
|
|
1742
|
+
|
|
1743
|
+
|
|
1744
|
+
|
|
1745
|
+
|
|
1746
|
+
|
|
1579
1747
|
|
|
1580
1748
|
|
|
1581
1749
|
|
|
@@ -1779,6 +1947,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1779
1947
|
|
|
1780
1948
|
|
|
1781
1949
|
|
|
1950
|
+
|
|
1951
|
+
|
|
1952
|
+
|
|
1953
|
+
|
|
1954
|
+
|
|
1955
|
+
|
|
1956
|
+
|
|
1782
1957
|
|
|
1783
1958
|
|
|
1784
1959
|
|
|
@@ -1829,6 +2004,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1829
2004
|
|
|
1830
2005
|
|
|
1831
2006
|
|
|
2007
|
+
|
|
2008
|
+
|
|
2009
|
+
|
|
2010
|
+
|
|
2011
|
+
|
|
2012
|
+
|
|
2013
|
+
|
|
1832
2014
|
|
|
1833
2015
|
|
|
1834
2016
|
|
|
@@ -1846,6 +2028,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1846
2028
|
get first() {
|
|
1847
2029
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1848
2030
|
}
|
|
2031
|
+
/**
|
|
2032
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2033
|
+
* @remarks Time O(1), Space O(1)
|
|
2034
|
+
* @returns Front element or undefined.
|
|
2035
|
+
*/
|
|
2036
|
+
peek() {
|
|
2037
|
+
return this.first;
|
|
2038
|
+
}
|
|
1849
2039
|
/**
|
|
1850
2040
|
* Get the last element (back) without removing it.
|
|
1851
2041
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1895,6 +2085,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1895
2085
|
|
|
1896
2086
|
|
|
1897
2087
|
|
|
2088
|
+
|
|
2089
|
+
|
|
2090
|
+
|
|
2091
|
+
|
|
2092
|
+
|
|
2093
|
+
|
|
2094
|
+
|
|
1898
2095
|
|
|
1899
2096
|
|
|
1900
2097
|
|
|
@@ -1957,6 +2154,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1957
2154
|
|
|
1958
2155
|
|
|
1959
2156
|
|
|
2157
|
+
|
|
2158
|
+
|
|
2159
|
+
|
|
2160
|
+
|
|
2161
|
+
|
|
2162
|
+
|
|
2163
|
+
|
|
1960
2164
|
|
|
1961
2165
|
|
|
1962
2166
|
|
|
@@ -2026,6 +2230,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2026
2230
|
|
|
2027
2231
|
|
|
2028
2232
|
|
|
2233
|
+
|
|
2234
|
+
|
|
2235
|
+
|
|
2236
|
+
|
|
2237
|
+
|
|
2238
|
+
|
|
2239
|
+
|
|
2029
2240
|
|
|
2030
2241
|
|
|
2031
2242
|
|
|
@@ -2085,6 +2296,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2085
2296
|
|
|
2086
2297
|
|
|
2087
2298
|
|
|
2299
|
+
|
|
2300
|
+
|
|
2301
|
+
|
|
2302
|
+
|
|
2303
|
+
|
|
2304
|
+
|
|
2305
|
+
|
|
2088
2306
|
|
|
2089
2307
|
|
|
2090
2308
|
|
|
@@ -2137,6 +2355,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2137
2355
|
|
|
2138
2356
|
|
|
2139
2357
|
|
|
2358
|
+
|
|
2359
|
+
|
|
2360
|
+
|
|
2361
|
+
|
|
2362
|
+
|
|
2363
|
+
|
|
2364
|
+
|
|
2140
2365
|
|
|
2141
2366
|
|
|
2142
2367
|
|
|
@@ -2191,6 +2416,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2191
2416
|
this._elements[this._offset + index] = newElement;
|
|
2192
2417
|
return true;
|
|
2193
2418
|
}
|
|
2419
|
+
/**
|
|
2420
|
+
* Delete the first element that satisfies a predicate.
|
|
2421
|
+
* @remarks Time O(N), Space O(N)
|
|
2422
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2423
|
+
* @returns True if a match was removed.
|
|
2424
|
+
*/
|
|
2425
|
+
deleteWhere(predicate) {
|
|
2426
|
+
for (let i = 0; i < this.length; i++) {
|
|
2427
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2428
|
+
this.deleteAt(i);
|
|
2429
|
+
return true;
|
|
2430
|
+
}
|
|
2431
|
+
}
|
|
2432
|
+
return false;
|
|
2433
|
+
}
|
|
2194
2434
|
/**
|
|
2195
2435
|
* Reverse the queue in-place by compacting then reversing.
|
|
2196
2436
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2230,6 +2470,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2230
2470
|
|
|
2231
2471
|
|
|
2232
2472
|
|
|
2473
|
+
|
|
2474
|
+
|
|
2475
|
+
|
|
2476
|
+
|
|
2477
|
+
|
|
2478
|
+
|
|
2479
|
+
|
|
2233
2480
|
|
|
2234
2481
|
|
|
2235
2482
|
|
|
@@ -2276,6 +2523,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2276
2523
|
|
|
2277
2524
|
|
|
2278
2525
|
|
|
2526
|
+
|
|
2527
|
+
|
|
2528
|
+
|
|
2529
|
+
|
|
2530
|
+
|
|
2531
|
+
|
|
2532
|
+
|
|
2279
2533
|
|
|
2280
2534
|
|
|
2281
2535
|
|
|
@@ -2345,6 +2599,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2345
2599
|
|
|
2346
2600
|
|
|
2347
2601
|
|
|
2602
|
+
|
|
2603
|
+
|
|
2604
|
+
|
|
2605
|
+
|
|
2606
|
+
|
|
2607
|
+
|
|
2608
|
+
|
|
2348
2609
|
|
|
2349
2610
|
|
|
2350
2611
|
|
|
@@ -2398,6 +2659,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2398
2659
|
|
|
2399
2660
|
|
|
2400
2661
|
|
|
2662
|
+
|
|
2663
|
+
|
|
2664
|
+
|
|
2665
|
+
|
|
2666
|
+
|
|
2667
|
+
|
|
2668
|
+
|
|
2401
2669
|
|
|
2402
2670
|
|
|
2403
2671
|
|
|
@@ -2455,6 +2723,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2455
2723
|
|
|
2456
2724
|
|
|
2457
2725
|
|
|
2726
|
+
|
|
2727
|
+
|
|
2728
|
+
|
|
2729
|
+
|
|
2730
|
+
|
|
2731
|
+
|
|
2732
|
+
|
|
2458
2733
|
|
|
2459
2734
|
|
|
2460
2735
|
|
|
@@ -3597,6 +3872,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3597
3872
|
|
|
3598
3873
|
|
|
3599
3874
|
|
|
3875
|
+
|
|
3876
|
+
|
|
3877
|
+
|
|
3878
|
+
|
|
3879
|
+
|
|
3880
|
+
|
|
3881
|
+
|
|
3600
3882
|
|
|
3601
3883
|
|
|
3602
3884
|
|
|
@@ -3685,6 +3967,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3685
3967
|
|
|
3686
3968
|
|
|
3687
3969
|
|
|
3970
|
+
|
|
3971
|
+
|
|
3972
|
+
|
|
3973
|
+
|
|
3974
|
+
|
|
3975
|
+
|
|
3976
|
+
|
|
3688
3977
|
|
|
3689
3978
|
|
|
3690
3979
|
|
|
@@ -3771,6 +4060,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3771
4060
|
|
|
3772
4061
|
|
|
3773
4062
|
|
|
4063
|
+
|
|
4064
|
+
|
|
4065
|
+
|
|
4066
|
+
|
|
4067
|
+
|
|
4068
|
+
|
|
4069
|
+
|
|
3774
4070
|
|
|
3775
4071
|
|
|
3776
4072
|
|
|
@@ -3848,6 +4144,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3848
4144
|
|
|
3849
4145
|
|
|
3850
4146
|
|
|
4147
|
+
|
|
4148
|
+
|
|
4149
|
+
|
|
4150
|
+
|
|
4151
|
+
|
|
4152
|
+
|
|
4153
|
+
|
|
3851
4154
|
|
|
3852
4155
|
|
|
3853
4156
|
|
|
@@ -3902,6 +4205,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3902
4205
|
|
|
3903
4206
|
|
|
3904
4207
|
|
|
4208
|
+
|
|
4209
|
+
|
|
4210
|
+
|
|
4211
|
+
|
|
4212
|
+
|
|
4213
|
+
|
|
4214
|
+
|
|
3905
4215
|
|
|
3906
4216
|
|
|
3907
4217
|
|
|
@@ -4009,6 +4319,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4009
4319
|
|
|
4010
4320
|
|
|
4011
4321
|
|
|
4322
|
+
|
|
4323
|
+
|
|
4324
|
+
|
|
4325
|
+
|
|
4326
|
+
|
|
4327
|
+
|
|
4328
|
+
|
|
4012
4329
|
|
|
4013
4330
|
|
|
4014
4331
|
|
|
@@ -4097,6 +4414,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4097
4414
|
|
|
4098
4415
|
|
|
4099
4416
|
|
|
4417
|
+
|
|
4418
|
+
|
|
4419
|
+
|
|
4420
|
+
|
|
4421
|
+
|
|
4422
|
+
|
|
4423
|
+
|
|
4100
4424
|
|
|
4101
4425
|
|
|
4102
4426
|
|
|
@@ -4147,6 +4471,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4147
4471
|
|
|
4148
4472
|
|
|
4149
4473
|
|
|
4474
|
+
|
|
4475
|
+
|
|
4476
|
+
|
|
4477
|
+
|
|
4478
|
+
|
|
4479
|
+
|
|
4480
|
+
|
|
4150
4481
|
|
|
4151
4482
|
|
|
4152
4483
|
|
|
@@ -4250,6 +4581,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4250
4581
|
|
|
4251
4582
|
|
|
4252
4583
|
|
|
4584
|
+
|
|
4585
|
+
|
|
4586
|
+
|
|
4587
|
+
|
|
4588
|
+
|
|
4589
|
+
|
|
4590
|
+
|
|
4253
4591
|
|
|
4254
4592
|
|
|
4255
4593
|
|
|
@@ -4356,6 +4694,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4356
4694
|
|
|
4357
4695
|
|
|
4358
4696
|
|
|
4697
|
+
|
|
4698
|
+
|
|
4699
|
+
|
|
4700
|
+
|
|
4701
|
+
|
|
4702
|
+
|
|
4703
|
+
|
|
4359
4704
|
|
|
4360
4705
|
|
|
4361
4706
|
|
|
@@ -4526,6 +4871,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4526
4871
|
|
|
4527
4872
|
|
|
4528
4873
|
|
|
4874
|
+
|
|
4875
|
+
|
|
4876
|
+
|
|
4877
|
+
|
|
4878
|
+
|
|
4879
|
+
|
|
4880
|
+
|
|
4529
4881
|
|
|
4530
4882
|
|
|
4531
4883
|
|
|
@@ -4611,6 +4963,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4611
4963
|
|
|
4612
4964
|
|
|
4613
4965
|
|
|
4966
|
+
|
|
4967
|
+
|
|
4968
|
+
|
|
4969
|
+
|
|
4970
|
+
|
|
4971
|
+
|
|
4972
|
+
|
|
4614
4973
|
|
|
4615
4974
|
|
|
4616
4975
|
|
|
@@ -4695,6 +5054,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4695
5054
|
|
|
4696
5055
|
|
|
4697
5056
|
|
|
5057
|
+
|
|
5058
|
+
|
|
5059
|
+
|
|
5060
|
+
|
|
5061
|
+
|
|
5062
|
+
|
|
5063
|
+
|
|
4698
5064
|
|
|
4699
5065
|
|
|
4700
5066
|
|
|
@@ -4794,6 +5160,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4794
5160
|
|
|
4795
5161
|
|
|
4796
5162
|
|
|
5163
|
+
|
|
5164
|
+
|
|
5165
|
+
|
|
5166
|
+
|
|
5167
|
+
|
|
5168
|
+
|
|
5169
|
+
|
|
4797
5170
|
|
|
4798
5171
|
|
|
4799
5172
|
|
|
@@ -4848,6 +5221,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4848
5221
|
|
|
4849
5222
|
|
|
4850
5223
|
|
|
5224
|
+
|
|
5225
|
+
|
|
5226
|
+
|
|
5227
|
+
|
|
5228
|
+
|
|
5229
|
+
|
|
5230
|
+
|
|
4851
5231
|
|
|
4852
5232
|
|
|
4853
5233
|
|
|
@@ -4972,6 +5352,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4972
5352
|
|
|
4973
5353
|
|
|
4974
5354
|
|
|
5355
|
+
|
|
5356
|
+
|
|
5357
|
+
|
|
5358
|
+
|
|
5359
|
+
|
|
5360
|
+
|
|
5361
|
+
|
|
4975
5362
|
|
|
4976
5363
|
|
|
4977
5364
|
|
|
@@ -5118,6 +5505,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5118
5505
|
|
|
5119
5506
|
|
|
5120
5507
|
|
|
5508
|
+
|
|
5509
|
+
|
|
5510
|
+
|
|
5511
|
+
|
|
5512
|
+
|
|
5513
|
+
|
|
5514
|
+
|
|
5121
5515
|
|
|
5122
5516
|
|
|
5123
5517
|
|
|
@@ -5186,6 +5580,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5186
5580
|
|
|
5187
5581
|
|
|
5188
5582
|
|
|
5583
|
+
|
|
5584
|
+
|
|
5585
|
+
|
|
5586
|
+
|
|
5587
|
+
|
|
5588
|
+
|
|
5589
|
+
|
|
5189
5590
|
|
|
5190
5591
|
|
|
5191
5592
|
|
|
@@ -5236,6 +5637,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5236
5637
|
|
|
5237
5638
|
|
|
5238
5639
|
|
|
5640
|
+
|
|
5641
|
+
|
|
5642
|
+
|
|
5643
|
+
|
|
5644
|
+
|
|
5645
|
+
|
|
5646
|
+
|
|
5239
5647
|
|
|
5240
5648
|
|
|
5241
5649
|
|