data-structure-typed 2.5.1 → 2.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -1
- package/MIGRATION.md +169 -0
- package/README.md +135 -23
- package/README_CN.md +551 -143
- package/SPECIFICATION.md +20 -14
- package/SPECIFICATION.zh-CN.md +20 -14
- package/dist/cjs/binary-tree.cjs +6460 -1591
- package/dist/cjs/graph.cjs +440 -20
- package/dist/cjs/hash.cjs +125 -22
- package/dist/cjs/heap.cjs +196 -47
- package/dist/cjs/index.cjs +8486 -2429
- package/dist/cjs/linked-list.cjs +456 -31
- package/dist/cjs/matrix.cjs +79 -9
- package/dist/cjs/priority-queue.cjs +193 -44
- package/dist/cjs/queue.cjs +391 -2
- package/dist/cjs/stack.cjs +92 -6
- package/dist/cjs/trie.cjs +122 -28
- package/dist/cjs-legacy/binary-tree.cjs +6484 -1612
- package/dist/cjs-legacy/graph.cjs +440 -20
- package/dist/cjs-legacy/hash.cjs +125 -22
- package/dist/cjs-legacy/heap.cjs +196 -47
- package/dist/cjs-legacy/index.cjs +8654 -2594
- package/dist/cjs-legacy/linked-list.cjs +456 -31
- package/dist/cjs-legacy/matrix.cjs +79 -9
- package/dist/cjs-legacy/priority-queue.cjs +193 -44
- package/dist/cjs-legacy/queue.cjs +391 -2
- package/dist/cjs-legacy/stack.cjs +92 -6
- package/dist/cjs-legacy/trie.cjs +122 -28
- package/dist/esm/binary-tree.mjs +6460 -1591
- package/dist/esm/graph.mjs +440 -20
- package/dist/esm/hash.mjs +125 -22
- package/dist/esm/heap.mjs +196 -47
- package/dist/esm/index.mjs +8486 -2430
- package/dist/esm/linked-list.mjs +456 -31
- package/dist/esm/matrix.mjs +79 -9
- package/dist/esm/priority-queue.mjs +193 -44
- package/dist/esm/queue.mjs +391 -2
- package/dist/esm/stack.mjs +92 -6
- package/dist/esm/trie.mjs +122 -28
- package/dist/esm-legacy/binary-tree.mjs +6484 -1612
- package/dist/esm-legacy/graph.mjs +440 -20
- package/dist/esm-legacy/hash.mjs +125 -22
- package/dist/esm-legacy/heap.mjs +196 -47
- package/dist/esm-legacy/index.mjs +8654 -2595
- package/dist/esm-legacy/linked-list.mjs +456 -31
- package/dist/esm-legacy/matrix.mjs +79 -9
- package/dist/esm-legacy/priority-queue.mjs +193 -44
- package/dist/esm-legacy/queue.mjs +391 -2
- package/dist/esm-legacy/stack.mjs +92 -6
- package/dist/esm-legacy/trie.mjs +122 -28
- package/dist/types/common/error.d.ts +9 -0
- package/dist/types/common/index.d.ts +1 -1
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +98 -2
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +112 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +214 -13
- package/dist/types/data-structures/binary-tree/bst.d.ts +294 -3
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +155 -8
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +48 -0
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +1370 -323
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1329 -316
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +1116 -295
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +1330 -326
- package/dist/types/data-structures/graph/directed-graph.d.ts +80 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +72 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +95 -6
- package/dist/types/data-structures/heap/heap.d.ts +154 -12
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +143 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +121 -1
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +144 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +64 -0
- package/dist/types/data-structures/queue/deque.d.ts +142 -0
- package/dist/types/data-structures/queue/queue.d.ts +109 -0
- package/dist/types/data-structures/stack/stack.d.ts +82 -2
- package/dist/types/data-structures/trie/trie.d.ts +96 -0
- package/dist/types/interfaces/binary-tree.d.ts +2 -3
- package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
- package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
- package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
- package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
- package/dist/umd/data-structure-typed.js +8623 -2564
- package/dist/umd/data-structure-typed.min.js +5 -5
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +696 -194
- package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
- package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +71 -71
- package/docs-site-docusaurus/docs/api/classes/BST.md +639 -189
- 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 +148 -160
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/Deque.md +105 -91
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +82 -82
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +104 -74
- 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 +51 -51
- 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 +33 -33
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +50 -50
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +55 -55
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +55 -55
- package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +78 -78
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +82 -82
- 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 +112 -60
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +708 -206
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +79 -79
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +44 -44
- package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +236 -33
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +162 -46
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +232 -32
- package/docs-site-docusaurus/docs/api/classes/Trie.md +47 -47
- package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +81 -81
- package/docs-site-docusaurus/docs/guide/architecture.md +75 -5
- package/docs-site-docusaurus/docs/guide/concepts.md +53 -3
- package/docs-site-docusaurus/docs/guide/faq.md +233 -0
- package/docs-site-docusaurus/docs/guide/guides.md +43 -58
- package/docs-site-docusaurus/docs/guide/installation.md +2 -0
- package/docs-site-docusaurus/docs/guide/integrations.md +75 -176
- package/docs-site-docusaurus/docs/guide/overview.md +132 -11
- package/docs-site-docusaurus/docs/guide/performance.md +2 -0
- package/docs-site-docusaurus/docs/guide/quick-start.md +31 -0
- package/docs-site-docusaurus/docs/guide/use-cases/_category_.json +6 -0
- package/docs-site-docusaurus/docs/guide/use-cases/array-sort-alternative.md +158 -0
- package/docs-site-docusaurus/docs/guide/use-cases/heap-vs-sorting.md +92 -0
- package/docs-site-docusaurus/docs/guide/use-cases/map-vs-treemap.md +151 -0
- package/docs-site-docusaurus/docs/guide/use-cases/priority-queue-typescript.md +113 -0
- package/docs-site-docusaurus/docs/guide/use-cases/treemap-javascript.md +151 -0
- package/docs-site-docusaurus/docusaurus.config.ts +1 -1
- package/docs-site-docusaurus/src/pages/index.tsx +55 -2
- package/docs-site-docusaurus/static/llms.txt +37 -0
- package/docs-site-docusaurus/typedoc.json +1 -0
- package/llms.txt +37 -0
- package/package.json +65 -56
- package/src/common/error.ts +19 -1
- package/src/common/index.ts +1 -1
- package/src/data-structures/base/iterable-element-base.ts +3 -2
- package/src/data-structures/binary-tree/avl-tree.ts +99 -5
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +102 -4
- package/src/data-structures/binary-tree/binary-tree.ts +239 -78
- package/src/data-structures/binary-tree/bst.ts +542 -13
- package/src/data-structures/binary-tree/red-black-tree.ts +155 -15
- package/src/data-structures/binary-tree/segment-tree.ts +42 -0
- package/src/data-structures/binary-tree/tree-map.ts +1223 -261
- package/src/data-structures/binary-tree/tree-multi-map.ts +939 -30
- package/src/data-structures/binary-tree/tree-multi-set.ts +746 -10
- package/src/data-structures/binary-tree/tree-set.ts +1018 -99
- package/src/data-structures/graph/abstract-graph.ts +2 -2
- 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 +102 -16
- package/src/data-structures/heap/heap.ts +153 -23
- package/src/data-structures/heap/max-heap.ts +2 -2
- package/src/data-structures/linked-list/doubly-linked-list.ts +139 -0
- package/src/data-structures/linked-list/singly-linked-list.ts +106 -1
- package/src/data-structures/linked-list/skip-linked-list.ts +131 -5
- package/src/data-structures/matrix/matrix.ts +65 -9
- package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
- package/src/data-structures/queue/deque.ts +130 -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 +86 -2
- package/src/interfaces/binary-tree.ts +1 -9
- package/src/types/data-structures/binary-tree/bst.ts +1 -0
- package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
- package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
- package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
- 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
|
@@ -23,6 +23,10 @@ var arrayRemove = /* @__PURE__ */ __name(function(array, predicate) {
|
|
|
23
23
|
}, "arrayRemove");
|
|
24
24
|
|
|
25
25
|
// src/common/error.ts
|
|
26
|
+
function raise(ErrorClass, message) {
|
|
27
|
+
throw new ErrorClass(message);
|
|
28
|
+
}
|
|
29
|
+
__name(raise, "raise");
|
|
26
30
|
var ERR = {
|
|
27
31
|
// Range / index
|
|
28
32
|
indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
|
|
@@ -44,7 +48,9 @@ var ERR = {
|
|
|
44
48
|
matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
|
|
45
49
|
matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
|
|
46
50
|
matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
|
|
47
|
-
matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
|
|
51
|
+
matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
|
|
52
|
+
// Order statistic
|
|
53
|
+
orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
|
|
48
54
|
};
|
|
49
55
|
|
|
50
56
|
// src/data-structures/base/iterable-entry-base.ts
|
|
@@ -247,7 +253,7 @@ var IterableElementBase = class {
|
|
|
247
253
|
if (options) {
|
|
248
254
|
const { toElementFn } = options;
|
|
249
255
|
if (typeof toElementFn === "function") this._toElementFn = toElementFn;
|
|
250
|
-
else if (toElementFn)
|
|
256
|
+
else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
|
|
251
257
|
}
|
|
252
258
|
}
|
|
253
259
|
/**
|
|
@@ -410,7 +416,7 @@ var IterableElementBase = class {
|
|
|
410
416
|
acc = initialValue;
|
|
411
417
|
} else {
|
|
412
418
|
const first = iter.next();
|
|
413
|
-
if (first.done)
|
|
419
|
+
if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
|
|
414
420
|
acc = first.value;
|
|
415
421
|
index = 1;
|
|
416
422
|
}
|
|
@@ -701,6 +707,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
701
707
|
|
|
702
708
|
|
|
703
709
|
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
|
|
717
|
+
|
|
704
718
|
|
|
705
719
|
|
|
706
720
|
|
|
@@ -758,7 +772,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
758
772
|
}
|
|
759
773
|
/**
|
|
760
774
|
* Insert an element.
|
|
761
|
-
* @remarks Time O(
|
|
775
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
762
776
|
* @param element - Element to insert.
|
|
763
777
|
* @returns True.
|
|
764
778
|
|
|
@@ -783,6 +797,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
783
797
|
|
|
784
798
|
|
|
785
799
|
|
|
800
|
+
|
|
801
|
+
|
|
802
|
+
|
|
803
|
+
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
|
|
807
|
+
|
|
786
808
|
|
|
787
809
|
|
|
788
810
|
|
|
@@ -836,6 +858,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
836
858
|
|
|
837
859
|
|
|
838
860
|
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
|
|
864
|
+
|
|
865
|
+
|
|
866
|
+
|
|
867
|
+
|
|
868
|
+
|
|
839
869
|
|
|
840
870
|
|
|
841
871
|
|
|
@@ -900,6 +930,41 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
900
930
|
|
|
901
931
|
|
|
902
932
|
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
|
|
940
|
+
* @example
|
|
941
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
942
|
+
* interface Task {
|
|
943
|
+
* id: number;
|
|
944
|
+
* priority: number;
|
|
945
|
+
* name: string;
|
|
946
|
+
* }
|
|
947
|
+
*
|
|
948
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
949
|
+
* const tasks: Task[] = [
|
|
950
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
951
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
952
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
953
|
+
* ];
|
|
954
|
+
*
|
|
955
|
+
* const maxHeap = new Heap(tasks, {
|
|
956
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
957
|
+
* });
|
|
958
|
+
*
|
|
959
|
+
* console.log(maxHeap.size); // 3;
|
|
960
|
+
*
|
|
961
|
+
* // Peek returns highest priority task
|
|
962
|
+
* const topTask = maxHeap.peek();
|
|
963
|
+
* console.log(topTask?.priority); // 8;
|
|
964
|
+
* console.log(topTask?.name); // 'Alert';
|
|
965
|
+
*/
|
|
966
|
+
/**
|
|
967
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
903
968
|
* @example
|
|
904
969
|
* // Heap with custom comparator (MaxHeap behavior)
|
|
905
970
|
* interface Task {
|
|
@@ -927,6 +992,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
927
992
|
* console.log(topTask?.name); // 'Alert';
|
|
928
993
|
*/
|
|
929
994
|
poll() {
|
|
995
|
+
return this.pop();
|
|
996
|
+
}
|
|
997
|
+
/**
|
|
998
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
999
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1000
|
+
* @returns The removed top element, or undefined if empty.
|
|
1001
|
+
*/
|
|
1002
|
+
pop() {
|
|
930
1003
|
if (this.elements.length === 0) return;
|
|
931
1004
|
const value = this.elements[0];
|
|
932
1005
|
const last = this.elements.pop();
|
|
@@ -962,6 +1035,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
962
1035
|
|
|
963
1036
|
|
|
964
1037
|
|
|
1038
|
+
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
|
|
1043
|
+
|
|
1044
|
+
|
|
1045
|
+
|
|
965
1046
|
|
|
966
1047
|
|
|
967
1048
|
|
|
@@ -1058,6 +1139,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1058
1139
|
|
|
1059
1140
|
|
|
1060
1141
|
|
|
1142
|
+
|
|
1143
|
+
|
|
1144
|
+
|
|
1145
|
+
|
|
1146
|
+
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
|
|
1061
1150
|
|
|
1062
1151
|
|
|
1063
1152
|
|
|
@@ -1101,6 +1190,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1101
1190
|
|
|
1102
1191
|
|
|
1103
1192
|
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
|
|
1196
|
+
|
|
1197
|
+
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
|
|
1104
1201
|
|
|
1105
1202
|
|
|
1106
1203
|
|
|
@@ -1119,16 +1216,6 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1119
1216
|
clear() {
|
|
1120
1217
|
this._elements = [];
|
|
1121
1218
|
}
|
|
1122
|
-
/**
|
|
1123
|
-
* Replace the backing array and rebuild the heap.
|
|
1124
|
-
* @remarks Time O(N), Space O(N)
|
|
1125
|
-
* @param elements - Iterable used to refill the heap.
|
|
1126
|
-
* @returns Array of per-node results from fixing steps.
|
|
1127
|
-
*/
|
|
1128
|
-
refill(elements) {
|
|
1129
|
-
this._elements = Array.from(elements);
|
|
1130
|
-
return this.fix();
|
|
1131
|
-
}
|
|
1132
1219
|
/**
|
|
1133
1220
|
* Check if an equal element exists in the heap.
|
|
1134
1221
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1147,6 +1234,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1147
1234
|
|
|
1148
1235
|
|
|
1149
1236
|
|
|
1237
|
+
|
|
1238
|
+
|
|
1239
|
+
|
|
1240
|
+
|
|
1241
|
+
|
|
1242
|
+
|
|
1243
|
+
|
|
1244
|
+
|
|
1150
1245
|
|
|
1151
1246
|
|
|
1152
1247
|
|
|
@@ -1190,6 +1285,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1190
1285
|
|
|
1191
1286
|
|
|
1192
1287
|
|
|
1288
|
+
|
|
1289
|
+
|
|
1290
|
+
|
|
1291
|
+
|
|
1292
|
+
|
|
1293
|
+
|
|
1294
|
+
|
|
1295
|
+
|
|
1193
1296
|
|
|
1194
1297
|
|
|
1195
1298
|
|
|
@@ -1215,7 +1318,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1215
1318
|
}
|
|
1216
1319
|
if (index < 0) return false;
|
|
1217
1320
|
if (index === 0) {
|
|
1218
|
-
this.
|
|
1321
|
+
this.pop();
|
|
1219
1322
|
} else if (index === this.elements.length - 1) {
|
|
1220
1323
|
this.elements.pop();
|
|
1221
1324
|
} else {
|
|
@@ -1225,13 +1328,19 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1225
1328
|
}
|
|
1226
1329
|
return true;
|
|
1227
1330
|
}
|
|
1331
|
+
/**
|
|
1332
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1333
|
+
*/
|
|
1334
|
+
deleteBy(predicate) {
|
|
1335
|
+
return this.deleteWhere(predicate);
|
|
1336
|
+
}
|
|
1228
1337
|
/**
|
|
1229
1338
|
* Delete the first element that matches a predicate.
|
|
1230
1339
|
* @remarks Time O(N), Space O(1)
|
|
1231
1340
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1232
1341
|
* @returns True if an element was removed.
|
|
1233
1342
|
*/
|
|
1234
|
-
|
|
1343
|
+
deleteWhere(predicate) {
|
|
1235
1344
|
let idx = -1;
|
|
1236
1345
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1237
1346
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1241,7 +1350,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1241
1350
|
}
|
|
1242
1351
|
if (idx < 0) return false;
|
|
1243
1352
|
if (idx === 0) {
|
|
1244
|
-
this.
|
|
1353
|
+
this.pop();
|
|
1245
1354
|
} else if (idx === this.elements.length - 1) {
|
|
1246
1355
|
this.elements.pop();
|
|
1247
1356
|
} else {
|
|
@@ -1279,6 +1388,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1279
1388
|
|
|
1280
1389
|
|
|
1281
1390
|
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
|
|
1398
|
+
|
|
1282
1399
|
|
|
1283
1400
|
|
|
1284
1401
|
|
|
@@ -1355,6 +1472,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1355
1472
|
|
|
1356
1473
|
|
|
1357
1474
|
|
|
1475
|
+
|
|
1476
|
+
|
|
1477
|
+
|
|
1478
|
+
|
|
1479
|
+
|
|
1480
|
+
|
|
1481
|
+
|
|
1482
|
+
|
|
1358
1483
|
|
|
1359
1484
|
|
|
1360
1485
|
|
|
@@ -1404,6 +1529,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1404
1529
|
|
|
1405
1530
|
|
|
1406
1531
|
|
|
1532
|
+
|
|
1533
|
+
|
|
1534
|
+
|
|
1535
|
+
|
|
1536
|
+
|
|
1537
|
+
|
|
1538
|
+
|
|
1539
|
+
|
|
1407
1540
|
|
|
1408
1541
|
|
|
1409
1542
|
|
|
@@ -1452,6 +1585,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1452
1585
|
|
|
1453
1586
|
|
|
1454
1587
|
|
|
1588
|
+
|
|
1589
|
+
|
|
1590
|
+
|
|
1591
|
+
|
|
1592
|
+
|
|
1593
|
+
|
|
1594
|
+
|
|
1595
|
+
|
|
1455
1596
|
|
|
1456
1597
|
|
|
1457
1598
|
|
|
@@ -1507,6 +1648,14 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1507
1648
|
|
|
1508
1649
|
|
|
1509
1650
|
|
|
1651
|
+
|
|
1652
|
+
|
|
1653
|
+
|
|
1654
|
+
|
|
1655
|
+
|
|
1656
|
+
|
|
1657
|
+
|
|
1658
|
+
|
|
1510
1659
|
|
|
1511
1660
|
|
|
1512
1661
|
|
|
@@ -1524,7 +1673,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1524
1673
|
*/
|
|
1525
1674
|
map(callback, options, thisArg) {
|
|
1526
1675
|
const { comparator, toElementFn, ...rest } = options ?? {};
|
|
1527
|
-
if (!comparator)
|
|
1676
|
+
if (!comparator) raise(TypeError, ERR.comparatorRequired("Heap.map"));
|
|
1528
1677
|
const out = this._createLike([], { ...rest, comparator, toElementFn });
|
|
1529
1678
|
let i = 0;
|
|
1530
1679
|
for (const x of this) {
|
|
@@ -1551,7 +1700,7 @@ var Heap = class _Heap extends IterableElementBase {
|
|
|
1551
1700
|
}
|
|
1552
1701
|
_DEFAULT_COMPARATOR = /* @__PURE__ */ __name((a, b) => {
|
|
1553
1702
|
if (typeof a === "object" || typeof b === "object") {
|
|
1554
|
-
|
|
1703
|
+
raise(TypeError, ERR.comparatorRequired("Heap"));
|
|
1555
1704
|
}
|
|
1556
1705
|
if (a > b) return 1;
|
|
1557
1706
|
if (a < b) return -1;
|
|
@@ -1716,6 +1865,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1716
1865
|
|
|
1717
1866
|
|
|
1718
1867
|
|
|
1868
|
+
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
|
|
1872
|
+
|
|
1873
|
+
|
|
1874
|
+
|
|
1875
|
+
|
|
1719
1876
|
|
|
1720
1877
|
|
|
1721
1878
|
|
|
@@ -1762,6 +1919,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1762
1919
|
|
|
1763
1920
|
|
|
1764
1921
|
|
|
1922
|
+
|
|
1923
|
+
|
|
1924
|
+
|
|
1925
|
+
|
|
1926
|
+
|
|
1927
|
+
|
|
1928
|
+
|
|
1929
|
+
|
|
1765
1930
|
|
|
1766
1931
|
|
|
1767
1932
|
|
|
@@ -1780,6 +1945,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1780
1945
|
get first() {
|
|
1781
1946
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1782
1947
|
}
|
|
1948
|
+
/**
|
|
1949
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
1950
|
+
* @remarks Time O(1), Space O(1)
|
|
1951
|
+
* @returns Front element or undefined.
|
|
1952
|
+
*/
|
|
1953
|
+
peek() {
|
|
1954
|
+
return this.first;
|
|
1955
|
+
}
|
|
1783
1956
|
/**
|
|
1784
1957
|
* Get the last element (back) without removing it.
|
|
1785
1958
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1824,6 +1997,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1824
1997
|
|
|
1825
1998
|
|
|
1826
1999
|
|
|
2000
|
+
|
|
2001
|
+
|
|
2002
|
+
|
|
2003
|
+
|
|
2004
|
+
|
|
2005
|
+
|
|
2006
|
+
|
|
2007
|
+
|
|
1827
2008
|
|
|
1828
2009
|
|
|
1829
2010
|
|
|
@@ -1882,6 +2063,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1882
2063
|
|
|
1883
2064
|
|
|
1884
2065
|
|
|
2066
|
+
|
|
2067
|
+
|
|
2068
|
+
|
|
2069
|
+
|
|
2070
|
+
|
|
2071
|
+
|
|
2072
|
+
|
|
2073
|
+
|
|
1885
2074
|
|
|
1886
2075
|
|
|
1887
2076
|
|
|
@@ -1947,6 +2136,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1947
2136
|
|
|
1948
2137
|
|
|
1949
2138
|
|
|
2139
|
+
|
|
2140
|
+
|
|
2141
|
+
|
|
2142
|
+
|
|
2143
|
+
|
|
2144
|
+
|
|
2145
|
+
|
|
2146
|
+
|
|
1950
2147
|
|
|
1951
2148
|
|
|
1952
2149
|
|
|
@@ -2002,6 +2199,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2002
2199
|
|
|
2003
2200
|
|
|
2004
2201
|
|
|
2202
|
+
|
|
2203
|
+
|
|
2204
|
+
|
|
2205
|
+
|
|
2206
|
+
|
|
2207
|
+
|
|
2208
|
+
|
|
2209
|
+
|
|
2005
2210
|
|
|
2006
2211
|
|
|
2007
2212
|
|
|
@@ -2050,6 +2255,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2050
2255
|
|
|
2051
2256
|
|
|
2052
2257
|
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
|
|
2261
|
+
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
|
|
2265
|
+
|
|
2053
2266
|
|
|
2054
2267
|
|
|
2055
2268
|
|
|
@@ -2105,6 +2318,21 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2105
2318
|
this._elements[this._offset + index] = newElement;
|
|
2106
2319
|
return true;
|
|
2107
2320
|
}
|
|
2321
|
+
/**
|
|
2322
|
+
* Delete the first element that satisfies a predicate.
|
|
2323
|
+
* @remarks Time O(N), Space O(N)
|
|
2324
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2325
|
+
* @returns True if a match was removed.
|
|
2326
|
+
*/
|
|
2327
|
+
deleteWhere(predicate) {
|
|
2328
|
+
for (let i = 0; i < this.length; i++) {
|
|
2329
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2330
|
+
this.deleteAt(i);
|
|
2331
|
+
return true;
|
|
2332
|
+
}
|
|
2333
|
+
}
|
|
2334
|
+
return false;
|
|
2335
|
+
}
|
|
2108
2336
|
/**
|
|
2109
2337
|
* Reverse the queue in-place by compacting then reversing.
|
|
2110
2338
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2139,6 +2367,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2139
2367
|
|
|
2140
2368
|
|
|
2141
2369
|
|
|
2370
|
+
|
|
2371
|
+
|
|
2372
|
+
|
|
2373
|
+
|
|
2374
|
+
|
|
2375
|
+
|
|
2376
|
+
|
|
2377
|
+
|
|
2142
2378
|
|
|
2143
2379
|
|
|
2144
2380
|
|
|
@@ -2181,6 +2417,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2181
2417
|
|
|
2182
2418
|
|
|
2183
2419
|
|
|
2420
|
+
|
|
2421
|
+
|
|
2422
|
+
|
|
2423
|
+
|
|
2424
|
+
|
|
2425
|
+
|
|
2426
|
+
|
|
2427
|
+
|
|
2184
2428
|
|
|
2185
2429
|
|
|
2186
2430
|
|
|
@@ -2246,6 +2490,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2246
2490
|
|
|
2247
2491
|
|
|
2248
2492
|
|
|
2493
|
+
|
|
2494
|
+
|
|
2495
|
+
|
|
2496
|
+
|
|
2497
|
+
|
|
2498
|
+
|
|
2499
|
+
|
|
2500
|
+
|
|
2249
2501
|
|
|
2250
2502
|
|
|
2251
2503
|
|
|
@@ -2295,6 +2547,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2295
2547
|
|
|
2296
2548
|
|
|
2297
2549
|
|
|
2550
|
+
|
|
2551
|
+
|
|
2552
|
+
|
|
2553
|
+
|
|
2554
|
+
|
|
2555
|
+
|
|
2556
|
+
|
|
2557
|
+
|
|
2298
2558
|
|
|
2299
2559
|
|
|
2300
2560
|
|
|
@@ -2348,6 +2608,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2348
2608
|
|
|
2349
2609
|
|
|
2350
2610
|
|
|
2611
|
+
|
|
2612
|
+
|
|
2613
|
+
|
|
2614
|
+
|
|
2615
|
+
|
|
2616
|
+
|
|
2617
|
+
|
|
2618
|
+
|
|
2351
2619
|
|
|
2352
2620
|
|
|
2353
2621
|
|
|
@@ -2592,7 +2860,7 @@ var AbstractGraph = class extends IterableEntryBase {
|
|
|
2592
2860
|
const newEdge = this.createEdge(srcOrEdge, dest, weight, value);
|
|
2593
2861
|
return this._addEdge(newEdge);
|
|
2594
2862
|
} else {
|
|
2595
|
-
|
|
2863
|
+
raise(TypeError, ERR.invalidArgument("dest must be a Vertex or vertex key when srcOrEdge is an Edge.", "Graph"));
|
|
2596
2864
|
}
|
|
2597
2865
|
}
|
|
2598
2866
|
}
|
|
@@ -3483,6 +3751,14 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3483
3751
|
|
|
3484
3752
|
|
|
3485
3753
|
|
|
3754
|
+
|
|
3755
|
+
|
|
3756
|
+
|
|
3757
|
+
|
|
3758
|
+
|
|
3759
|
+
|
|
3760
|
+
|
|
3761
|
+
|
|
3486
3762
|
|
|
3487
3763
|
|
|
3488
3764
|
|
|
@@ -3567,6 +3843,14 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3567
3843
|
|
|
3568
3844
|
|
|
3569
3845
|
|
|
3846
|
+
|
|
3847
|
+
|
|
3848
|
+
|
|
3849
|
+
|
|
3850
|
+
|
|
3851
|
+
|
|
3852
|
+
|
|
3853
|
+
|
|
3570
3854
|
|
|
3571
3855
|
|
|
3572
3856
|
|
|
@@ -3649,6 +3933,14 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3649
3933
|
|
|
3650
3934
|
|
|
3651
3935
|
|
|
3936
|
+
|
|
3937
|
+
|
|
3938
|
+
|
|
3939
|
+
|
|
3940
|
+
|
|
3941
|
+
|
|
3942
|
+
|
|
3943
|
+
|
|
3652
3944
|
|
|
3653
3945
|
|
|
3654
3946
|
|
|
@@ -3722,6 +4014,14 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3722
4014
|
|
|
3723
4015
|
|
|
3724
4016
|
|
|
4017
|
+
|
|
4018
|
+
|
|
4019
|
+
|
|
4020
|
+
|
|
4021
|
+
|
|
4022
|
+
|
|
4023
|
+
|
|
4024
|
+
|
|
3725
4025
|
|
|
3726
4026
|
|
|
3727
4027
|
|
|
@@ -3772,6 +4072,14 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3772
4072
|
|
|
3773
4073
|
|
|
3774
4074
|
|
|
4075
|
+
|
|
4076
|
+
|
|
4077
|
+
|
|
4078
|
+
|
|
4079
|
+
|
|
4080
|
+
|
|
4081
|
+
|
|
4082
|
+
|
|
3775
4083
|
|
|
3776
4084
|
|
|
3777
4085
|
|
|
@@ -3875,6 +4183,14 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3875
4183
|
|
|
3876
4184
|
|
|
3877
4185
|
|
|
4186
|
+
|
|
4187
|
+
|
|
4188
|
+
|
|
4189
|
+
|
|
4190
|
+
|
|
4191
|
+
|
|
4192
|
+
|
|
4193
|
+
|
|
3878
4194
|
|
|
3879
4195
|
|
|
3880
4196
|
|
|
@@ -3959,6 +4275,14 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3959
4275
|
|
|
3960
4276
|
|
|
3961
4277
|
|
|
4278
|
+
|
|
4279
|
+
|
|
4280
|
+
|
|
4281
|
+
|
|
4282
|
+
|
|
4283
|
+
|
|
4284
|
+
|
|
4285
|
+
|
|
3962
4286
|
|
|
3963
4287
|
|
|
3964
4288
|
|
|
@@ -4005,6 +4329,14 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4005
4329
|
|
|
4006
4330
|
|
|
4007
4331
|
|
|
4332
|
+
|
|
4333
|
+
|
|
4334
|
+
|
|
4335
|
+
|
|
4336
|
+
|
|
4337
|
+
|
|
4338
|
+
|
|
4339
|
+
|
|
4008
4340
|
|
|
4009
4341
|
|
|
4010
4342
|
|
|
@@ -4104,6 +4436,14 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4104
4436
|
|
|
4105
4437
|
|
|
4106
4438
|
|
|
4439
|
+
|
|
4440
|
+
|
|
4441
|
+
|
|
4442
|
+
|
|
4443
|
+
|
|
4444
|
+
|
|
4445
|
+
|
|
4446
|
+
|
|
4107
4447
|
|
|
4108
4448
|
|
|
4109
4449
|
|
|
@@ -4206,6 +4546,14 @@ var DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4206
4546
|
|
|
4207
4547
|
|
|
4208
4548
|
|
|
4549
|
+
|
|
4550
|
+
|
|
4551
|
+
|
|
4552
|
+
|
|
4553
|
+
|
|
4554
|
+
|
|
4555
|
+
|
|
4556
|
+
|
|
4209
4557
|
|
|
4210
4558
|
|
|
4211
4559
|
|
|
@@ -4374,6 +4722,14 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4374
4722
|
|
|
4375
4723
|
|
|
4376
4724
|
|
|
4725
|
+
|
|
4726
|
+
|
|
4727
|
+
|
|
4728
|
+
|
|
4729
|
+
|
|
4730
|
+
|
|
4731
|
+
|
|
4732
|
+
|
|
4377
4733
|
|
|
4378
4734
|
|
|
4379
4735
|
|
|
@@ -4454,6 +4810,14 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4454
4810
|
|
|
4455
4811
|
|
|
4456
4812
|
|
|
4813
|
+
|
|
4814
|
+
|
|
4815
|
+
|
|
4816
|
+
|
|
4817
|
+
|
|
4818
|
+
|
|
4819
|
+
|
|
4820
|
+
|
|
4457
4821
|
|
|
4458
4822
|
|
|
4459
4823
|
|
|
@@ -4534,6 +4898,14 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4534
4898
|
|
|
4535
4899
|
|
|
4536
4900
|
|
|
4901
|
+
|
|
4902
|
+
|
|
4903
|
+
|
|
4904
|
+
|
|
4905
|
+
|
|
4906
|
+
|
|
4907
|
+
|
|
4908
|
+
|
|
4537
4909
|
|
|
4538
4910
|
|
|
4539
4911
|
|
|
@@ -4628,6 +5000,14 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4628
5000
|
|
|
4629
5001
|
|
|
4630
5002
|
|
|
5003
|
+
|
|
5004
|
+
|
|
5005
|
+
|
|
5006
|
+
|
|
5007
|
+
|
|
5008
|
+
|
|
5009
|
+
|
|
5010
|
+
|
|
4631
5011
|
|
|
4632
5012
|
|
|
4633
5013
|
|
|
@@ -4678,6 +5058,14 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4678
5058
|
|
|
4679
5059
|
|
|
4680
5060
|
|
|
5061
|
+
|
|
5062
|
+
|
|
5063
|
+
|
|
5064
|
+
|
|
5065
|
+
|
|
5066
|
+
|
|
5067
|
+
|
|
5068
|
+
|
|
4681
5069
|
|
|
4682
5070
|
|
|
4683
5071
|
|
|
@@ -4798,6 +5186,14 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4798
5186
|
|
|
4799
5187
|
|
|
4800
5188
|
|
|
5189
|
+
|
|
5190
|
+
|
|
5191
|
+
|
|
5192
|
+
|
|
5193
|
+
|
|
5194
|
+
|
|
5195
|
+
|
|
5196
|
+
|
|
4801
5197
|
|
|
4802
5198
|
|
|
4803
5199
|
|
|
@@ -4940,6 +5336,14 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4940
5336
|
|
|
4941
5337
|
|
|
4942
5338
|
|
|
5339
|
+
|
|
5340
|
+
|
|
5341
|
+
|
|
5342
|
+
|
|
5343
|
+
|
|
5344
|
+
|
|
5345
|
+
|
|
5346
|
+
|
|
4943
5347
|
|
|
4944
5348
|
|
|
4945
5349
|
|
|
@@ -5004,6 +5408,14 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5004
5408
|
|
|
5005
5409
|
|
|
5006
5410
|
|
|
5411
|
+
|
|
5412
|
+
|
|
5413
|
+
|
|
5414
|
+
|
|
5415
|
+
|
|
5416
|
+
|
|
5417
|
+
|
|
5418
|
+
|
|
5007
5419
|
|
|
5008
5420
|
|
|
5009
5421
|
|
|
@@ -5050,6 +5462,14 @@ var UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5050
5462
|
|
|
5051
5463
|
|
|
5052
5464
|
|
|
5465
|
+
|
|
5466
|
+
|
|
5467
|
+
|
|
5468
|
+
|
|
5469
|
+
|
|
5470
|
+
|
|
5471
|
+
|
|
5472
|
+
|
|
5053
5473
|
|
|
5054
5474
|
|
|
5055
5475
|
|