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
|
@@ -387,6 +387,35 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
387
387
|
for (const ele of this) if (ele === element) return true;
|
|
388
388
|
return false;
|
|
389
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Check whether a value exists (Array-compatible alias for `has`).
|
|
392
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
|
|
393
|
+
* @param element - Element to search for (uses `===`).
|
|
394
|
+
* @returns `true` if found.
|
|
395
|
+
*/
|
|
396
|
+
includes(element) {
|
|
397
|
+
return this.has(element);
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Return an iterator of `[index, value]` pairs (Array-compatible).
|
|
401
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
|
|
402
|
+
*/
|
|
403
|
+
*entries() {
|
|
404
|
+
let index = 0;
|
|
405
|
+
for (const value of this) {
|
|
406
|
+
yield [index++, value];
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Return an iterator of numeric indices (Array-compatible).
|
|
411
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
|
|
412
|
+
*/
|
|
413
|
+
*keys() {
|
|
414
|
+
let index = 0;
|
|
415
|
+
for (const _ of this) {
|
|
416
|
+
yield index++;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
390
419
|
/**
|
|
391
420
|
* Reduces all elements to a single accumulated value.
|
|
392
421
|
*
|
|
@@ -648,6 +677,16 @@ var _LinearBase = class _LinearBase extends IterableElementBase {
|
|
|
648
677
|
}
|
|
649
678
|
return this;
|
|
650
679
|
}
|
|
680
|
+
/**
|
|
681
|
+
* Return a new instance of the same type with elements in reverse order (non-mutating).
|
|
682
|
+
* @remarks Provided for familiarity when migrating from Array (ES2023 `toReversed`). Time O(n), Space O(n).
|
|
683
|
+
* @returns A new reversed instance.
|
|
684
|
+
*/
|
|
685
|
+
toReversed() {
|
|
686
|
+
const cloned = this.clone();
|
|
687
|
+
cloned.reverse();
|
|
688
|
+
return cloned;
|
|
689
|
+
}
|
|
651
690
|
};
|
|
652
691
|
__name(_LinearBase, "LinearBase");
|
|
653
692
|
var LinearBase = _LinearBase;
|
|
@@ -719,6 +758,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
719
758
|
|
|
720
759
|
|
|
721
760
|
|
|
761
|
+
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
|
|
767
|
+
|
|
722
768
|
|
|
723
769
|
|
|
724
770
|
|
|
@@ -776,7 +822,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
776
822
|
}
|
|
777
823
|
/**
|
|
778
824
|
* Insert an element.
|
|
779
|
-
* @remarks Time O(
|
|
825
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
780
826
|
* @param element - Element to insert.
|
|
781
827
|
* @returns True.
|
|
782
828
|
|
|
@@ -806,6 +852,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
806
852
|
|
|
807
853
|
|
|
808
854
|
|
|
855
|
+
|
|
856
|
+
|
|
857
|
+
|
|
858
|
+
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
|
|
809
862
|
|
|
810
863
|
|
|
811
864
|
|
|
@@ -863,6 +916,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
863
916
|
|
|
864
917
|
|
|
865
918
|
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
|
|
923
|
+
|
|
924
|
+
|
|
925
|
+
|
|
866
926
|
|
|
867
927
|
|
|
868
928
|
|
|
@@ -926,7 +986,41 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
926
986
|
|
|
927
987
|
|
|
928
988
|
|
|
989
|
+
|
|
990
|
+
|
|
991
|
+
|
|
929
992
|
|
|
993
|
+
|
|
994
|
+
|
|
995
|
+
|
|
996
|
+
* @example
|
|
997
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
998
|
+
* interface Task {
|
|
999
|
+
* id: number;
|
|
1000
|
+
* priority: number;
|
|
1001
|
+
* name: string;
|
|
1002
|
+
* }
|
|
1003
|
+
*
|
|
1004
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
1005
|
+
* const tasks: Task[] = [
|
|
1006
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
1007
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
1008
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
1009
|
+
* ];
|
|
1010
|
+
*
|
|
1011
|
+
* const maxHeap = new Heap(tasks, {
|
|
1012
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
1013
|
+
* });
|
|
1014
|
+
*
|
|
1015
|
+
* console.log(maxHeap.size); // 3;
|
|
1016
|
+
*
|
|
1017
|
+
* // Peek returns highest priority task
|
|
1018
|
+
* const topTask = maxHeap.peek();
|
|
1019
|
+
* console.log(topTask?.priority); // 8;
|
|
1020
|
+
* console.log(topTask?.name); // 'Alert';
|
|
1021
|
+
*/
|
|
1022
|
+
/**
|
|
1023
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
930
1024
|
|
|
931
1025
|
|
|
932
1026
|
|
|
@@ -957,6 +1051,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
957
1051
|
* console.log(topTask?.name); // 'Alert';
|
|
958
1052
|
*/
|
|
959
1053
|
poll() {
|
|
1054
|
+
return this.pop();
|
|
1055
|
+
}
|
|
1056
|
+
/**
|
|
1057
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
1058
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1059
|
+
* @returns The removed top element, or undefined if empty.
|
|
1060
|
+
*/
|
|
1061
|
+
pop() {
|
|
960
1062
|
if (this.elements.length === 0) return;
|
|
961
1063
|
const value = this.elements[0];
|
|
962
1064
|
const last = this.elements.pop();
|
|
@@ -997,6 +1099,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
997
1099
|
|
|
998
1100
|
|
|
999
1101
|
|
|
1102
|
+
|
|
1103
|
+
|
|
1104
|
+
|
|
1105
|
+
|
|
1106
|
+
|
|
1107
|
+
|
|
1108
|
+
|
|
1000
1109
|
|
|
1001
1110
|
|
|
1002
1111
|
|
|
@@ -1097,6 +1206,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1097
1206
|
|
|
1098
1207
|
|
|
1099
1208
|
|
|
1209
|
+
|
|
1210
|
+
|
|
1211
|
+
|
|
1212
|
+
|
|
1213
|
+
|
|
1214
|
+
|
|
1215
|
+
|
|
1100
1216
|
|
|
1101
1217
|
|
|
1102
1218
|
|
|
@@ -1144,6 +1260,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1144
1260
|
|
|
1145
1261
|
|
|
1146
1262
|
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
|
|
1268
|
+
|
|
1269
|
+
|
|
1147
1270
|
|
|
1148
1271
|
|
|
1149
1272
|
|
|
@@ -1161,16 +1284,6 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1161
1284
|
clear() {
|
|
1162
1285
|
this._elements = [];
|
|
1163
1286
|
}
|
|
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
1287
|
/**
|
|
1175
1288
|
* Check if an equal element exists in the heap.
|
|
1176
1289
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1194,6 +1307,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1194
1307
|
|
|
1195
1308
|
|
|
1196
1309
|
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
|
|
1314
|
+
|
|
1315
|
+
|
|
1316
|
+
|
|
1197
1317
|
|
|
1198
1318
|
|
|
1199
1319
|
|
|
@@ -1241,6 +1361,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1241
1361
|
|
|
1242
1362
|
|
|
1243
1363
|
|
|
1364
|
+
|
|
1365
|
+
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
|
|
1370
|
+
|
|
1244
1371
|
|
|
1245
1372
|
|
|
1246
1373
|
|
|
@@ -1265,7 +1392,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1265
1392
|
}
|
|
1266
1393
|
if (index < 0) return false;
|
|
1267
1394
|
if (index === 0) {
|
|
1268
|
-
this.
|
|
1395
|
+
this.pop();
|
|
1269
1396
|
} else if (index === this.elements.length - 1) {
|
|
1270
1397
|
this.elements.pop();
|
|
1271
1398
|
} else {
|
|
@@ -1275,13 +1402,19 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1275
1402
|
}
|
|
1276
1403
|
return true;
|
|
1277
1404
|
}
|
|
1405
|
+
/**
|
|
1406
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1407
|
+
*/
|
|
1408
|
+
deleteBy(predicate) {
|
|
1409
|
+
return this.deleteWhere(predicate);
|
|
1410
|
+
}
|
|
1278
1411
|
/**
|
|
1279
1412
|
* Delete the first element that matches a predicate.
|
|
1280
1413
|
* @remarks Time O(N), Space O(1)
|
|
1281
1414
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1282
1415
|
* @returns True if an element was removed.
|
|
1283
1416
|
*/
|
|
1284
|
-
|
|
1417
|
+
deleteWhere(predicate) {
|
|
1285
1418
|
let idx = -1;
|
|
1286
1419
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1287
1420
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1291,7 +1424,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1291
1424
|
}
|
|
1292
1425
|
if (idx < 0) return false;
|
|
1293
1426
|
if (idx === 0) {
|
|
1294
|
-
this.
|
|
1427
|
+
this.pop();
|
|
1295
1428
|
} else if (idx === this.elements.length - 1) {
|
|
1296
1429
|
this.elements.pop();
|
|
1297
1430
|
} else {
|
|
@@ -1334,6 +1467,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1334
1467
|
|
|
1335
1468
|
|
|
1336
1469
|
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
|
|
1473
|
+
|
|
1474
|
+
|
|
1475
|
+
|
|
1476
|
+
|
|
1337
1477
|
|
|
1338
1478
|
|
|
1339
1479
|
|
|
@@ -1414,6 +1554,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1414
1554
|
|
|
1415
1555
|
|
|
1416
1556
|
|
|
1557
|
+
|
|
1558
|
+
|
|
1559
|
+
|
|
1560
|
+
|
|
1561
|
+
|
|
1562
|
+
|
|
1563
|
+
|
|
1417
1564
|
|
|
1418
1565
|
|
|
1419
1566
|
|
|
@@ -1467,6 +1614,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1467
1614
|
|
|
1468
1615
|
|
|
1469
1616
|
|
|
1617
|
+
|
|
1618
|
+
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
|
|
1622
|
+
|
|
1623
|
+
|
|
1470
1624
|
|
|
1471
1625
|
|
|
1472
1626
|
|
|
@@ -1519,6 +1673,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1519
1673
|
|
|
1520
1674
|
|
|
1521
1675
|
|
|
1676
|
+
|
|
1677
|
+
|
|
1678
|
+
|
|
1679
|
+
|
|
1680
|
+
|
|
1681
|
+
|
|
1682
|
+
|
|
1522
1683
|
|
|
1523
1684
|
|
|
1524
1685
|
|
|
@@ -1578,6 +1739,13 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1578
1739
|
|
|
1579
1740
|
|
|
1580
1741
|
|
|
1742
|
+
|
|
1743
|
+
|
|
1744
|
+
|
|
1745
|
+
|
|
1746
|
+
|
|
1747
|
+
|
|
1748
|
+
|
|
1581
1749
|
|
|
1582
1750
|
|
|
1583
1751
|
|
|
@@ -1781,6 +1949,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1781
1949
|
|
|
1782
1950
|
|
|
1783
1951
|
|
|
1952
|
+
|
|
1953
|
+
|
|
1954
|
+
|
|
1955
|
+
|
|
1956
|
+
|
|
1957
|
+
|
|
1958
|
+
|
|
1784
1959
|
|
|
1785
1960
|
|
|
1786
1961
|
|
|
@@ -1831,6 +2006,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1831
2006
|
|
|
1832
2007
|
|
|
1833
2008
|
|
|
2009
|
+
|
|
2010
|
+
|
|
2011
|
+
|
|
2012
|
+
|
|
2013
|
+
|
|
2014
|
+
|
|
2015
|
+
|
|
1834
2016
|
|
|
1835
2017
|
|
|
1836
2018
|
|
|
@@ -1848,6 +2030,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1848
2030
|
get first() {
|
|
1849
2031
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1850
2032
|
}
|
|
2033
|
+
/**
|
|
2034
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2035
|
+
* @remarks Time O(1), Space O(1)
|
|
2036
|
+
* @returns Front element or undefined.
|
|
2037
|
+
*/
|
|
2038
|
+
peek() {
|
|
2039
|
+
return this.first;
|
|
2040
|
+
}
|
|
1851
2041
|
/**
|
|
1852
2042
|
* Get the last element (back) without removing it.
|
|
1853
2043
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1897,6 +2087,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1897
2087
|
|
|
1898
2088
|
|
|
1899
2089
|
|
|
2090
|
+
|
|
2091
|
+
|
|
2092
|
+
|
|
2093
|
+
|
|
2094
|
+
|
|
2095
|
+
|
|
2096
|
+
|
|
1900
2097
|
|
|
1901
2098
|
|
|
1902
2099
|
|
|
@@ -1959,6 +2156,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1959
2156
|
|
|
1960
2157
|
|
|
1961
2158
|
|
|
2159
|
+
|
|
2160
|
+
|
|
2161
|
+
|
|
2162
|
+
|
|
2163
|
+
|
|
2164
|
+
|
|
2165
|
+
|
|
1962
2166
|
|
|
1963
2167
|
|
|
1964
2168
|
|
|
@@ -2028,6 +2232,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2028
2232
|
|
|
2029
2233
|
|
|
2030
2234
|
|
|
2235
|
+
|
|
2236
|
+
|
|
2237
|
+
|
|
2238
|
+
|
|
2239
|
+
|
|
2240
|
+
|
|
2241
|
+
|
|
2031
2242
|
|
|
2032
2243
|
|
|
2033
2244
|
|
|
@@ -2087,6 +2298,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2087
2298
|
|
|
2088
2299
|
|
|
2089
2300
|
|
|
2301
|
+
|
|
2302
|
+
|
|
2303
|
+
|
|
2304
|
+
|
|
2305
|
+
|
|
2306
|
+
|
|
2307
|
+
|
|
2090
2308
|
|
|
2091
2309
|
|
|
2092
2310
|
|
|
@@ -2139,6 +2357,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2139
2357
|
|
|
2140
2358
|
|
|
2141
2359
|
|
|
2360
|
+
|
|
2361
|
+
|
|
2362
|
+
|
|
2363
|
+
|
|
2364
|
+
|
|
2365
|
+
|
|
2366
|
+
|
|
2142
2367
|
|
|
2143
2368
|
|
|
2144
2369
|
|
|
@@ -2193,6 +2418,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2193
2418
|
this._elements[this._offset + index] = newElement;
|
|
2194
2419
|
return true;
|
|
2195
2420
|
}
|
|
2421
|
+
/**
|
|
2422
|
+
* Delete the first element that satisfies a predicate.
|
|
2423
|
+
* @remarks Time O(N), Space O(N)
|
|
2424
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2425
|
+
* @returns True if a match was removed.
|
|
2426
|
+
*/
|
|
2427
|
+
deleteWhere(predicate) {
|
|
2428
|
+
for (let i = 0; i < this.length; i++) {
|
|
2429
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2430
|
+
this.deleteAt(i);
|
|
2431
|
+
return true;
|
|
2432
|
+
}
|
|
2433
|
+
}
|
|
2434
|
+
return false;
|
|
2435
|
+
}
|
|
2196
2436
|
/**
|
|
2197
2437
|
* Reverse the queue in-place by compacting then reversing.
|
|
2198
2438
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2232,6 +2472,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2232
2472
|
|
|
2233
2473
|
|
|
2234
2474
|
|
|
2475
|
+
|
|
2476
|
+
|
|
2477
|
+
|
|
2478
|
+
|
|
2479
|
+
|
|
2480
|
+
|
|
2481
|
+
|
|
2235
2482
|
|
|
2236
2483
|
|
|
2237
2484
|
|
|
@@ -2278,6 +2525,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2278
2525
|
|
|
2279
2526
|
|
|
2280
2527
|
|
|
2528
|
+
|
|
2529
|
+
|
|
2530
|
+
|
|
2531
|
+
|
|
2532
|
+
|
|
2533
|
+
|
|
2534
|
+
|
|
2281
2535
|
|
|
2282
2536
|
|
|
2283
2537
|
|
|
@@ -2347,6 +2601,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2347
2601
|
|
|
2348
2602
|
|
|
2349
2603
|
|
|
2604
|
+
|
|
2605
|
+
|
|
2606
|
+
|
|
2607
|
+
|
|
2608
|
+
|
|
2609
|
+
|
|
2610
|
+
|
|
2350
2611
|
|
|
2351
2612
|
|
|
2352
2613
|
|
|
@@ -2400,6 +2661,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2400
2661
|
|
|
2401
2662
|
|
|
2402
2663
|
|
|
2664
|
+
|
|
2665
|
+
|
|
2666
|
+
|
|
2667
|
+
|
|
2668
|
+
|
|
2669
|
+
|
|
2670
|
+
|
|
2403
2671
|
|
|
2404
2672
|
|
|
2405
2673
|
|
|
@@ -2457,6 +2725,13 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2457
2725
|
|
|
2458
2726
|
|
|
2459
2727
|
|
|
2728
|
+
|
|
2729
|
+
|
|
2730
|
+
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
|
|
2734
|
+
|
|
2460
2735
|
|
|
2461
2736
|
|
|
2462
2737
|
|
|
@@ -3599,6 +3874,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3599
3874
|
|
|
3600
3875
|
|
|
3601
3876
|
|
|
3877
|
+
|
|
3878
|
+
|
|
3879
|
+
|
|
3880
|
+
|
|
3881
|
+
|
|
3882
|
+
|
|
3883
|
+
|
|
3602
3884
|
|
|
3603
3885
|
|
|
3604
3886
|
|
|
@@ -3687,6 +3969,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3687
3969
|
|
|
3688
3970
|
|
|
3689
3971
|
|
|
3972
|
+
|
|
3973
|
+
|
|
3974
|
+
|
|
3975
|
+
|
|
3976
|
+
|
|
3977
|
+
|
|
3978
|
+
|
|
3690
3979
|
|
|
3691
3980
|
|
|
3692
3981
|
|
|
@@ -3773,6 +4062,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3773
4062
|
|
|
3774
4063
|
|
|
3775
4064
|
|
|
4065
|
+
|
|
4066
|
+
|
|
4067
|
+
|
|
4068
|
+
|
|
4069
|
+
|
|
4070
|
+
|
|
4071
|
+
|
|
3776
4072
|
|
|
3777
4073
|
|
|
3778
4074
|
|
|
@@ -3850,6 +4146,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3850
4146
|
|
|
3851
4147
|
|
|
3852
4148
|
|
|
4149
|
+
|
|
4150
|
+
|
|
4151
|
+
|
|
4152
|
+
|
|
4153
|
+
|
|
4154
|
+
|
|
4155
|
+
|
|
3853
4156
|
|
|
3854
4157
|
|
|
3855
4158
|
|
|
@@ -3904,6 +4207,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3904
4207
|
|
|
3905
4208
|
|
|
3906
4209
|
|
|
4210
|
+
|
|
4211
|
+
|
|
4212
|
+
|
|
4213
|
+
|
|
4214
|
+
|
|
4215
|
+
|
|
4216
|
+
|
|
3907
4217
|
|
|
3908
4218
|
|
|
3909
4219
|
|
|
@@ -4011,6 +4321,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4011
4321
|
|
|
4012
4322
|
|
|
4013
4323
|
|
|
4324
|
+
|
|
4325
|
+
|
|
4326
|
+
|
|
4327
|
+
|
|
4328
|
+
|
|
4329
|
+
|
|
4330
|
+
|
|
4014
4331
|
|
|
4015
4332
|
|
|
4016
4333
|
|
|
@@ -4099,6 +4416,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4099
4416
|
|
|
4100
4417
|
|
|
4101
4418
|
|
|
4419
|
+
|
|
4420
|
+
|
|
4421
|
+
|
|
4422
|
+
|
|
4423
|
+
|
|
4424
|
+
|
|
4425
|
+
|
|
4102
4426
|
|
|
4103
4427
|
|
|
4104
4428
|
|
|
@@ -4149,6 +4473,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4149
4473
|
|
|
4150
4474
|
|
|
4151
4475
|
|
|
4476
|
+
|
|
4477
|
+
|
|
4478
|
+
|
|
4479
|
+
|
|
4480
|
+
|
|
4481
|
+
|
|
4482
|
+
|
|
4152
4483
|
|
|
4153
4484
|
|
|
4154
4485
|
|
|
@@ -4252,6 +4583,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4252
4583
|
|
|
4253
4584
|
|
|
4254
4585
|
|
|
4586
|
+
|
|
4587
|
+
|
|
4588
|
+
|
|
4589
|
+
|
|
4590
|
+
|
|
4591
|
+
|
|
4592
|
+
|
|
4255
4593
|
|
|
4256
4594
|
|
|
4257
4595
|
|
|
@@ -4358,6 +4696,13 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4358
4696
|
|
|
4359
4697
|
|
|
4360
4698
|
|
|
4699
|
+
|
|
4700
|
+
|
|
4701
|
+
|
|
4702
|
+
|
|
4703
|
+
|
|
4704
|
+
|
|
4705
|
+
|
|
4361
4706
|
|
|
4362
4707
|
|
|
4363
4708
|
|
|
@@ -4528,6 +4873,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4528
4873
|
|
|
4529
4874
|
|
|
4530
4875
|
|
|
4876
|
+
|
|
4877
|
+
|
|
4878
|
+
|
|
4879
|
+
|
|
4880
|
+
|
|
4881
|
+
|
|
4882
|
+
|
|
4531
4883
|
|
|
4532
4884
|
|
|
4533
4885
|
|
|
@@ -4613,6 +4965,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4613
4965
|
|
|
4614
4966
|
|
|
4615
4967
|
|
|
4968
|
+
|
|
4969
|
+
|
|
4970
|
+
|
|
4971
|
+
|
|
4972
|
+
|
|
4973
|
+
|
|
4974
|
+
|
|
4616
4975
|
|
|
4617
4976
|
|
|
4618
4977
|
|
|
@@ -4697,6 +5056,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4697
5056
|
|
|
4698
5057
|
|
|
4699
5058
|
|
|
5059
|
+
|
|
5060
|
+
|
|
5061
|
+
|
|
5062
|
+
|
|
5063
|
+
|
|
5064
|
+
|
|
5065
|
+
|
|
4700
5066
|
|
|
4701
5067
|
|
|
4702
5068
|
|
|
@@ -4796,6 +5162,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4796
5162
|
|
|
4797
5163
|
|
|
4798
5164
|
|
|
5165
|
+
|
|
5166
|
+
|
|
5167
|
+
|
|
5168
|
+
|
|
5169
|
+
|
|
5170
|
+
|
|
5171
|
+
|
|
4799
5172
|
|
|
4800
5173
|
|
|
4801
5174
|
|
|
@@ -4850,6 +5223,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4850
5223
|
|
|
4851
5224
|
|
|
4852
5225
|
|
|
5226
|
+
|
|
5227
|
+
|
|
5228
|
+
|
|
5229
|
+
|
|
5230
|
+
|
|
5231
|
+
|
|
5232
|
+
|
|
4853
5233
|
|
|
4854
5234
|
|
|
4855
5235
|
|
|
@@ -4974,6 +5354,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4974
5354
|
|
|
4975
5355
|
|
|
4976
5356
|
|
|
5357
|
+
|
|
5358
|
+
|
|
5359
|
+
|
|
5360
|
+
|
|
5361
|
+
|
|
5362
|
+
|
|
5363
|
+
|
|
4977
5364
|
|
|
4978
5365
|
|
|
4979
5366
|
|
|
@@ -5120,6 +5507,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5120
5507
|
|
|
5121
5508
|
|
|
5122
5509
|
|
|
5510
|
+
|
|
5511
|
+
|
|
5512
|
+
|
|
5513
|
+
|
|
5514
|
+
|
|
5515
|
+
|
|
5516
|
+
|
|
5123
5517
|
|
|
5124
5518
|
|
|
5125
5519
|
|
|
@@ -5188,6 +5582,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5188
5582
|
|
|
5189
5583
|
|
|
5190
5584
|
|
|
5585
|
+
|
|
5586
|
+
|
|
5587
|
+
|
|
5588
|
+
|
|
5589
|
+
|
|
5590
|
+
|
|
5591
|
+
|
|
5191
5592
|
|
|
5192
5593
|
|
|
5193
5594
|
|
|
@@ -5238,6 +5639,13 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5238
5639
|
|
|
5239
5640
|
|
|
5240
5641
|
|
|
5642
|
+
|
|
5643
|
+
|
|
5644
|
+
|
|
5645
|
+
|
|
5646
|
+
|
|
5647
|
+
|
|
5648
|
+
|
|
5241
5649
|
|
|
5242
5650
|
|
|
5243
5651
|
|