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
package/dist/cjs/graph.cjs
CHANGED
|
@@ -389,6 +389,35 @@ var IterableElementBase = class {
|
|
|
389
389
|
for (const ele of this) if (ele === element) return true;
|
|
390
390
|
return false;
|
|
391
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Check whether a value exists (Array-compatible alias for `has`).
|
|
394
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
|
|
395
|
+
* @param element - Element to search for (uses `===`).
|
|
396
|
+
* @returns `true` if found.
|
|
397
|
+
*/
|
|
398
|
+
includes(element) {
|
|
399
|
+
return this.has(element);
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Return an iterator of `[index, value]` pairs (Array-compatible).
|
|
403
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
|
|
404
|
+
*/
|
|
405
|
+
*entries() {
|
|
406
|
+
let index = 0;
|
|
407
|
+
for (const value of this) {
|
|
408
|
+
yield [index++, value];
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Return an iterator of numeric indices (Array-compatible).
|
|
413
|
+
* @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
|
|
414
|
+
*/
|
|
415
|
+
*keys() {
|
|
416
|
+
let index = 0;
|
|
417
|
+
for (const _ of this) {
|
|
418
|
+
yield index++;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
392
421
|
/**
|
|
393
422
|
* Reduces all elements to a single accumulated value.
|
|
394
423
|
*
|
|
@@ -651,6 +680,16 @@ var LinearBase = class _LinearBase extends IterableElementBase {
|
|
|
651
680
|
}
|
|
652
681
|
return this;
|
|
653
682
|
}
|
|
683
|
+
/**
|
|
684
|
+
* Return a new instance of the same type with elements in reverse order (non-mutating).
|
|
685
|
+
* @remarks Provided for familiarity when migrating from Array (ES2023 `toReversed`). Time O(n), Space O(n).
|
|
686
|
+
* @returns A new reversed instance.
|
|
687
|
+
*/
|
|
688
|
+
toReversed() {
|
|
689
|
+
const cloned = this.clone();
|
|
690
|
+
cloned.reverse();
|
|
691
|
+
return cloned;
|
|
692
|
+
}
|
|
654
693
|
};
|
|
655
694
|
|
|
656
695
|
// src/data-structures/heap/heap.ts
|
|
@@ -714,6 +753,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
714
753
|
|
|
715
754
|
|
|
716
755
|
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
|
|
717
763
|
|
|
718
764
|
|
|
719
765
|
|
|
@@ -770,7 +816,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
770
816
|
}
|
|
771
817
|
/**
|
|
772
818
|
* Insert an element.
|
|
773
|
-
* @remarks Time O(
|
|
819
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
774
820
|
* @param element - Element to insert.
|
|
775
821
|
* @returns True.
|
|
776
822
|
|
|
@@ -800,6 +846,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
800
846
|
|
|
801
847
|
|
|
802
848
|
|
|
849
|
+
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
|
|
853
|
+
|
|
854
|
+
|
|
855
|
+
|
|
803
856
|
|
|
804
857
|
|
|
805
858
|
|
|
@@ -857,6 +910,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
857
910
|
|
|
858
911
|
|
|
859
912
|
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
|
|
919
|
+
|
|
860
920
|
|
|
861
921
|
|
|
862
922
|
|
|
@@ -920,7 +980,41 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
920
980
|
|
|
921
981
|
|
|
922
982
|
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
|
|
923
986
|
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
|
|
990
|
+
* @example
|
|
991
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
992
|
+
* interface Task {
|
|
993
|
+
* id: number;
|
|
994
|
+
* priority: number;
|
|
995
|
+
* name: string;
|
|
996
|
+
* }
|
|
997
|
+
*
|
|
998
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
999
|
+
* const tasks: Task[] = [
|
|
1000
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
1001
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
1002
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
1003
|
+
* ];
|
|
1004
|
+
*
|
|
1005
|
+
* const maxHeap = new Heap(tasks, {
|
|
1006
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
1007
|
+
* });
|
|
1008
|
+
*
|
|
1009
|
+
* console.log(maxHeap.size); // 3;
|
|
1010
|
+
*
|
|
1011
|
+
* // Peek returns highest priority task
|
|
1012
|
+
* const topTask = maxHeap.peek();
|
|
1013
|
+
* console.log(topTask?.priority); // 8;
|
|
1014
|
+
* console.log(topTask?.name); // 'Alert';
|
|
1015
|
+
*/
|
|
1016
|
+
/**
|
|
1017
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
924
1018
|
|
|
925
1019
|
|
|
926
1020
|
|
|
@@ -951,6 +1045,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
951
1045
|
* console.log(topTask?.name); // 'Alert';
|
|
952
1046
|
*/
|
|
953
1047
|
poll() {
|
|
1048
|
+
return this.pop();
|
|
1049
|
+
}
|
|
1050
|
+
/**
|
|
1051
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
1052
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1053
|
+
* @returns The removed top element, or undefined if empty.
|
|
1054
|
+
*/
|
|
1055
|
+
pop() {
|
|
954
1056
|
if (this.elements.length === 0) return;
|
|
955
1057
|
const value = this.elements[0];
|
|
956
1058
|
const last = this.elements.pop();
|
|
@@ -991,6 +1093,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
991
1093
|
|
|
992
1094
|
|
|
993
1095
|
|
|
1096
|
+
|
|
1097
|
+
|
|
1098
|
+
|
|
1099
|
+
|
|
1100
|
+
|
|
1101
|
+
|
|
1102
|
+
|
|
994
1103
|
|
|
995
1104
|
|
|
996
1105
|
|
|
@@ -1091,6 +1200,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1091
1200
|
|
|
1092
1201
|
|
|
1093
1202
|
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
|
|
1094
1210
|
|
|
1095
1211
|
|
|
1096
1212
|
|
|
@@ -1138,6 +1254,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1138
1254
|
|
|
1139
1255
|
|
|
1140
1256
|
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
|
|
1141
1264
|
|
|
1142
1265
|
|
|
1143
1266
|
|
|
@@ -1155,16 +1278,6 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1155
1278
|
clear() {
|
|
1156
1279
|
this._elements = [];
|
|
1157
1280
|
}
|
|
1158
|
-
/**
|
|
1159
|
-
* Replace the backing array and rebuild the heap.
|
|
1160
|
-
* @remarks Time O(N), Space O(N)
|
|
1161
|
-
* @param elements - Iterable used to refill the heap.
|
|
1162
|
-
* @returns Array of per-node results from fixing steps.
|
|
1163
|
-
*/
|
|
1164
|
-
refill(elements) {
|
|
1165
|
-
this._elements = Array.from(elements);
|
|
1166
|
-
return this.fix();
|
|
1167
|
-
}
|
|
1168
1281
|
/**
|
|
1169
1282
|
* Check if an equal element exists in the heap.
|
|
1170
1283
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1188,6 +1301,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1188
1301
|
|
|
1189
1302
|
|
|
1190
1303
|
|
|
1304
|
+
|
|
1305
|
+
|
|
1306
|
+
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
|
|
1191
1311
|
|
|
1192
1312
|
|
|
1193
1313
|
|
|
@@ -1235,6 +1355,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1235
1355
|
|
|
1236
1356
|
|
|
1237
1357
|
|
|
1358
|
+
|
|
1359
|
+
|
|
1360
|
+
|
|
1361
|
+
|
|
1362
|
+
|
|
1363
|
+
|
|
1364
|
+
|
|
1238
1365
|
|
|
1239
1366
|
|
|
1240
1367
|
|
|
@@ -1259,7 +1386,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1259
1386
|
}
|
|
1260
1387
|
if (index < 0) return false;
|
|
1261
1388
|
if (index === 0) {
|
|
1262
|
-
this.
|
|
1389
|
+
this.pop();
|
|
1263
1390
|
} else if (index === this.elements.length - 1) {
|
|
1264
1391
|
this.elements.pop();
|
|
1265
1392
|
} else {
|
|
@@ -1269,13 +1396,19 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1269
1396
|
}
|
|
1270
1397
|
return true;
|
|
1271
1398
|
}
|
|
1399
|
+
/**
|
|
1400
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1401
|
+
*/
|
|
1402
|
+
deleteBy(predicate) {
|
|
1403
|
+
return this.deleteWhere(predicate);
|
|
1404
|
+
}
|
|
1272
1405
|
/**
|
|
1273
1406
|
* Delete the first element that matches a predicate.
|
|
1274
1407
|
* @remarks Time O(N), Space O(1)
|
|
1275
1408
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1276
1409
|
* @returns True if an element was removed.
|
|
1277
1410
|
*/
|
|
1278
|
-
|
|
1411
|
+
deleteWhere(predicate) {
|
|
1279
1412
|
let idx = -1;
|
|
1280
1413
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1281
1414
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1285,7 +1418,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1285
1418
|
}
|
|
1286
1419
|
if (idx < 0) return false;
|
|
1287
1420
|
if (idx === 0) {
|
|
1288
|
-
this.
|
|
1421
|
+
this.pop();
|
|
1289
1422
|
} else if (idx === this.elements.length - 1) {
|
|
1290
1423
|
this.elements.pop();
|
|
1291
1424
|
} else {
|
|
@@ -1328,6 +1461,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1328
1461
|
|
|
1329
1462
|
|
|
1330
1463
|
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
|
|
1467
|
+
|
|
1468
|
+
|
|
1469
|
+
|
|
1470
|
+
|
|
1331
1471
|
|
|
1332
1472
|
|
|
1333
1473
|
|
|
@@ -1408,6 +1548,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1408
1548
|
|
|
1409
1549
|
|
|
1410
1550
|
|
|
1551
|
+
|
|
1552
|
+
|
|
1553
|
+
|
|
1554
|
+
|
|
1555
|
+
|
|
1556
|
+
|
|
1557
|
+
|
|
1411
1558
|
|
|
1412
1559
|
|
|
1413
1560
|
|
|
@@ -1461,6 +1608,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1461
1608
|
|
|
1462
1609
|
|
|
1463
1610
|
|
|
1611
|
+
|
|
1612
|
+
|
|
1613
|
+
|
|
1614
|
+
|
|
1615
|
+
|
|
1616
|
+
|
|
1617
|
+
|
|
1464
1618
|
|
|
1465
1619
|
|
|
1466
1620
|
|
|
@@ -1513,6 +1667,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1513
1667
|
|
|
1514
1668
|
|
|
1515
1669
|
|
|
1670
|
+
|
|
1671
|
+
|
|
1672
|
+
|
|
1673
|
+
|
|
1674
|
+
|
|
1675
|
+
|
|
1676
|
+
|
|
1516
1677
|
|
|
1517
1678
|
|
|
1518
1679
|
|
|
@@ -1572,6 +1733,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1572
1733
|
|
|
1573
1734
|
|
|
1574
1735
|
|
|
1736
|
+
|
|
1737
|
+
|
|
1738
|
+
|
|
1739
|
+
|
|
1740
|
+
|
|
1741
|
+
|
|
1742
|
+
|
|
1575
1743
|
|
|
1576
1744
|
|
|
1577
1745
|
|
|
@@ -1785,6 +1953,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1785
1953
|
|
|
1786
1954
|
|
|
1787
1955
|
|
|
1956
|
+
|
|
1957
|
+
|
|
1958
|
+
|
|
1959
|
+
|
|
1960
|
+
|
|
1961
|
+
|
|
1962
|
+
|
|
1788
1963
|
|
|
1789
1964
|
|
|
1790
1965
|
|
|
@@ -1835,6 +2010,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1835
2010
|
|
|
1836
2011
|
|
|
1837
2012
|
|
|
2013
|
+
|
|
2014
|
+
|
|
2015
|
+
|
|
2016
|
+
|
|
2017
|
+
|
|
2018
|
+
|
|
2019
|
+
|
|
1838
2020
|
|
|
1839
2021
|
|
|
1840
2022
|
|
|
@@ -1852,6 +2034,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1852
2034
|
get first() {
|
|
1853
2035
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1854
2036
|
}
|
|
2037
|
+
/**
|
|
2038
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2039
|
+
* @remarks Time O(1), Space O(1)
|
|
2040
|
+
* @returns Front element or undefined.
|
|
2041
|
+
*/
|
|
2042
|
+
peek() {
|
|
2043
|
+
return this.first;
|
|
2044
|
+
}
|
|
1855
2045
|
/**
|
|
1856
2046
|
* Get the last element (back) without removing it.
|
|
1857
2047
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1901,6 +2091,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1901
2091
|
|
|
1902
2092
|
|
|
1903
2093
|
|
|
2094
|
+
|
|
2095
|
+
|
|
2096
|
+
|
|
2097
|
+
|
|
2098
|
+
|
|
2099
|
+
|
|
2100
|
+
|
|
1904
2101
|
|
|
1905
2102
|
|
|
1906
2103
|
|
|
@@ -1963,6 +2160,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1963
2160
|
|
|
1964
2161
|
|
|
1965
2162
|
|
|
2163
|
+
|
|
2164
|
+
|
|
2165
|
+
|
|
2166
|
+
|
|
2167
|
+
|
|
2168
|
+
|
|
2169
|
+
|
|
1966
2170
|
|
|
1967
2171
|
|
|
1968
2172
|
|
|
@@ -2032,6 +2236,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2032
2236
|
|
|
2033
2237
|
|
|
2034
2238
|
|
|
2239
|
+
|
|
2240
|
+
|
|
2241
|
+
|
|
2242
|
+
|
|
2243
|
+
|
|
2244
|
+
|
|
2245
|
+
|
|
2035
2246
|
|
|
2036
2247
|
|
|
2037
2248
|
|
|
@@ -2091,6 +2302,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2091
2302
|
|
|
2092
2303
|
|
|
2093
2304
|
|
|
2305
|
+
|
|
2306
|
+
|
|
2307
|
+
|
|
2308
|
+
|
|
2309
|
+
|
|
2310
|
+
|
|
2311
|
+
|
|
2094
2312
|
|
|
2095
2313
|
|
|
2096
2314
|
|
|
@@ -2143,6 +2361,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2143
2361
|
|
|
2144
2362
|
|
|
2145
2363
|
|
|
2364
|
+
|
|
2365
|
+
|
|
2366
|
+
|
|
2367
|
+
|
|
2368
|
+
|
|
2369
|
+
|
|
2370
|
+
|
|
2146
2371
|
|
|
2147
2372
|
|
|
2148
2373
|
|
|
@@ -2197,6 +2422,21 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2197
2422
|
this._elements[this._offset + index] = newElement;
|
|
2198
2423
|
return true;
|
|
2199
2424
|
}
|
|
2425
|
+
/**
|
|
2426
|
+
* Delete the first element that satisfies a predicate.
|
|
2427
|
+
* @remarks Time O(N), Space O(N)
|
|
2428
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2429
|
+
* @returns True if a match was removed.
|
|
2430
|
+
*/
|
|
2431
|
+
deleteWhere(predicate) {
|
|
2432
|
+
for (let i = 0; i < this.length; i++) {
|
|
2433
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2434
|
+
this.deleteAt(i);
|
|
2435
|
+
return true;
|
|
2436
|
+
}
|
|
2437
|
+
}
|
|
2438
|
+
return false;
|
|
2439
|
+
}
|
|
2200
2440
|
/**
|
|
2201
2441
|
* Reverse the queue in-place by compacting then reversing.
|
|
2202
2442
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2236,6 +2476,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2236
2476
|
|
|
2237
2477
|
|
|
2238
2478
|
|
|
2479
|
+
|
|
2480
|
+
|
|
2481
|
+
|
|
2482
|
+
|
|
2483
|
+
|
|
2484
|
+
|
|
2485
|
+
|
|
2239
2486
|
|
|
2240
2487
|
|
|
2241
2488
|
|
|
@@ -2282,6 +2529,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2282
2529
|
|
|
2283
2530
|
|
|
2284
2531
|
|
|
2532
|
+
|
|
2533
|
+
|
|
2534
|
+
|
|
2535
|
+
|
|
2536
|
+
|
|
2537
|
+
|
|
2538
|
+
|
|
2285
2539
|
|
|
2286
2540
|
|
|
2287
2541
|
|
|
@@ -2351,6 +2605,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2351
2605
|
|
|
2352
2606
|
|
|
2353
2607
|
|
|
2608
|
+
|
|
2609
|
+
|
|
2610
|
+
|
|
2611
|
+
|
|
2612
|
+
|
|
2613
|
+
|
|
2614
|
+
|
|
2354
2615
|
|
|
2355
2616
|
|
|
2356
2617
|
|
|
@@ -2404,6 +2665,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2404
2665
|
|
|
2405
2666
|
|
|
2406
2667
|
|
|
2668
|
+
|
|
2669
|
+
|
|
2670
|
+
|
|
2671
|
+
|
|
2672
|
+
|
|
2673
|
+
|
|
2674
|
+
|
|
2407
2675
|
|
|
2408
2676
|
|
|
2409
2677
|
|
|
@@ -2461,6 +2729,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2461
2729
|
|
|
2462
2730
|
|
|
2463
2731
|
|
|
2732
|
+
|
|
2733
|
+
|
|
2734
|
+
|
|
2735
|
+
|
|
2736
|
+
|
|
2737
|
+
|
|
2738
|
+
|
|
2464
2739
|
|
|
2465
2740
|
|
|
2466
2741
|
|
|
@@ -3600,6 +3875,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3600
3875
|
|
|
3601
3876
|
|
|
3602
3877
|
|
|
3878
|
+
|
|
3879
|
+
|
|
3880
|
+
|
|
3881
|
+
|
|
3882
|
+
|
|
3883
|
+
|
|
3884
|
+
|
|
3603
3885
|
|
|
3604
3886
|
|
|
3605
3887
|
|
|
@@ -3688,6 +3970,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3688
3970
|
|
|
3689
3971
|
|
|
3690
3972
|
|
|
3973
|
+
|
|
3974
|
+
|
|
3975
|
+
|
|
3976
|
+
|
|
3977
|
+
|
|
3978
|
+
|
|
3979
|
+
|
|
3691
3980
|
|
|
3692
3981
|
|
|
3693
3982
|
|
|
@@ -3774,6 +4063,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3774
4063
|
|
|
3775
4064
|
|
|
3776
4065
|
|
|
4066
|
+
|
|
4067
|
+
|
|
4068
|
+
|
|
4069
|
+
|
|
4070
|
+
|
|
4071
|
+
|
|
4072
|
+
|
|
3777
4073
|
|
|
3778
4074
|
|
|
3779
4075
|
|
|
@@ -3851,6 +4147,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3851
4147
|
|
|
3852
4148
|
|
|
3853
4149
|
|
|
4150
|
+
|
|
4151
|
+
|
|
4152
|
+
|
|
4153
|
+
|
|
4154
|
+
|
|
4155
|
+
|
|
4156
|
+
|
|
3854
4157
|
|
|
3855
4158
|
|
|
3856
4159
|
|
|
@@ -3905,6 +4208,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3905
4208
|
|
|
3906
4209
|
|
|
3907
4210
|
|
|
4211
|
+
|
|
4212
|
+
|
|
4213
|
+
|
|
4214
|
+
|
|
4215
|
+
|
|
4216
|
+
|
|
4217
|
+
|
|
3908
4218
|
|
|
3909
4219
|
|
|
3910
4220
|
|
|
@@ -4012,6 +4322,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4012
4322
|
|
|
4013
4323
|
|
|
4014
4324
|
|
|
4325
|
+
|
|
4326
|
+
|
|
4327
|
+
|
|
4328
|
+
|
|
4329
|
+
|
|
4330
|
+
|
|
4331
|
+
|
|
4015
4332
|
|
|
4016
4333
|
|
|
4017
4334
|
|
|
@@ -4100,6 +4417,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4100
4417
|
|
|
4101
4418
|
|
|
4102
4419
|
|
|
4420
|
+
|
|
4421
|
+
|
|
4422
|
+
|
|
4423
|
+
|
|
4424
|
+
|
|
4425
|
+
|
|
4426
|
+
|
|
4103
4427
|
|
|
4104
4428
|
|
|
4105
4429
|
|
|
@@ -4150,6 +4474,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4150
4474
|
|
|
4151
4475
|
|
|
4152
4476
|
|
|
4477
|
+
|
|
4478
|
+
|
|
4479
|
+
|
|
4480
|
+
|
|
4481
|
+
|
|
4482
|
+
|
|
4483
|
+
|
|
4153
4484
|
|
|
4154
4485
|
|
|
4155
4486
|
|
|
@@ -4253,6 +4584,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4253
4584
|
|
|
4254
4585
|
|
|
4255
4586
|
|
|
4587
|
+
|
|
4588
|
+
|
|
4589
|
+
|
|
4590
|
+
|
|
4591
|
+
|
|
4592
|
+
|
|
4593
|
+
|
|
4256
4594
|
|
|
4257
4595
|
|
|
4258
4596
|
|
|
@@ -4359,6 +4697,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4359
4697
|
|
|
4360
4698
|
|
|
4361
4699
|
|
|
4700
|
+
|
|
4701
|
+
|
|
4702
|
+
|
|
4703
|
+
|
|
4704
|
+
|
|
4705
|
+
|
|
4706
|
+
|
|
4362
4707
|
|
|
4363
4708
|
|
|
4364
4709
|
|
|
@@ -4531,6 +4876,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4531
4876
|
|
|
4532
4877
|
|
|
4533
4878
|
|
|
4879
|
+
|
|
4880
|
+
|
|
4881
|
+
|
|
4882
|
+
|
|
4883
|
+
|
|
4884
|
+
|
|
4885
|
+
|
|
4534
4886
|
|
|
4535
4887
|
|
|
4536
4888
|
|
|
@@ -4615,6 +4967,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4615
4967
|
|
|
4616
4968
|
|
|
4617
4969
|
|
|
4970
|
+
|
|
4971
|
+
|
|
4972
|
+
|
|
4973
|
+
|
|
4974
|
+
|
|
4975
|
+
|
|
4976
|
+
|
|
4618
4977
|
|
|
4619
4978
|
|
|
4620
4979
|
|
|
@@ -4699,6 +5058,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4699
5058
|
|
|
4700
5059
|
|
|
4701
5060
|
|
|
5061
|
+
|
|
5062
|
+
|
|
5063
|
+
|
|
5064
|
+
|
|
5065
|
+
|
|
5066
|
+
|
|
5067
|
+
|
|
4702
5068
|
|
|
4703
5069
|
|
|
4704
5070
|
|
|
@@ -4797,6 +5163,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4797
5163
|
|
|
4798
5164
|
|
|
4799
5165
|
|
|
5166
|
+
|
|
5167
|
+
|
|
5168
|
+
|
|
5169
|
+
|
|
5170
|
+
|
|
5171
|
+
|
|
5172
|
+
|
|
4800
5173
|
|
|
4801
5174
|
|
|
4802
5175
|
|
|
@@ -4851,6 +5224,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4851
5224
|
|
|
4852
5225
|
|
|
4853
5226
|
|
|
5227
|
+
|
|
5228
|
+
|
|
5229
|
+
|
|
5230
|
+
|
|
5231
|
+
|
|
5232
|
+
|
|
5233
|
+
|
|
4854
5234
|
|
|
4855
5235
|
|
|
4856
5236
|
|
|
@@ -4975,6 +5355,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4975
5355
|
|
|
4976
5356
|
|
|
4977
5357
|
|
|
5358
|
+
|
|
5359
|
+
|
|
5360
|
+
|
|
5361
|
+
|
|
5362
|
+
|
|
5363
|
+
|
|
5364
|
+
|
|
4978
5365
|
|
|
4979
5366
|
|
|
4980
5367
|
|
|
@@ -5121,6 +5508,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5121
5508
|
|
|
5122
5509
|
|
|
5123
5510
|
|
|
5511
|
+
|
|
5512
|
+
|
|
5513
|
+
|
|
5514
|
+
|
|
5515
|
+
|
|
5516
|
+
|
|
5517
|
+
|
|
5124
5518
|
|
|
5125
5519
|
|
|
5126
5520
|
|
|
@@ -5189,6 +5583,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5189
5583
|
|
|
5190
5584
|
|
|
5191
5585
|
|
|
5586
|
+
|
|
5587
|
+
|
|
5588
|
+
|
|
5589
|
+
|
|
5590
|
+
|
|
5591
|
+
|
|
5592
|
+
|
|
5192
5593
|
|
|
5193
5594
|
|
|
5194
5595
|
|
|
@@ -5239,6 +5640,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5239
5640
|
|
|
5240
5641
|
|
|
5241
5642
|
|
|
5643
|
+
|
|
5644
|
+
|
|
5645
|
+
|
|
5646
|
+
|
|
5647
|
+
|
|
5648
|
+
|
|
5649
|
+
|
|
5242
5650
|
|
|
5243
5651
|
|
|
5244
5652
|
|