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
|
@@ -25,6 +25,10 @@ var arrayRemove = /* @__PURE__ */ __name(function(array, predicate) {
|
|
|
25
25
|
}, "arrayRemove");
|
|
26
26
|
|
|
27
27
|
// src/common/error.ts
|
|
28
|
+
function raise(ErrorClass, message) {
|
|
29
|
+
throw new ErrorClass(message);
|
|
30
|
+
}
|
|
31
|
+
__name(raise, "raise");
|
|
28
32
|
var ERR = {
|
|
29
33
|
// Range / index
|
|
30
34
|
indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
|
|
@@ -46,7 +50,9 @@ var ERR = {
|
|
|
46
50
|
matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
|
|
47
51
|
matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
|
|
48
52
|
matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
|
|
49
|
-
matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
|
|
53
|
+
matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
|
|
54
|
+
// Order statistic
|
|
55
|
+
orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
|
|
50
56
|
};
|
|
51
57
|
|
|
52
58
|
// src/data-structures/base/iterable-entry-base.ts
|
|
@@ -252,7 +258,7 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
252
258
|
if (options) {
|
|
253
259
|
const { toElementFn } = options;
|
|
254
260
|
if (typeof toElementFn === "function") this._toElementFn = toElementFn;
|
|
255
|
-
else if (toElementFn)
|
|
261
|
+
else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
|
|
256
262
|
}
|
|
257
263
|
}
|
|
258
264
|
/**
|
|
@@ -408,7 +414,7 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
408
414
|
acc = initialValue;
|
|
409
415
|
} else {
|
|
410
416
|
const first = iter.next();
|
|
411
|
-
if (first.done)
|
|
417
|
+
if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
|
|
412
418
|
acc = first.value;
|
|
413
419
|
index = 1;
|
|
414
420
|
}
|
|
@@ -659,7 +665,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
659
665
|
__publicField(this, "_elements", []);
|
|
660
666
|
__publicField(this, "_DEFAULT_COMPARATOR", /* @__PURE__ */ __name((a, b) => {
|
|
661
667
|
if (typeof a === "object" || typeof b === "object") {
|
|
662
|
-
|
|
668
|
+
raise(TypeError, ERR.comparatorRequired("Heap"));
|
|
663
669
|
}
|
|
664
670
|
if (a > b) return 1;
|
|
665
671
|
if (a < b) return -1;
|
|
@@ -706,6 +712,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
706
712
|
|
|
707
713
|
|
|
708
714
|
|
|
715
|
+
|
|
716
|
+
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
|
|
709
723
|
|
|
710
724
|
|
|
711
725
|
|
|
@@ -764,7 +778,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
764
778
|
}
|
|
765
779
|
/**
|
|
766
780
|
* Insert an element.
|
|
767
|
-
* @remarks Time O(
|
|
781
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
768
782
|
* @param element - Element to insert.
|
|
769
783
|
* @returns True.
|
|
770
784
|
|
|
@@ -789,6 +803,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
789
803
|
|
|
790
804
|
|
|
791
805
|
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
|
|
812
|
+
|
|
813
|
+
|
|
792
814
|
|
|
793
815
|
|
|
794
816
|
|
|
@@ -842,6 +864,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
842
864
|
|
|
843
865
|
|
|
844
866
|
|
|
867
|
+
|
|
868
|
+
|
|
869
|
+
|
|
870
|
+
|
|
871
|
+
|
|
872
|
+
|
|
873
|
+
|
|
874
|
+
|
|
845
875
|
|
|
846
876
|
|
|
847
877
|
|
|
@@ -906,6 +936,41 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
906
936
|
|
|
907
937
|
|
|
908
938
|
|
|
939
|
+
|
|
940
|
+
|
|
941
|
+
|
|
942
|
+
|
|
943
|
+
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
* @example
|
|
947
|
+
* // Heap with custom comparator (MaxHeap behavior)
|
|
948
|
+
* interface Task {
|
|
949
|
+
* id: number;
|
|
950
|
+
* priority: number;
|
|
951
|
+
* name: string;
|
|
952
|
+
* }
|
|
953
|
+
*
|
|
954
|
+
* // Custom comparator for max heap behavior (higher priority first)
|
|
955
|
+
* const tasks: Task[] = [
|
|
956
|
+
* { id: 1, priority: 5, name: 'Email' },
|
|
957
|
+
* { id: 2, priority: 3, name: 'Chat' },
|
|
958
|
+
* { id: 3, priority: 8, name: 'Alert' }
|
|
959
|
+
* ];
|
|
960
|
+
*
|
|
961
|
+
* const maxHeap = new Heap(tasks, {
|
|
962
|
+
* comparator: (a: Task, b: Task) => b.priority - a.priority
|
|
963
|
+
* });
|
|
964
|
+
*
|
|
965
|
+
* console.log(maxHeap.size); // 3;
|
|
966
|
+
*
|
|
967
|
+
* // Peek returns highest priority task
|
|
968
|
+
* const topTask = maxHeap.peek();
|
|
969
|
+
* console.log(topTask?.priority); // 8;
|
|
970
|
+
* console.log(topTask?.name); // 'Alert';
|
|
971
|
+
*/
|
|
972
|
+
/**
|
|
973
|
+
* @deprecated Use `pop` instead. Will be removed in a future major version.
|
|
909
974
|
* @example
|
|
910
975
|
* // Heap with custom comparator (MaxHeap behavior)
|
|
911
976
|
* interface Task {
|
|
@@ -933,6 +998,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
933
998
|
* console.log(topTask?.name); // 'Alert';
|
|
934
999
|
*/
|
|
935
1000
|
poll() {
|
|
1001
|
+
return this.pop();
|
|
1002
|
+
}
|
|
1003
|
+
/**
|
|
1004
|
+
* Remove and return the top element (min or max depending on comparator).
|
|
1005
|
+
* @remarks Time O(log N) amortized, Space O(1)
|
|
1006
|
+
* @returns The removed top element, or undefined if empty.
|
|
1007
|
+
*/
|
|
1008
|
+
pop() {
|
|
936
1009
|
if (this.elements.length === 0) return;
|
|
937
1010
|
const value = this.elements[0];
|
|
938
1011
|
const last = this.elements.pop();
|
|
@@ -968,6 +1041,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
968
1041
|
|
|
969
1042
|
|
|
970
1043
|
|
|
1044
|
+
|
|
1045
|
+
|
|
1046
|
+
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
|
|
971
1052
|
|
|
972
1053
|
|
|
973
1054
|
|
|
@@ -1064,6 +1145,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1064
1145
|
|
|
1065
1146
|
|
|
1066
1147
|
|
|
1148
|
+
|
|
1149
|
+
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
|
|
1153
|
+
|
|
1154
|
+
|
|
1155
|
+
|
|
1067
1156
|
|
|
1068
1157
|
|
|
1069
1158
|
|
|
@@ -1107,6 +1196,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1107
1196
|
|
|
1108
1197
|
|
|
1109
1198
|
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
|
|
1110
1207
|
|
|
1111
1208
|
|
|
1112
1209
|
|
|
@@ -1125,16 +1222,6 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1125
1222
|
clear() {
|
|
1126
1223
|
this._elements = [];
|
|
1127
1224
|
}
|
|
1128
|
-
/**
|
|
1129
|
-
* Replace the backing array and rebuild the heap.
|
|
1130
|
-
* @remarks Time O(N), Space O(N)
|
|
1131
|
-
* @param elements - Iterable used to refill the heap.
|
|
1132
|
-
* @returns Array of per-node results from fixing steps.
|
|
1133
|
-
*/
|
|
1134
|
-
refill(elements) {
|
|
1135
|
-
this._elements = Array.from(elements);
|
|
1136
|
-
return this.fix();
|
|
1137
|
-
}
|
|
1138
1225
|
/**
|
|
1139
1226
|
* Check if an equal element exists in the heap.
|
|
1140
1227
|
* @remarks Time O(N), Space O(1)
|
|
@@ -1153,6 +1240,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1153
1240
|
|
|
1154
1241
|
|
|
1155
1242
|
|
|
1243
|
+
|
|
1244
|
+
|
|
1245
|
+
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
|
|
1250
|
+
|
|
1156
1251
|
|
|
1157
1252
|
|
|
1158
1253
|
|
|
@@ -1196,6 +1291,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1196
1291
|
|
|
1197
1292
|
|
|
1198
1293
|
|
|
1294
|
+
|
|
1295
|
+
|
|
1296
|
+
|
|
1297
|
+
|
|
1298
|
+
|
|
1299
|
+
|
|
1300
|
+
|
|
1301
|
+
|
|
1199
1302
|
|
|
1200
1303
|
|
|
1201
1304
|
|
|
@@ -1221,7 +1324,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1221
1324
|
}
|
|
1222
1325
|
if (index < 0) return false;
|
|
1223
1326
|
if (index === 0) {
|
|
1224
|
-
this.
|
|
1327
|
+
this.pop();
|
|
1225
1328
|
} else if (index === this.elements.length - 1) {
|
|
1226
1329
|
this.elements.pop();
|
|
1227
1330
|
} else {
|
|
@@ -1231,13 +1334,19 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1231
1334
|
}
|
|
1232
1335
|
return true;
|
|
1233
1336
|
}
|
|
1337
|
+
/**
|
|
1338
|
+
* @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
|
|
1339
|
+
*/
|
|
1340
|
+
deleteBy(predicate) {
|
|
1341
|
+
return this.deleteWhere(predicate);
|
|
1342
|
+
}
|
|
1234
1343
|
/**
|
|
1235
1344
|
* Delete the first element that matches a predicate.
|
|
1236
1345
|
* @remarks Time O(N), Space O(1)
|
|
1237
1346
|
* @param predicate - Function (element, index, heap) → boolean.
|
|
1238
1347
|
* @returns True if an element was removed.
|
|
1239
1348
|
*/
|
|
1240
|
-
|
|
1349
|
+
deleteWhere(predicate) {
|
|
1241
1350
|
let idx = -1;
|
|
1242
1351
|
for (let i = 0; i < this.elements.length; i++) {
|
|
1243
1352
|
if (predicate(this.elements[i], i, this)) {
|
|
@@ -1247,7 +1356,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1247
1356
|
}
|
|
1248
1357
|
if (idx < 0) return false;
|
|
1249
1358
|
if (idx === 0) {
|
|
1250
|
-
this.
|
|
1359
|
+
this.pop();
|
|
1251
1360
|
} else if (idx === this.elements.length - 1) {
|
|
1252
1361
|
this.elements.pop();
|
|
1253
1362
|
} else {
|
|
@@ -1285,6 +1394,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1285
1394
|
|
|
1286
1395
|
|
|
1287
1396
|
|
|
1397
|
+
|
|
1398
|
+
|
|
1399
|
+
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
|
|
1403
|
+
|
|
1404
|
+
|
|
1288
1405
|
|
|
1289
1406
|
|
|
1290
1407
|
|
|
@@ -1361,6 +1478,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1361
1478
|
|
|
1362
1479
|
|
|
1363
1480
|
|
|
1481
|
+
|
|
1482
|
+
|
|
1483
|
+
|
|
1484
|
+
|
|
1485
|
+
|
|
1486
|
+
|
|
1487
|
+
|
|
1488
|
+
|
|
1364
1489
|
|
|
1365
1490
|
|
|
1366
1491
|
|
|
@@ -1410,6 +1535,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1410
1535
|
|
|
1411
1536
|
|
|
1412
1537
|
|
|
1538
|
+
|
|
1539
|
+
|
|
1540
|
+
|
|
1541
|
+
|
|
1542
|
+
|
|
1543
|
+
|
|
1544
|
+
|
|
1545
|
+
|
|
1413
1546
|
|
|
1414
1547
|
|
|
1415
1548
|
|
|
@@ -1458,6 +1591,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1458
1591
|
|
|
1459
1592
|
|
|
1460
1593
|
|
|
1594
|
+
|
|
1595
|
+
|
|
1596
|
+
|
|
1597
|
+
|
|
1598
|
+
|
|
1599
|
+
|
|
1600
|
+
|
|
1601
|
+
|
|
1461
1602
|
|
|
1462
1603
|
|
|
1463
1604
|
|
|
@@ -1513,6 +1654,14 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1513
1654
|
|
|
1514
1655
|
|
|
1515
1656
|
|
|
1657
|
+
|
|
1658
|
+
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
|
|
1662
|
+
|
|
1663
|
+
|
|
1664
|
+
|
|
1516
1665
|
|
|
1517
1666
|
|
|
1518
1667
|
|
|
@@ -1530,7 +1679,7 @@ var _Heap = class _Heap extends IterableElementBase {
|
|
|
1530
1679
|
*/
|
|
1531
1680
|
map(callback, options, thisArg) {
|
|
1532
1681
|
const { comparator, toElementFn, ...rest } = options != null ? options : {};
|
|
1533
|
-
if (!comparator)
|
|
1682
|
+
if (!comparator) raise(TypeError, ERR.comparatorRequired("Heap.map"));
|
|
1534
1683
|
const out = this._createLike([], { ...rest, comparator, toElementFn });
|
|
1535
1684
|
let i = 0;
|
|
1536
1685
|
for (const x of this) {
|
|
@@ -1712,6 +1861,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1712
1861
|
|
|
1713
1862
|
|
|
1714
1863
|
|
|
1864
|
+
|
|
1865
|
+
|
|
1866
|
+
|
|
1867
|
+
|
|
1868
|
+
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
|
|
1715
1872
|
|
|
1716
1873
|
|
|
1717
1874
|
|
|
@@ -1758,6 +1915,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1758
1915
|
|
|
1759
1916
|
|
|
1760
1917
|
|
|
1918
|
+
|
|
1919
|
+
|
|
1920
|
+
|
|
1921
|
+
|
|
1922
|
+
|
|
1923
|
+
|
|
1924
|
+
|
|
1925
|
+
|
|
1761
1926
|
|
|
1762
1927
|
|
|
1763
1928
|
|
|
@@ -1776,6 +1941,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1776
1941
|
get first() {
|
|
1777
1942
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
1778
1943
|
}
|
|
1944
|
+
/**
|
|
1945
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
1946
|
+
* @remarks Time O(1), Space O(1)
|
|
1947
|
+
* @returns Front element or undefined.
|
|
1948
|
+
*/
|
|
1949
|
+
peek() {
|
|
1950
|
+
return this.first;
|
|
1951
|
+
}
|
|
1779
1952
|
/**
|
|
1780
1953
|
* Get the last element (back) without removing it.
|
|
1781
1954
|
* @remarks Time O(1), Space O(1)
|
|
@@ -1820,6 +1993,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1820
1993
|
|
|
1821
1994
|
|
|
1822
1995
|
|
|
1996
|
+
|
|
1997
|
+
|
|
1998
|
+
|
|
1999
|
+
|
|
2000
|
+
|
|
2001
|
+
|
|
2002
|
+
|
|
2003
|
+
|
|
1823
2004
|
|
|
1824
2005
|
|
|
1825
2006
|
|
|
@@ -1878,6 +2059,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1878
2059
|
|
|
1879
2060
|
|
|
1880
2061
|
|
|
2062
|
+
|
|
2063
|
+
|
|
2064
|
+
|
|
2065
|
+
|
|
2066
|
+
|
|
2067
|
+
|
|
2068
|
+
|
|
2069
|
+
|
|
1881
2070
|
|
|
1882
2071
|
|
|
1883
2072
|
|
|
@@ -1943,6 +2132,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1943
2132
|
|
|
1944
2133
|
|
|
1945
2134
|
|
|
2135
|
+
|
|
2136
|
+
|
|
2137
|
+
|
|
2138
|
+
|
|
2139
|
+
|
|
2140
|
+
|
|
2141
|
+
|
|
2142
|
+
|
|
1946
2143
|
|
|
1947
2144
|
|
|
1948
2145
|
|
|
@@ -1998,6 +2195,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1998
2195
|
|
|
1999
2196
|
|
|
2000
2197
|
|
|
2198
|
+
|
|
2199
|
+
|
|
2200
|
+
|
|
2201
|
+
|
|
2202
|
+
|
|
2203
|
+
|
|
2204
|
+
|
|
2205
|
+
|
|
2001
2206
|
|
|
2002
2207
|
|
|
2003
2208
|
|
|
@@ -2046,6 +2251,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2046
2251
|
|
|
2047
2252
|
|
|
2048
2253
|
|
|
2254
|
+
|
|
2255
|
+
|
|
2256
|
+
|
|
2257
|
+
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
|
|
2261
|
+
|
|
2049
2262
|
|
|
2050
2263
|
|
|
2051
2264
|
|
|
@@ -2101,6 +2314,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2101
2314
|
this._elements[this._offset + index] = newElement;
|
|
2102
2315
|
return true;
|
|
2103
2316
|
}
|
|
2317
|
+
/**
|
|
2318
|
+
* Delete the first element that satisfies a predicate.
|
|
2319
|
+
* @remarks Time O(N), Space O(N)
|
|
2320
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2321
|
+
* @returns True if a match was removed.
|
|
2322
|
+
*/
|
|
2323
|
+
deleteWhere(predicate) {
|
|
2324
|
+
for (let i = 0; i < this.length; i++) {
|
|
2325
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2326
|
+
this.deleteAt(i);
|
|
2327
|
+
return true;
|
|
2328
|
+
}
|
|
2329
|
+
}
|
|
2330
|
+
return false;
|
|
2331
|
+
}
|
|
2104
2332
|
/**
|
|
2105
2333
|
* Reverse the queue in-place by compacting then reversing.
|
|
2106
2334
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2135,6 +2363,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2135
2363
|
|
|
2136
2364
|
|
|
2137
2365
|
|
|
2366
|
+
|
|
2367
|
+
|
|
2368
|
+
|
|
2369
|
+
|
|
2370
|
+
|
|
2371
|
+
|
|
2372
|
+
|
|
2373
|
+
|
|
2138
2374
|
|
|
2139
2375
|
|
|
2140
2376
|
|
|
@@ -2177,6 +2413,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2177
2413
|
|
|
2178
2414
|
|
|
2179
2415
|
|
|
2416
|
+
|
|
2417
|
+
|
|
2418
|
+
|
|
2419
|
+
|
|
2420
|
+
|
|
2421
|
+
|
|
2422
|
+
|
|
2423
|
+
|
|
2180
2424
|
|
|
2181
2425
|
|
|
2182
2426
|
|
|
@@ -2242,6 +2486,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2242
2486
|
|
|
2243
2487
|
|
|
2244
2488
|
|
|
2489
|
+
|
|
2490
|
+
|
|
2491
|
+
|
|
2492
|
+
|
|
2493
|
+
|
|
2494
|
+
|
|
2495
|
+
|
|
2496
|
+
|
|
2245
2497
|
|
|
2246
2498
|
|
|
2247
2499
|
|
|
@@ -2291,6 +2543,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2291
2543
|
|
|
2292
2544
|
|
|
2293
2545
|
|
|
2546
|
+
|
|
2547
|
+
|
|
2548
|
+
|
|
2549
|
+
|
|
2550
|
+
|
|
2551
|
+
|
|
2552
|
+
|
|
2553
|
+
|
|
2294
2554
|
|
|
2295
2555
|
|
|
2296
2556
|
|
|
@@ -2344,6 +2604,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2344
2604
|
|
|
2345
2605
|
|
|
2346
2606
|
|
|
2607
|
+
|
|
2608
|
+
|
|
2609
|
+
|
|
2610
|
+
|
|
2611
|
+
|
|
2612
|
+
|
|
2613
|
+
|
|
2614
|
+
|
|
2347
2615
|
|
|
2348
2616
|
|
|
2349
2617
|
|
|
@@ -2587,7 +2855,7 @@ var _AbstractGraph = class _AbstractGraph extends IterableEntryBase {
|
|
|
2587
2855
|
const newEdge = this.createEdge(srcOrEdge, dest, weight, value);
|
|
2588
2856
|
return this._addEdge(newEdge);
|
|
2589
2857
|
} else {
|
|
2590
|
-
|
|
2858
|
+
raise(TypeError, ERR.invalidArgument("dest must be a Vertex or vertex key when srcOrEdge is an Edge.", "Graph"));
|
|
2591
2859
|
}
|
|
2592
2860
|
}
|
|
2593
2861
|
}
|
|
@@ -3482,6 +3750,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3482
3750
|
|
|
3483
3751
|
|
|
3484
3752
|
|
|
3753
|
+
|
|
3754
|
+
|
|
3755
|
+
|
|
3756
|
+
|
|
3757
|
+
|
|
3758
|
+
|
|
3759
|
+
|
|
3760
|
+
|
|
3485
3761
|
|
|
3486
3762
|
|
|
3487
3763
|
|
|
@@ -3566,6 +3842,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3566
3842
|
|
|
3567
3843
|
|
|
3568
3844
|
|
|
3845
|
+
|
|
3846
|
+
|
|
3847
|
+
|
|
3848
|
+
|
|
3849
|
+
|
|
3850
|
+
|
|
3851
|
+
|
|
3852
|
+
|
|
3569
3853
|
|
|
3570
3854
|
|
|
3571
3855
|
|
|
@@ -3648,6 +3932,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3648
3932
|
|
|
3649
3933
|
|
|
3650
3934
|
|
|
3935
|
+
|
|
3936
|
+
|
|
3937
|
+
|
|
3938
|
+
|
|
3939
|
+
|
|
3940
|
+
|
|
3941
|
+
|
|
3942
|
+
|
|
3651
3943
|
|
|
3652
3944
|
|
|
3653
3945
|
|
|
@@ -3721,6 +4013,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3721
4013
|
|
|
3722
4014
|
|
|
3723
4015
|
|
|
4016
|
+
|
|
4017
|
+
|
|
4018
|
+
|
|
4019
|
+
|
|
4020
|
+
|
|
4021
|
+
|
|
4022
|
+
|
|
4023
|
+
|
|
3724
4024
|
|
|
3725
4025
|
|
|
3726
4026
|
|
|
@@ -3771,6 +4071,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3771
4071
|
|
|
3772
4072
|
|
|
3773
4073
|
|
|
4074
|
+
|
|
4075
|
+
|
|
4076
|
+
|
|
4077
|
+
|
|
4078
|
+
|
|
4079
|
+
|
|
4080
|
+
|
|
4081
|
+
|
|
3774
4082
|
|
|
3775
4083
|
|
|
3776
4084
|
|
|
@@ -3874,6 +4182,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3874
4182
|
|
|
3875
4183
|
|
|
3876
4184
|
|
|
4185
|
+
|
|
4186
|
+
|
|
4187
|
+
|
|
4188
|
+
|
|
4189
|
+
|
|
4190
|
+
|
|
4191
|
+
|
|
4192
|
+
|
|
3877
4193
|
|
|
3878
4194
|
|
|
3879
4195
|
|
|
@@ -3958,6 +4274,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
3958
4274
|
|
|
3959
4275
|
|
|
3960
4276
|
|
|
4277
|
+
|
|
4278
|
+
|
|
4279
|
+
|
|
4280
|
+
|
|
4281
|
+
|
|
4282
|
+
|
|
4283
|
+
|
|
4284
|
+
|
|
3961
4285
|
|
|
3962
4286
|
|
|
3963
4287
|
|
|
@@ -4004,6 +4328,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4004
4328
|
|
|
4005
4329
|
|
|
4006
4330
|
|
|
4331
|
+
|
|
4332
|
+
|
|
4333
|
+
|
|
4334
|
+
|
|
4335
|
+
|
|
4336
|
+
|
|
4337
|
+
|
|
4338
|
+
|
|
4007
4339
|
|
|
4008
4340
|
|
|
4009
4341
|
|
|
@@ -4103,6 +4435,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4103
4435
|
|
|
4104
4436
|
|
|
4105
4437
|
|
|
4438
|
+
|
|
4439
|
+
|
|
4440
|
+
|
|
4441
|
+
|
|
4442
|
+
|
|
4443
|
+
|
|
4444
|
+
|
|
4445
|
+
|
|
4106
4446
|
|
|
4107
4447
|
|
|
4108
4448
|
|
|
@@ -4205,6 +4545,14 @@ var _DirectedGraph = class _DirectedGraph extends AbstractGraph {
|
|
|
4205
4545
|
|
|
4206
4546
|
|
|
4207
4547
|
|
|
4548
|
+
|
|
4549
|
+
|
|
4550
|
+
|
|
4551
|
+
|
|
4552
|
+
|
|
4553
|
+
|
|
4554
|
+
|
|
4555
|
+
|
|
4208
4556
|
|
|
4209
4557
|
|
|
4210
4558
|
|
|
@@ -4371,6 +4719,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4371
4719
|
|
|
4372
4720
|
|
|
4373
4721
|
|
|
4722
|
+
|
|
4723
|
+
|
|
4724
|
+
|
|
4725
|
+
|
|
4726
|
+
|
|
4727
|
+
|
|
4728
|
+
|
|
4729
|
+
|
|
4374
4730
|
|
|
4375
4731
|
|
|
4376
4732
|
|
|
@@ -4452,6 +4808,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4452
4808
|
|
|
4453
4809
|
|
|
4454
4810
|
|
|
4811
|
+
|
|
4812
|
+
|
|
4813
|
+
|
|
4814
|
+
|
|
4815
|
+
|
|
4816
|
+
|
|
4817
|
+
|
|
4818
|
+
|
|
4455
4819
|
|
|
4456
4820
|
|
|
4457
4821
|
|
|
@@ -4532,6 +4896,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4532
4896
|
|
|
4533
4897
|
|
|
4534
4898
|
|
|
4899
|
+
|
|
4900
|
+
|
|
4901
|
+
|
|
4902
|
+
|
|
4903
|
+
|
|
4904
|
+
|
|
4905
|
+
|
|
4906
|
+
|
|
4535
4907
|
|
|
4536
4908
|
|
|
4537
4909
|
|
|
@@ -4627,6 +4999,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4627
4999
|
|
|
4628
5000
|
|
|
4629
5001
|
|
|
5002
|
+
|
|
5003
|
+
|
|
5004
|
+
|
|
5005
|
+
|
|
5006
|
+
|
|
5007
|
+
|
|
5008
|
+
|
|
5009
|
+
|
|
4630
5010
|
|
|
4631
5011
|
|
|
4632
5012
|
|
|
@@ -4677,6 +5057,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4677
5057
|
|
|
4678
5058
|
|
|
4679
5059
|
|
|
5060
|
+
|
|
5061
|
+
|
|
5062
|
+
|
|
5063
|
+
|
|
5064
|
+
|
|
5065
|
+
|
|
5066
|
+
|
|
5067
|
+
|
|
4680
5068
|
|
|
4681
5069
|
|
|
4682
5070
|
|
|
@@ -4797,6 +5185,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4797
5185
|
|
|
4798
5186
|
|
|
4799
5187
|
|
|
5188
|
+
|
|
5189
|
+
|
|
5190
|
+
|
|
5191
|
+
|
|
5192
|
+
|
|
5193
|
+
|
|
5194
|
+
|
|
5195
|
+
|
|
4800
5196
|
|
|
4801
5197
|
|
|
4802
5198
|
|
|
@@ -4939,6 +5335,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
4939
5335
|
|
|
4940
5336
|
|
|
4941
5337
|
|
|
5338
|
+
|
|
5339
|
+
|
|
5340
|
+
|
|
5341
|
+
|
|
5342
|
+
|
|
5343
|
+
|
|
5344
|
+
|
|
5345
|
+
|
|
4942
5346
|
|
|
4943
5347
|
|
|
4944
5348
|
|
|
@@ -5003,6 +5407,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5003
5407
|
|
|
5004
5408
|
|
|
5005
5409
|
|
|
5410
|
+
|
|
5411
|
+
|
|
5412
|
+
|
|
5413
|
+
|
|
5414
|
+
|
|
5415
|
+
|
|
5416
|
+
|
|
5417
|
+
|
|
5006
5418
|
|
|
5007
5419
|
|
|
5008
5420
|
|
|
@@ -5049,6 +5461,14 @@ var _UndirectedGraph = class _UndirectedGraph extends AbstractGraph {
|
|
|
5049
5461
|
|
|
5050
5462
|
|
|
5051
5463
|
|
|
5464
|
+
|
|
5465
|
+
|
|
5466
|
+
|
|
5467
|
+
|
|
5468
|
+
|
|
5469
|
+
|
|
5470
|
+
|
|
5471
|
+
|
|
5052
5472
|
|
|
5053
5473
|
|
|
5054
5474
|
|