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/esm/graph.mjs
CHANGED
|
@@ -387,6 +387,35 @@ var IterableElementBase = class {
|
|
|
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
|
*
|
|
@@ -649,6 +678,16 @@ var LinearBase = class _LinearBase extends IterableElementBase {
|
|
|
649
678
|
}
|
|
650
679
|
return this;
|
|
651
680
|
}
|
|
681
|
+
/**
|
|
682
|
+
* Return a new instance of the same type with elements in reverse order (non-mutating).
|
|
683
|
+
* @remarks Provided for familiarity when migrating from Array (ES2023 `toReversed`). Time O(n), Space O(n).
|
|
684
|
+
* @returns A new reversed instance.
|
|
685
|
+
*/
|
|
686
|
+
toReversed() {
|
|
687
|
+
const cloned = this.clone();
|
|
688
|
+
cloned.reverse();
|
|
689
|
+
return cloned;
|
|
690
|
+
}
|
|
652
691
|
};
|
|
653
692
|
|
|
654
693
|
// src/data-structures/heap/heap.ts
|
|
@@ -712,6 +751,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
712
751
|
|
|
713
752
|
|
|
714
753
|
|
|
754
|
+
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
|
|
715
761
|
|
|
716
762
|
|
|
717
763
|
|
|
@@ -768,7 +814,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
768
814
|
}
|
|
769
815
|
/**
|
|
770
816
|
* Insert an element.
|
|
771
|
-
* @remarks Time O(
|
|
817
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
772
818
|
* @param element - Element to insert.
|
|
773
819
|
* @returns True.
|
|
774
820
|
|
|
@@ -798,6 +844,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
798
844
|
|
|
799
845
|
|
|
800
846
|
|
|
847
|
+
|
|
848
|
+
|
|
849
|
+
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
|
|
853
|
+
|
|
801
854
|
|
|
802
855
|
|
|
803
856
|
|
|
@@ -855,6 +908,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
855
908
|
|
|
856
909
|
|
|
857
910
|
|
|
911
|
+
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
|
|
858
918
|
|
|
859
919
|
|
|
860
920
|
|
|
@@ -918,7 +978,41 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
918
978
|
|
|
919
979
|
|
|
920
980
|
|
|
981
|
+
|
|
982
|
+
|
|
983
|
+
|
|
921
984
|
|
|
985
|
+
|
|
986
|
+
|
|
987
|
+
|
|
988
|
+
* @example
|
|
989
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
990
|
+
* interface Task {
|
|
991
|
+
* id: number;
|
|
992
|
+
* priority: number;
|
|
993
|
+
* name: string;
|
|
994
|
+
* }
|
|
995
|
+
*
|
|
996
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
997
|
+
* const tasks: Task[] = [
|
|
998
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
999
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
1000
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
1001
|
+
* ];
|
|
1002
|
+
*
|
|
1003
|
+
* const maxHeap = new Heap(tasks, {
|
|
1004
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
1005
|
+
* });
|
|
1006
|
+
*
|
|
1007
|
+
* console.log(maxHeap.size); // 3;
|
|
1008
|
+
*
|
|
1009
|
+
* // Peek returns highest priority task
|
|
1010
|
+
* const topTask = maxHeap.peek();
|
|
1011
|
+
* console.log(topTask?.priority); // 8;
|
|
1012
|
+
* console.log(topTask?.name); // 'Alert';
|
|
1013
|
+
*/
|
|
1014
|
+
/**
|
|
1015
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
922
1016
|
|
|
923
1017
|
|
|
924
1018
|
|
|
@@ -949,6 +1043,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
949
1043
|
* console.log(topTask?.name); // 'Alert';
|
|
950
1044
|
*/
|
|
951
1045
|
poll() {
|
|
1046
|
+
return this.pop();
|
|
1047
|
+
}
|
|
1048
|
+
/**
|
|
1049
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
1050
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1051
|
+
* @returns The removed top element, or undefined if empty.
|
|
1052
|
+
*/
|
|
1053
|
+
pop() {
|
|
952
1054
|
if (this.elements.length === 0) return;
|
|
953
1055
|
const value = this.elements[0];
|
|
954
1056
|
const last = this.elements.pop();
|
|
@@ -989,6 +1091,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
989
1091
|
|
|
990
1092
|
|
|
991
1093
|
|
|
1094
|
+
|
|
1095
|
+
|
|
1096
|
+
|
|
1097
|
+
|
|
1098
|
+
|
|
1099
|
+
|
|
1100
|
+
|
|
992
1101
|
|
|
993
1102
|
|
|
994
1103
|
|
|
@@ -1089,6 +1198,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1089
1198
|
|
|
1090
1199
|
|
|
1091
1200
|
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
|
|
1092
1208
|
|
|
1093
1209
|
|
|
1094
1210
|
|
|
@@ -1136,6 +1252,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1136
1252
|
|
|
1137
1253
|
|
|
1138
1254
|
|
|
1255
|
+
|
|
1256
|
+
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
|
|
1260
|
+
|
|
1261
|
+
|
|
1139
1262
|
|
|
1140
1263
|
|
|
1141
1264
|
|
|
@@ -1153,16 +1276,6 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1153
1276
|
clear() {
|
|
1154
1277
|
this._elements = [];
|
|
1155
1278
|
}
|
|
1156
|
-
/**
|
|
1157
|
-
* Replace the backing array and rebuild the heap.
|
|
1158
|
-
* @remarks Time O(N), Space O(N)
|
|
1159
|
-
* @param elements - Iterable used to refill the heap.
|
|
1160
|
-
* @returns Array of per-node results from fixing steps.
|
|
1161
|
-
*/
|
|
1162
|
-
refill(elements) {
|
|
1163
|
-
this._elements = Array.from(elements);
|
|
1164
|
-
return this.fix();
|
|
1165
|
-
}
|
|
1166
1279
|
/**
|
|
1167
1280
|
* Check if an equal element exists in the heap.
|
|
1168
1281
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1186,6 +1299,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1186
1299
|
|
|
1187
1300
|
|
|
1188
1301
|
|
|
1302
|
+
|
|
1303
|
+
|
|
1304
|
+
|
|
1305
|
+
|
|
1306
|
+
|
|
1307
|
+
|
|
1308
|
+
|
|
1189
1309
|
|
|
1190
1310
|
|
|
1191
1311
|
|
|
@@ -1233,6 +1353,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1233
1353
|
|
|
1234
1354
|
|
|
1235
1355
|
|
|
1356
|
+
|
|
1357
|
+
|
|
1358
|
+
|
|
1359
|
+
|
|
1360
|
+
|
|
1361
|
+
|
|
1362
|
+
|
|
1236
1363
|
|
|
1237
1364
|
|
|
1238
1365
|
|
|
@@ -1257,7 +1384,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1257
1384
|
}
|
|
1258
1385
|
if (index < 0) return false;
|
|
1259
1386
|
if (index === 0) {
|
|
1260
|
-
this.
|
|
1387
|
+
this.pop();
|
|
1261
1388
|
} else if (index === this.elements.length - 1) {
|
|
1262
1389
|
this.elements.pop();
|
|
1263
1390
|
} else {
|
|
@@ -1267,13 +1394,19 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1267
1394
|
}
|
|
1268
1395
|
return true;
|
|
1269
1396
|
}
|
|
1397
|
+
/**
|
|
1398
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1399
|
+
*/
|
|
1400
|
+
deleteBy(predicate) {
|
|
1401
|
+
return this.deleteWhere(predicate);
|
|
1402
|
+
}
|
|
1270
1403
|
/**
|
|
1271
1404
|
* Delete the first element that matches a predicate.
|
|
1272
1405
|
* @remarks Time O(N), Space O(1)
|
|
1273
1406
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1274
1407
|
* @returns True if an element was removed.
|
|
1275
1408
|
*/
|
|
1276
|
-
|
|
1409
|
+
deleteWhere(predicate) {
|
|
1277
1410
|
let idx = -1;
|
|
1278
1411
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1279
1412
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1283,7 +1416,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1283
1416
|
}
|
|
1284
1417
|
if (idx < 0) return false;
|
|
1285
1418
|
if (idx === 0) {
|
|
1286
|
-
this.
|
|
1419
|
+
this.pop();
|
|
1287
1420
|
} else if (idx === this.elements.length - 1) {
|
|
1288
1421
|
this.elements.pop();
|
|
1289
1422
|
} else {
|
|
@@ -1326,6 +1459,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1326
1459
|
|
|
1327
1460
|
|
|
1328
1461
|
|
|
1462
|
+
|
|
1463
|
+
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
|
|
1467
|
+
|
|
1468
|
+
|
|
1329
1469
|
|
|
1330
1470
|
|
|
1331
1471
|
|
|
@@ -1406,6 +1546,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1406
1546
|
|
|
1407
1547
|
|
|
1408
1548
|
|
|
1549
|
+
|
|
1550
|
+
|
|
1551
|
+
|
|
1552
|
+
|
|
1553
|
+
|
|
1554
|
+
|
|
1555
|
+
|
|
1409
1556
|
|
|
1410
1557
|
|
|
1411
1558
|
|
|
@@ -1459,6 +1606,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1459
1606
|
|
|
1460
1607
|
|
|
1461
1608
|
|
|
1609
|
+
|
|
1610
|
+
|
|
1611
|
+
|
|
1612
|
+
|
|
1613
|
+
|
|
1614
|
+
|
|
1615
|
+
|
|
1462
1616
|
|
|
1463
1617
|
|
|
1464
1618
|
|
|
@@ -1511,6 +1665,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1511
1665
|
|
|
1512
1666
|
|
|
1513
1667
|
|
|
1668
|
+
|
|
1669
|
+
|
|
1670
|
+
|
|
1671
|
+
|
|
1672
|
+
|
|
1673
|
+
|
|
1674
|
+
|
|
1514
1675
|
|
|
1515
1676
|
|
|
1516
1677
|
|
|
@@ -1570,6 +1731,13 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1570
1731
|
|
|
1571
1732
|
|
|
1572
1733
|
|
|
1734
|
+
|
|
1735
|
+
|
|
1736
|
+
|
|
1737
|
+
|
|
1738
|
+
|
|
1739
|
+
|
|
1740
|
+
|
|
1573
1741
|
|
|
1574
1742
|
|
|
1575
1743
|
|
|
@@ -1783,6 +1951,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1783
1951
|
|
|
1784
1952
|
|
|
1785
1953
|
|
|
1954
|
+
|
|
1955
|
+
|
|
1956
|
+
|
|
1957
|
+
|
|
1958
|
+
|
|
1959
|
+
|
|
1960
|
+
|
|
1786
1961
|
|
|
1787
1962
|
|
|
1788
1963
|
|
|
@@ -1833,6 +2008,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1833
2008
|
|
|
1834
2009
|
|
|
1835
2010
|
|
|
2011
|
+
|
|
2012
|
+
|
|
2013
|
+
|
|
2014
|
+
|
|
2015
|
+
|
|
2016
|
+
|
|
2017
|
+
|
|
1836
2018
|
|
|
1837
2019
|
|
|
1838
2020
|
|
|
@@ -1850,6 +2032,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1850
2032
|
get first() {
|
|
1851
2033
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1852
2034
|
}
|
|
2035
|
+
/**
|
|
2036
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2037
|
+
* @remarks Time O(1), Space O(1)
|
|
2038
|
+
* @returns Front element or undefined.
|
|
2039
|
+
*/
|
|
2040
|
+
peek() {
|
|
2041
|
+
return this.first;
|
|
2042
|
+
}
|
|
1853
2043
|
/**
|
|
1854
2044
|
* Get the last element (back) without removing it.
|
|
1855
2045
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1899,6 +2089,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1899
2089
|
|
|
1900
2090
|
|
|
1901
2091
|
|
|
2092
|
+
|
|
2093
|
+
|
|
2094
|
+
|
|
2095
|
+
|
|
2096
|
+
|
|
2097
|
+
|
|
2098
|
+
|
|
1902
2099
|
|
|
1903
2100
|
|
|
1904
2101
|
|
|
@@ -1961,6 +2158,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1961
2158
|
|
|
1962
2159
|
|
|
1963
2160
|
|
|
2161
|
+
|
|
2162
|
+
|
|
2163
|
+
|
|
2164
|
+
|
|
2165
|
+
|
|
2166
|
+
|
|
2167
|
+
|
|
1964
2168
|
|
|
1965
2169
|
|
|
1966
2170
|
|
|
@@ -2030,6 +2234,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2030
2234
|
|
|
2031
2235
|
|
|
2032
2236
|
|
|
2237
|
+
|
|
2238
|
+
|
|
2239
|
+
|
|
2240
|
+
|
|
2241
|
+
|
|
2242
|
+
|
|
2243
|
+
|
|
2033
2244
|
|
|
2034
2245
|
|
|
2035
2246
|
|
|
@@ -2089,6 +2300,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2089
2300
|
|
|
2090
2301
|
|
|
2091
2302
|
|
|
2303
|
+
|
|
2304
|
+
|
|
2305
|
+
|
|
2306
|
+
|
|
2307
|
+
|
|
2308
|
+
|
|
2309
|
+
|
|
2092
2310
|
|
|
2093
2311
|
|
|
2094
2312
|
|
|
@@ -2141,6 +2359,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2141
2359
|
|
|
2142
2360
|
|
|
2143
2361
|
|
|
2362
|
+
|
|
2363
|
+
|
|
2364
|
+
|
|
2365
|
+
|
|
2366
|
+
|
|
2367
|
+
|
|
2368
|
+
|
|
2144
2369
|
|
|
2145
2370
|
|
|
2146
2371
|
|
|
@@ -2195,6 +2420,21 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2195
2420
|
this._elements[this._offset + index] = newElement;
|
|
2196
2421
|
return true;
|
|
2197
2422
|
}
|
|
2423
|
+
/**
|
|
2424
|
+
* Delete the first element that satisfies a predicate.
|
|
2425
|
+
* @remarks Time O(N), Space O(N)
|
|
2426
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2427
|
+
* @returns True if a match was removed.
|
|
2428
|
+
*/
|
|
2429
|
+
deleteWhere(predicate) {
|
|
2430
|
+
for (let i = 0; i < this.length; i++) {
|
|
2431
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2432
|
+
this.deleteAt(i);
|
|
2433
|
+
return true;
|
|
2434
|
+
}
|
|
2435
|
+
}
|
|
2436
|
+
return false;
|
|
2437
|
+
}
|
|
2198
2438
|
/**
|
|
2199
2439
|
* Reverse the queue in-place by compacting then reversing.
|
|
2200
2440
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2234,6 +2474,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2234
2474
|
|
|
2235
2475
|
|
|
2236
2476
|
|
|
2477
|
+
|
|
2478
|
+
|
|
2479
|
+
|
|
2480
|
+
|
|
2481
|
+
|
|
2482
|
+
|
|
2483
|
+
|
|
2237
2484
|
|
|
2238
2485
|
|
|
2239
2486
|
|
|
@@ -2280,6 +2527,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2280
2527
|
|
|
2281
2528
|
|
|
2282
2529
|
|
|
2530
|
+
|
|
2531
|
+
|
|
2532
|
+
|
|
2533
|
+
|
|
2534
|
+
|
|
2535
|
+
|
|
2536
|
+
|
|
2283
2537
|
|
|
2284
2538
|
|
|
2285
2539
|
|
|
@@ -2349,6 +2603,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2349
2603
|
|
|
2350
2604
|
|
|
2351
2605
|
|
|
2606
|
+
|
|
2607
|
+
|
|
2608
|
+
|
|
2609
|
+
|
|
2610
|
+
|
|
2611
|
+
|
|
2612
|
+
|
|
2352
2613
|
|
|
2353
2614
|
|
|
2354
2615
|
|
|
@@ -2402,6 +2663,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2402
2663
|
|
|
2403
2664
|
|
|
2404
2665
|
|
|
2666
|
+
|
|
2667
|
+
|
|
2668
|
+
|
|
2669
|
+
|
|
2670
|
+
|
|
2671
|
+
|
|
2672
|
+
|
|
2405
2673
|
|
|
2406
2674
|
|
|
2407
2675
|
|
|
@@ -2459,6 +2727,13 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2459
2727
|
|
|
2460
2728
|
|
|
2461
2729
|
|
|
2730
|
+
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
|
|
2734
|
+
|
|
2735
|
+
|
|
2736
|
+
|
|
2462
2737
|
|
|
2463
2738
|
|
|
2464
2739
|
|
|
@@ -3598,6 +3873,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3598
3873
|
|
|
3599
3874
|
|
|
3600
3875
|
|
|
3876
|
+
|
|
3877
|
+
|
|
3878
|
+
|
|
3879
|
+
|
|
3880
|
+
|
|
3881
|
+
|
|
3882
|
+
|
|
3601
3883
|
|
|
3602
3884
|
|
|
3603
3885
|
|
|
@@ -3686,6 +3968,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3686
3968
|
|
|
3687
3969
|
|
|
3688
3970
|
|
|
3971
|
+
|
|
3972
|
+
|
|
3973
|
+
|
|
3974
|
+
|
|
3975
|
+
|
|
3976
|
+
|
|
3977
|
+
|
|
3689
3978
|
|
|
3690
3979
|
|
|
3691
3980
|
|
|
@@ -3772,6 +4061,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3772
4061
|
|
|
3773
4062
|
|
|
3774
4063
|
|
|
4064
|
+
|
|
4065
|
+
|
|
4066
|
+
|
|
4067
|
+
|
|
4068
|
+
|
|
4069
|
+
|
|
4070
|
+
|
|
3775
4071
|
|
|
3776
4072
|
|
|
3777
4073
|
|
|
@@ -3849,6 +4145,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3849
4145
|
|
|
3850
4146
|
|
|
3851
4147
|
|
|
4148
|
+
|
|
4149
|
+
|
|
4150
|
+
|
|
4151
|
+
|
|
4152
|
+
|
|
4153
|
+
|
|
4154
|
+
|
|
3852
4155
|
|
|
3853
4156
|
|
|
3854
4157
|
|
|
@@ -3903,6 +4206,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3903
4206
|
|
|
3904
4207
|
|
|
3905
4208
|
|
|
4209
|
+
|
|
4210
|
+
|
|
4211
|
+
|
|
4212
|
+
|
|
4213
|
+
|
|
4214
|
+
|
|
4215
|
+
|
|
3906
4216
|
|
|
3907
4217
|
|
|
3908
4218
|
|
|
@@ -4010,6 +4320,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4010
4320
|
|
|
4011
4321
|
|
|
4012
4322
|
|
|
4323
|
+
|
|
4324
|
+
|
|
4325
|
+
|
|
4326
|
+
|
|
4327
|
+
|
|
4328
|
+
|
|
4329
|
+
|
|
4013
4330
|
|
|
4014
4331
|
|
|
4015
4332
|
|
|
@@ -4098,6 +4415,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4098
4415
|
|
|
4099
4416
|
|
|
4100
4417
|
|
|
4418
|
+
|
|
4419
|
+
|
|
4420
|
+
|
|
4421
|
+
|
|
4422
|
+
|
|
4423
|
+
|
|
4424
|
+
|
|
4101
4425
|
|
|
4102
4426
|
|
|
4103
4427
|
|
|
@@ -4148,6 +4472,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4148
4472
|
|
|
4149
4473
|
|
|
4150
4474
|
|
|
4475
|
+
|
|
4476
|
+
|
|
4477
|
+
|
|
4478
|
+
|
|
4479
|
+
|
|
4480
|
+
|
|
4481
|
+
|
|
4151
4482
|
|
|
4152
4483
|
|
|
4153
4484
|
|
|
@@ -4251,6 +4582,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4251
4582
|
|
|
4252
4583
|
|
|
4253
4584
|
|
|
4585
|
+
|
|
4586
|
+
|
|
4587
|
+
|
|
4588
|
+
|
|
4589
|
+
|
|
4590
|
+
|
|
4591
|
+
|
|
4254
4592
|
|
|
4255
4593
|
|
|
4256
4594
|
|
|
@@ -4357,6 +4695,13 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4357
4695
|
|
|
4358
4696
|
|
|
4359
4697
|
|
|
4698
|
+
|
|
4699
|
+
|
|
4700
|
+
|
|
4701
|
+
|
|
4702
|
+
|
|
4703
|
+
|
|
4704
|
+
|
|
4360
4705
|
|
|
4361
4706
|
|
|
4362
4707
|
|
|
@@ -4529,6 +4874,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4529
4874
|
|
|
4530
4875
|
|
|
4531
4876
|
|
|
4877
|
+
|
|
4878
|
+
|
|
4879
|
+
|
|
4880
|
+
|
|
4881
|
+
|
|
4882
|
+
|
|
4883
|
+
|
|
4532
4884
|
|
|
4533
4885
|
|
|
4534
4886
|
|
|
@@ -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
|
|
|
@@ -4795,6 +5161,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4795
5161
|
|
|
4796
5162
|
|
|
4797
5163
|
|
|
5164
|
+
|
|
5165
|
+
|
|
5166
|
+
|
|
5167
|
+
|
|
5168
|
+
|
|
5169
|
+
|
|
5170
|
+
|
|
4798
5171
|
|
|
4799
5172
|
|
|
4800
5173
|
|
|
@@ -4849,6 +5222,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4849
5222
|
|
|
4850
5223
|
|
|
4851
5224
|
|
|
5225
|
+
|
|
5226
|
+
|
|
5227
|
+
|
|
5228
|
+
|
|
5229
|
+
|
|
5230
|
+
|
|
5231
|
+
|
|
4852
5232
|
|
|
4853
5233
|
|
|
4854
5234
|
|
|
@@ -4973,6 +5353,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4973
5353
|
|
|
4974
5354
|
|
|
4975
5355
|
|
|
5356
|
+
|
|
5357
|
+
|
|
5358
|
+
|
|
5359
|
+
|
|
5360
|
+
|
|
5361
|
+
|
|
5362
|
+
|
|
4976
5363
|
|
|
4977
5364
|
|
|
4978
5365
|
|
|
@@ -5119,6 +5506,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5119
5506
|
|
|
5120
5507
|
|
|
5121
5508
|
|
|
5509
|
+
|
|
5510
|
+
|
|
5511
|
+
|
|
5512
|
+
|
|
5513
|
+
|
|
5514
|
+
|
|
5515
|
+
|
|
5122
5516
|
|
|
5123
5517
|
|
|
5124
5518
|
|
|
@@ -5187,6 +5581,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5187
5581
|
|
|
5188
5582
|
|
|
5189
5583
|
|
|
5584
|
+
|
|
5585
|
+
|
|
5586
|
+
|
|
5587
|
+
|
|
5588
|
+
|
|
5589
|
+
|
|
5590
|
+
|
|
5190
5591
|
|
|
5191
5592
|
|
|
5192
5593
|
|
|
@@ -5237,6 +5638,13 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5237
5638
|
|
|
5238
5639
|
|
|
5239
5640
|
|
|
5641
|
+
|
|
5642
|
+
|
|
5643
|
+
|
|
5644
|
+
|
|
5645
|
+
|
|
5646
|
+
|
|
5647
|
+
|
|
5240
5648
|
|
|
5241
5649
|
|
|
5242
5650
|
|