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
|
@@ -27,6 +27,10 @@ var arrayRemove = /* @__PURE__ */ __name(function(array, predicate) {
|
|
|
27
27
|
}, "arrayRemove");
|
|
28
28
|
|
|
29
29
|
// src/common/error.ts
|
|
30
|
+
function raise(ErrorClass, message) {
|
|
31
|
+
throw new ErrorClass(message);
|
|
32
|
+
}
|
|
33
|
+
__name(raise, "raise");
|
|
30
34
|
var ERR = {
|
|
31
35
|
// Range / index
|
|
32
36
|
indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
|
|
@@ -48,7 +52,9 @@ var ERR = {
|
|
|
48
52
|
matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
|
|
49
53
|
matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
|
|
50
54
|
matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
|
|
51
|
-
matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
|
|
55
|
+
matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
|
|
56
|
+
// Order statistic
|
|
57
|
+
orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
|
|
52
58
|
};
|
|
53
59
|
|
|
54
60
|
// src/data-structures/base/iterable-entry-base.ts
|
|
@@ -254,7 +260,7 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
254
260
|
if (options) {
|
|
255
261
|
const { toElementFn } = options;
|
|
256
262
|
if (typeof toElementFn === "function") this._toElementFn = toElementFn;
|
|
257
|
-
else if (toElementFn)
|
|
263
|
+
else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
|
|
258
264
|
}
|
|
259
265
|
}
|
|
260
266
|
/**
|
|
@@ -410,7 +416,7 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
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
|
}
|
|
@@ -661,7 +667,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
661
667
|
__publicField(this, "_elements", []);
|
|
662
668
|
__publicField(this, "_DEFAULT_COMPARATOR", /* @__PURE__ */ __name((a, b) => {
|
|
663
669
|
if (typeof a === "object" || typeof b === "object") {
|
|
664
|
-
|
|
670
|
+
raise(TypeError, ERR.comparatorRequired("Heap"));
|
|
665
671
|
}
|
|
666
672
|
if (a > b) return 1;
|
|
667
673
|
if (a < b) return -1;
|
|
@@ -708,6 +714,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
708
714
|
|
|
709
715
|
|
|
710
716
|
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
|
|
723
|
+
|
|
724
|
+
|
|
711
725
|
|
|
712
726
|
|
|
713
727
|
|
|
@@ -766,7 +780,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
766
780
|
}
|
|
767
781
|
/**
|
|
768
782
|
* Insert an element.
|
|
769
|
-
* @remarks Time O(
|
|
783
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
770
784
|
* @param element - Element to insert.
|
|
771
785
|
* @returns True.
|
|
772
786
|
|
|
@@ -791,6 +805,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
791
805
|
|
|
792
806
|
|
|
793
807
|
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
|
|
812
|
+
|
|
813
|
+
|
|
814
|
+
|
|
815
|
+
|
|
794
816
|
|
|
795
817
|
|
|
796
818
|
|
|
@@ -844,6 +866,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
844
866
|
|
|
845
867
|
|
|
846
868
|
|
|
869
|
+
|
|
870
|
+
|
|
871
|
+
|
|
872
|
+
|
|
873
|
+
|
|
874
|
+
|
|
875
|
+
|
|
876
|
+
|
|
847
877
|
|
|
848
878
|
|
|
849
879
|
|
|
@@ -908,6 +938,41 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
908
938
|
|
|
909
939
|
|
|
910
940
|
|
|
941
|
+
|
|
942
|
+
|
|
943
|
+
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
|
|
948
|
+
* @example
|
|
949
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
950
|
+
* interface Task {
|
|
951
|
+
* id: number;
|
|
952
|
+
* priority: number;
|
|
953
|
+
* name: string;
|
|
954
|
+
* }
|
|
955
|
+
*
|
|
956
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
957
|
+
* const tasks: Task[] = [
|
|
958
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
959
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
960
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
961
|
+
* ];
|
|
962
|
+
*
|
|
963
|
+
* const maxHeap = new Heap(tasks, {
|
|
964
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
965
|
+
* });
|
|
966
|
+
*
|
|
967
|
+
* console.log(maxHeap.size); // 3;
|
|
968
|
+
*
|
|
969
|
+
* // Peek returns highest priority task
|
|
970
|
+
* const topTask = maxHeap.peek();
|
|
971
|
+
* console.log(topTask?.priority); // 8;
|
|
972
|
+
* console.log(topTask?.name); // 'Alert';
|
|
973
|
+
*/
|
|
974
|
+
/**
|
|
975
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
911
976
|
* @example
|
|
912
977
|
* // Heap with custom comparator (MaxHeap behavior)
|
|
913
978
|
* interface Task {
|
|
@@ -935,6 +1000,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
935
1000
|
* console.log(topTask?.name); // 'Alert';
|
|
936
1001
|
*/
|
|
937
1002
|
poll() {
|
|
1003
|
+
return this.pop();
|
|
1004
|
+
}
|
|
1005
|
+
/**
|
|
1006
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
1007
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1008
|
+
* @returns The removed top element, or undefined if empty.
|
|
1009
|
+
*/
|
|
1010
|
+
pop() {
|
|
938
1011
|
if (this.elements.length === 0) return;
|
|
939
1012
|
const value = this.elements[0];
|
|
940
1013
|
const last = this.elements.pop();
|
|
@@ -970,6 +1043,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
970
1043
|
|
|
971
1044
|
|
|
972
1045
|
|
|
1046
|
+
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
|
|
973
1054
|
|
|
974
1055
|
|
|
975
1056
|
|
|
@@ -1066,6 +1147,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1066
1147
|
|
|
1067
1148
|
|
|
1068
1149
|
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
|
|
1153
|
+
|
|
1154
|
+
|
|
1155
|
+
|
|
1156
|
+
|
|
1157
|
+
|
|
1069
1158
|
|
|
1070
1159
|
|
|
1071
1160
|
|
|
@@ -1109,6 +1198,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1109
1198
|
|
|
1110
1199
|
|
|
1111
1200
|
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
|
|
1208
|
+
|
|
1112
1209
|
|
|
1113
1210
|
|
|
1114
1211
|
|
|
@@ -1127,16 +1224,6 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1127
1224
|
clear() {
|
|
1128
1225
|
this._elements = [];
|
|
1129
1226
|
}
|
|
1130
|
-
/**
|
|
1131
|
-
* Replace the backing array and rebuild the heap.
|
|
1132
|
-
* @remarks Time O(N), Space O(N)
|
|
1133
|
-
* @param elements - Iterable used to refill the heap.
|
|
1134
|
-
* @returns Array of per-node results from fixing steps.
|
|
1135
|
-
*/
|
|
1136
|
-
refill(elements) {
|
|
1137
|
-
this._elements = Array.from(elements);
|
|
1138
|
-
return this.fix();
|
|
1139
|
-
}
|
|
1140
1227
|
/**
|
|
1141
1228
|
* Check if an equal element exists in the heap.
|
|
1142
1229
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1155,6 +1242,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1155
1242
|
|
|
1156
1243
|
|
|
1157
1244
|
|
|
1245
|
+
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
|
|
1250
|
+
|
|
1251
|
+
|
|
1252
|
+
|
|
1158
1253
|
|
|
1159
1254
|
|
|
1160
1255
|
|
|
@@ -1198,6 +1293,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1198
1293
|
|
|
1199
1294
|
|
|
1200
1295
|
|
|
1296
|
+
|
|
1297
|
+
|
|
1298
|
+
|
|
1299
|
+
|
|
1300
|
+
|
|
1301
|
+
|
|
1302
|
+
|
|
1303
|
+
|
|
1201
1304
|
|
|
1202
1305
|
|
|
1203
1306
|
|
|
@@ -1223,7 +1326,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1223
1326
|
}
|
|
1224
1327
|
if (index < 0) return false;
|
|
1225
1328
|
if (index === 0) {
|
|
1226
|
-
this.
|
|
1329
|
+
this.pop();
|
|
1227
1330
|
} else if (index === this.elements.length - 1) {
|
|
1228
1331
|
this.elements.pop();
|
|
1229
1332
|
} else {
|
|
@@ -1233,13 +1336,19 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1233
1336
|
}
|
|
1234
1337
|
return true;
|
|
1235
1338
|
}
|
|
1339
|
+
/**
|
|
1340
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1341
|
+
*/
|
|
1342
|
+
deleteBy(predicate) {
|
|
1343
|
+
return this.deleteWhere(predicate);
|
|
1344
|
+
}
|
|
1236
1345
|
/**
|
|
1237
1346
|
* Delete the first element that matches a predicate.
|
|
1238
1347
|
* @remarks Time O(N), Space O(1)
|
|
1239
1348
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1240
1349
|
* @returns True if an element was removed.
|
|
1241
1350
|
*/
|
|
1242
|
-
|
|
1351
|
+
deleteWhere(predicate) {
|
|
1243
1352
|
let idx = -1;
|
|
1244
1353
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1245
1354
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1249,7 +1358,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1249
1358
|
}
|
|
1250
1359
|
if (idx < 0) return false;
|
|
1251
1360
|
if (idx === 0) {
|
|
1252
|
-
this.
|
|
1361
|
+
this.pop();
|
|
1253
1362
|
} else if (idx === this.elements.length - 1) {
|
|
1254
1363
|
this.elements.pop();
|
|
1255
1364
|
} else {
|
|
@@ -1287,6 +1396,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1287
1396
|
|
|
1288
1397
|
|
|
1289
1398
|
|
|
1399
|
+
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
|
|
1403
|
+
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
|
|
1290
1407
|
|
|
1291
1408
|
|
|
1292
1409
|
|
|
@@ -1363,6 +1480,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1363
1480
|
|
|
1364
1481
|
|
|
1365
1482
|
|
|
1483
|
+
|
|
1484
|
+
|
|
1485
|
+
|
|
1486
|
+
|
|
1487
|
+
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
|
|
1366
1491
|
|
|
1367
1492
|
|
|
1368
1493
|
|
|
@@ -1412,6 +1537,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1412
1537
|
|
|
1413
1538
|
|
|
1414
1539
|
|
|
1540
|
+
|
|
1541
|
+
|
|
1542
|
+
|
|
1543
|
+
|
|
1544
|
+
|
|
1545
|
+
|
|
1546
|
+
|
|
1547
|
+
|
|
1415
1548
|
|
|
1416
1549
|
|
|
1417
1550
|
|
|
@@ -1460,6 +1593,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1460
1593
|
|
|
1461
1594
|
|
|
1462
1595
|
|
|
1596
|
+
|
|
1597
|
+
|
|
1598
|
+
|
|
1599
|
+
|
|
1600
|
+
|
|
1601
|
+
|
|
1602
|
+
|
|
1603
|
+
|
|
1463
1604
|
|
|
1464
1605
|
|
|
1465
1606
|
|
|
@@ -1515,6 +1656,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1515
1656
|
|
|
1516
1657
|
|
|
1517
1658
|
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
|
|
1662
|
+
|
|
1663
|
+
|
|
1664
|
+
|
|
1665
|
+
|
|
1666
|
+
|
|
1518
1667
|
|
|
1519
1668
|
|
|
1520
1669
|
|
|
@@ -1532,7 +1681,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1532
1681
|
*/
|
|
1533
1682
|
map(callback, options, thisArg) {
|
|
1534
1683
|
const { comparator, toElementFn, ...rest } = options != null ? options : {};
|
|
1535
|
-
if (!comparator)
|
|
1684
|
+
if (!comparator) raise(TypeError, ERR.comparatorRequired("Heap.map"));
|
|
1536
1685
|
const out = this._createLike([], { ...rest, comparator, toElementFn });
|
|
1537
1686
|
let i = 0;
|
|
1538
1687
|
for (const x of this) {
|
|
@@ -1714,6 +1863,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1714
1863
|
|
|
1715
1864
|
|
|
1716
1865
|
|
|
1866
|
+
|
|
1867
|
+
|
|
1868
|
+
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
|
|
1872
|
+
|
|
1873
|
+
|
|
1717
1874
|
|
|
1718
1875
|
|
|
1719
1876
|
|
|
@@ -1760,6 +1917,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1760
1917
|
|
|
1761
1918
|
|
|
1762
1919
|
|
|
1920
|
+
|
|
1921
|
+
|
|
1922
|
+
|
|
1923
|
+
|
|
1924
|
+
|
|
1925
|
+
|
|
1926
|
+
|
|
1927
|
+
|
|
1763
1928
|
|
|
1764
1929
|
|
|
1765
1930
|
|
|
@@ -1778,6 +1943,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1778
1943
|
get first() {
|
|
1779
1944
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1780
1945
|
}
|
|
1946
|
+
/**
|
|
1947
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
1948
|
+
* @remarks Time O(1), Space O(1)
|
|
1949
|
+
* @returns Front element or undefined.
|
|
1950
|
+
*/
|
|
1951
|
+
peek() {
|
|
1952
|
+
return this.first;
|
|
1953
|
+
}
|
|
1781
1954
|
/**
|
|
1782
1955
|
* Get the last element (back) without removing it.
|
|
1783
1956
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1822,6 +1995,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1822
1995
|
|
|
1823
1996
|
|
|
1824
1997
|
|
|
1998
|
+
|
|
1999
|
+
|
|
2000
|
+
|
|
2001
|
+
|
|
2002
|
+
|
|
2003
|
+
|
|
2004
|
+
|
|
2005
|
+
|
|
1825
2006
|
|
|
1826
2007
|
|
|
1827
2008
|
|
|
@@ -1880,6 +2061,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1880
2061
|
|
|
1881
2062
|
|
|
1882
2063
|
|
|
2064
|
+
|
|
2065
|
+
|
|
2066
|
+
|
|
2067
|
+
|
|
2068
|
+
|
|
2069
|
+
|
|
2070
|
+
|
|
2071
|
+
|
|
1883
2072
|
|
|
1884
2073
|
|
|
1885
2074
|
|
|
@@ -1945,6 +2134,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1945
2134
|
|
|
1946
2135
|
|
|
1947
2136
|
|
|
2137
|
+
|
|
2138
|
+
|
|
2139
|
+
|
|
2140
|
+
|
|
2141
|
+
|
|
2142
|
+
|
|
2143
|
+
|
|
2144
|
+
|
|
1948
2145
|
|
|
1949
2146
|
|
|
1950
2147
|
|
|
@@ -2000,6 +2197,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2000
2197
|
|
|
2001
2198
|
|
|
2002
2199
|
|
|
2200
|
+
|
|
2201
|
+
|
|
2202
|
+
|
|
2203
|
+
|
|
2204
|
+
|
|
2205
|
+
|
|
2206
|
+
|
|
2207
|
+
|
|
2003
2208
|
|
|
2004
2209
|
|
|
2005
2210
|
|
|
@@ -2048,6 +2253,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2048
2253
|
|
|
2049
2254
|
|
|
2050
2255
|
|
|
2256
|
+
|
|
2257
|
+
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
|
|
2261
|
+
|
|
2262
|
+
|
|
2263
|
+
|
|
2051
2264
|
|
|
2052
2265
|
|
|
2053
2266
|
|
|
@@ -2103,6 +2316,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2103
2316
|
this._elements[this._offset + index] = newElement;
|
|
2104
2317
|
return true;
|
|
2105
2318
|
}
|
|
2319
|
+
/**
|
|
2320
|
+
* Delete the first element that satisfies a predicate.
|
|
2321
|
+
* @remarks Time O(N), Space O(N)
|
|
2322
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2323
|
+
* @returns True if a match was removed.
|
|
2324
|
+
*/
|
|
2325
|
+
deleteWhere(predicate) {
|
|
2326
|
+
for (let i = 0; i < this.length; i++) {
|
|
2327
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2328
|
+
this.deleteAt(i);
|
|
2329
|
+
return true;
|
|
2330
|
+
}
|
|
2331
|
+
}
|
|
2332
|
+
return false;
|
|
2333
|
+
}
|
|
2106
2334
|
/**
|
|
2107
2335
|
* Reverse the queue in-place by compacting then reversing.
|
|
2108
2336
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2137,6 +2365,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2137
2365
|
|
|
2138
2366
|
|
|
2139
2367
|
|
|
2368
|
+
|
|
2369
|
+
|
|
2370
|
+
|
|
2371
|
+
|
|
2372
|
+
|
|
2373
|
+
|
|
2374
|
+
|
|
2375
|
+
|
|
2140
2376
|
|
|
2141
2377
|
|
|
2142
2378
|
|
|
@@ -2179,6 +2415,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2179
2415
|
|
|
2180
2416
|
|
|
2181
2417
|
|
|
2418
|
+
|
|
2419
|
+
|
|
2420
|
+
|
|
2421
|
+
|
|
2422
|
+
|
|
2423
|
+
|
|
2424
|
+
|
|
2425
|
+
|
|
2182
2426
|
|
|
2183
2427
|
|
|
2184
2428
|
|
|
@@ -2244,6 +2488,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2244
2488
|
|
|
2245
2489
|
|
|
2246
2490
|
|
|
2491
|
+
|
|
2492
|
+
|
|
2493
|
+
|
|
2494
|
+
|
|
2495
|
+
|
|
2496
|
+
|
|
2497
|
+
|
|
2498
|
+
|
|
2247
2499
|
|
|
2248
2500
|
|
|
2249
2501
|
|
|
@@ -2293,6 +2545,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2293
2545
|
|
|
2294
2546
|
|
|
2295
2547
|
|
|
2548
|
+
|
|
2549
|
+
|
|
2550
|
+
|
|
2551
|
+
|
|
2552
|
+
|
|
2553
|
+
|
|
2554
|
+
|
|
2555
|
+
|
|
2296
2556
|
|
|
2297
2557
|
|
|
2298
2558
|
|
|
@@ -2346,6 +2606,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2346
2606
|
|
|
2347
2607
|
|
|
2348
2608
|
|
|
2609
|
+
|
|
2610
|
+
|
|
2611
|
+
|
|
2612
|
+
|
|
2613
|
+
|
|
2614
|
+
|
|
2615
|
+
|
|
2616
|
+
|
|
2349
2617
|
|
|
2350
2618
|
|
|
2351
2619
|
|
|
@@ -2589,7 +2857,7 @@ var _AbstractGraph = class _AbstractGraph extends IterableEntryBase {
|
|
|
2589
2857
|
const newEdge = this.createEdge(srcOrEdge, dest, weight, value);
|
|
2590
2858
|
return this._addEdge(newEdge);
|
|
2591
2859
|
} else {
|
|
2592
|
-
|
|
2860
|
+
raise(TypeError, ERR.invalidArgument("dest must be a Vertex or vertex key when srcOrEdge is an Edge.", "Graph"));
|
|
2593
2861
|
}
|
|
2594
2862
|
}
|
|
2595
2863
|
}
|
|
@@ -3484,6 +3752,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3484
3752
|
|
|
3485
3753
|
|
|
3486
3754
|
|
|
3755
|
+
|
|
3756
|
+
|
|
3757
|
+
|
|
3758
|
+
|
|
3759
|
+
|
|
3760
|
+
|
|
3761
|
+
|
|
3762
|
+
|
|
3487
3763
|
|
|
3488
3764
|
|
|
3489
3765
|
|
|
@@ -3568,6 +3844,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3568
3844
|
|
|
3569
3845
|
|
|
3570
3846
|
|
|
3847
|
+
|
|
3848
|
+
|
|
3849
|
+
|
|
3850
|
+
|
|
3851
|
+
|
|
3852
|
+
|
|
3853
|
+
|
|
3854
|
+
|
|
3571
3855
|
|
|
3572
3856
|
|
|
3573
3857
|
|
|
@@ -3650,6 +3934,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3650
3934
|
|
|
3651
3935
|
|
|
3652
3936
|
|
|
3937
|
+
|
|
3938
|
+
|
|
3939
|
+
|
|
3940
|
+
|
|
3941
|
+
|
|
3942
|
+
|
|
3943
|
+
|
|
3944
|
+
|
|
3653
3945
|
|
|
3654
3946
|
|
|
3655
3947
|
|
|
@@ -3723,6 +4015,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3723
4015
|
|
|
3724
4016
|
|
|
3725
4017
|
|
|
4018
|
+
|
|
4019
|
+
|
|
4020
|
+
|
|
4021
|
+
|
|
4022
|
+
|
|
4023
|
+
|
|
4024
|
+
|
|
4025
|
+
|
|
3726
4026
|
|
|
3727
4027
|
|
|
3728
4028
|
|
|
@@ -3773,6 +4073,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3773
4073
|
|
|
3774
4074
|
|
|
3775
4075
|
|
|
4076
|
+
|
|
4077
|
+
|
|
4078
|
+
|
|
4079
|
+
|
|
4080
|
+
|
|
4081
|
+
|
|
4082
|
+
|
|
4083
|
+
|
|
3776
4084
|
|
|
3777
4085
|
|
|
3778
4086
|
|
|
@@ -3876,6 +4184,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3876
4184
|
|
|
3877
4185
|
|
|
3878
4186
|
|
|
4187
|
+
|
|
4188
|
+
|
|
4189
|
+
|
|
4190
|
+
|
|
4191
|
+
|
|
4192
|
+
|
|
4193
|
+
|
|
4194
|
+
|
|
3879
4195
|
|
|
3880
4196
|
|
|
3881
4197
|
|
|
@@ -3960,6 +4276,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3960
4276
|
|
|
3961
4277
|
|
|
3962
4278
|
|
|
4279
|
+
|
|
4280
|
+
|
|
4281
|
+
|
|
4282
|
+
|
|
4283
|
+
|
|
4284
|
+
|
|
4285
|
+
|
|
4286
|
+
|
|
3963
4287
|
|
|
3964
4288
|
|
|
3965
4289
|
|
|
@@ -4006,6 +4330,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4006
4330
|
|
|
4007
4331
|
|
|
4008
4332
|
|
|
4333
|
+
|
|
4334
|
+
|
|
4335
|
+
|
|
4336
|
+
|
|
4337
|
+
|
|
4338
|
+
|
|
4339
|
+
|
|
4340
|
+
|
|
4009
4341
|
|
|
4010
4342
|
|
|
4011
4343
|
|
|
@@ -4105,6 +4437,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4105
4437
|
|
|
4106
4438
|
|
|
4107
4439
|
|
|
4440
|
+
|
|
4441
|
+
|
|
4442
|
+
|
|
4443
|
+
|
|
4444
|
+
|
|
4445
|
+
|
|
4446
|
+
|
|
4447
|
+
|
|
4108
4448
|
|
|
4109
4449
|
|
|
4110
4450
|
|
|
@@ -4207,6 +4547,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4207
4547
|
|
|
4208
4548
|
|
|
4209
4549
|
|
|
4550
|
+
|
|
4551
|
+
|
|
4552
|
+
|
|
4553
|
+
|
|
4554
|
+
|
|
4555
|
+
|
|
4556
|
+
|
|
4557
|
+
|
|
4210
4558
|
|
|
4211
4559
|
|
|
4212
4560
|
|
|
@@ -4373,6 +4721,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4373
4721
|
|
|
4374
4722
|
|
|
4375
4723
|
|
|
4724
|
+
|
|
4725
|
+
|
|
4726
|
+
|
|
4727
|
+
|
|
4728
|
+
|
|
4729
|
+
|
|
4730
|
+
|
|
4731
|
+
|
|
4376
4732
|
|
|
4377
4733
|
|
|
4378
4734
|
|
|
@@ -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
|
|
|
@@ -4629,6 +5001,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4629
5001
|
|
|
4630
5002
|
|
|
4631
5003
|
|
|
5004
|
+
|
|
5005
|
+
|
|
5006
|
+
|
|
5007
|
+
|
|
5008
|
+
|
|
5009
|
+
|
|
5010
|
+
|
|
5011
|
+
|
|
4632
5012
|
|
|
4633
5013
|
|
|
4634
5014
|
|
|
@@ -4679,6 +5059,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4679
5059
|
|
|
4680
5060
|
|
|
4681
5061
|
|
|
5062
|
+
|
|
5063
|
+
|
|
5064
|
+
|
|
5065
|
+
|
|
5066
|
+
|
|
5067
|
+
|
|
5068
|
+
|
|
5069
|
+
|
|
4682
5070
|
|
|
4683
5071
|
|
|
4684
5072
|
|
|
@@ -4799,6 +5187,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4799
5187
|
|
|
4800
5188
|
|
|
4801
5189
|
|
|
5190
|
+
|
|
5191
|
+
|
|
5192
|
+
|
|
5193
|
+
|
|
5194
|
+
|
|
5195
|
+
|
|
5196
|
+
|
|
5197
|
+
|
|
4802
5198
|
|
|
4803
5199
|
|
|
4804
5200
|
|
|
@@ -4941,6 +5337,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4941
5337
|
|
|
4942
5338
|
|
|
4943
5339
|
|
|
5340
|
+
|
|
5341
|
+
|
|
5342
|
+
|
|
5343
|
+
|
|
5344
|
+
|
|
5345
|
+
|
|
5346
|
+
|
|
5347
|
+
|
|
4944
5348
|
|
|
4945
5349
|
|
|
4946
5350
|
|
|
@@ -5005,6 +5409,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5005
5409
|
|
|
5006
5410
|
|
|
5007
5411
|
|
|
5412
|
+
|
|
5413
|
+
|
|
5414
|
+
|
|
5415
|
+
|
|
5416
|
+
|
|
5417
|
+
|
|
5418
|
+
|
|
5419
|
+
|
|
5008
5420
|
|
|
5009
5421
|
|
|
5010
5422
|
|
|
@@ -5051,6 +5463,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5051
5463
|
|
|
5052
5464
|
|
|
5053
5465
|
|
|
5466
|
+
|
|
5467
|
+
|
|
5468
|
+
|
|
5469
|
+
|
|
5470
|
+
|
|
5471
|
+
|
|
5472
|
+
|
|
5473
|
+
|
|
5054
5474
|
|
|
5055
5475
|
|
|
5056
5476
|
|