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/queue.mjs
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
|
+
// src/common/error.ts
|
|
5
|
+
function raise(ErrorClass, message) {
|
|
6
|
+
throw new ErrorClass(message);
|
|
7
|
+
}
|
|
8
|
+
__name(raise, "raise");
|
|
9
|
+
|
|
4
10
|
// src/data-structures/base/iterable-element-base.ts
|
|
5
11
|
var IterableElementBase = class {
|
|
6
12
|
static {
|
|
@@ -19,7 +25,7 @@ var IterableElementBase = class {
|
|
|
19
25
|
if (options) {
|
|
20
26
|
const { toElementFn } = options;
|
|
21
27
|
if (typeof toElementFn === "function") this._toElementFn = toElementFn;
|
|
22
|
-
else if (toElementFn)
|
|
28
|
+
else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
|
|
23
29
|
}
|
|
24
30
|
}
|
|
25
31
|
/**
|
|
@@ -182,7 +188,7 @@ var IterableElementBase = class {
|
|
|
182
188
|
acc = initialValue;
|
|
183
189
|
} else {
|
|
184
190
|
const first = iter.next();
|
|
185
|
-
if (first.done)
|
|
191
|
+
if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
|
|
186
192
|
acc = first.value;
|
|
187
193
|
index = 1;
|
|
188
194
|
}
|
|
@@ -749,6 +755,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
749
755
|
|
|
750
756
|
|
|
751
757
|
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
|
|
752
766
|
|
|
753
767
|
|
|
754
768
|
|
|
@@ -812,6 +826,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
812
826
|
|
|
813
827
|
|
|
814
828
|
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
|
|
834
|
+
|
|
835
|
+
|
|
836
|
+
|
|
815
837
|
|
|
816
838
|
|
|
817
839
|
|
|
@@ -880,6 +902,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
880
902
|
|
|
881
903
|
|
|
882
904
|
|
|
905
|
+
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
|
|
883
913
|
|
|
884
914
|
|
|
885
915
|
|
|
@@ -930,6 +960,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
930
960
|
|
|
931
961
|
|
|
932
962
|
|
|
963
|
+
|
|
964
|
+
|
|
965
|
+
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
|
|
970
|
+
|
|
933
971
|
|
|
934
972
|
|
|
935
973
|
|
|
@@ -1041,6 +1079,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1041
1079
|
|
|
1042
1080
|
|
|
1043
1081
|
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
|
|
1085
|
+
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
|
|
1089
|
+
|
|
1044
1090
|
|
|
1045
1091
|
|
|
1046
1092
|
|
|
@@ -1096,6 +1142,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1096
1142
|
|
|
1097
1143
|
|
|
1098
1144
|
|
|
1145
|
+
|
|
1146
|
+
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
|
|
1099
1153
|
|
|
1100
1154
|
|
|
1101
1155
|
|
|
@@ -1140,6 +1194,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1140
1194
|
|
|
1141
1195
|
|
|
1142
1196
|
|
|
1197
|
+
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1143
1205
|
|
|
1144
1206
|
|
|
1145
1207
|
|
|
@@ -1190,6 +1252,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1190
1252
|
|
|
1191
1253
|
|
|
1192
1254
|
|
|
1255
|
+
|
|
1256
|
+
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
|
|
1193
1263
|
|
|
1194
1264
|
|
|
1195
1265
|
|
|
@@ -1245,6 +1315,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1245
1315
|
|
|
1246
1316
|
|
|
1247
1317
|
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
|
|
1248
1326
|
|
|
1249
1327
|
|
|
1250
1328
|
|
|
@@ -1308,6 +1386,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1308
1386
|
|
|
1309
1387
|
|
|
1310
1388
|
|
|
1389
|
+
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
|
|
1396
|
+
|
|
1311
1397
|
|
|
1312
1398
|
|
|
1313
1399
|
|
|
@@ -1348,6 +1434,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1348
1434
|
|
|
1349
1435
|
|
|
1350
1436
|
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
|
|
1442
|
+
|
|
1443
|
+
|
|
1444
|
+
|
|
1351
1445
|
|
|
1352
1446
|
|
|
1353
1447
|
|
|
@@ -1394,6 +1488,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1394
1488
|
|
|
1395
1489
|
|
|
1396
1490
|
|
|
1491
|
+
|
|
1492
|
+
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
|
|
1397
1499
|
|
|
1398
1500
|
|
|
1399
1501
|
|
|
@@ -1606,6 +1708,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1606
1708
|
|
|
1607
1709
|
|
|
1608
1710
|
|
|
1711
|
+
|
|
1712
|
+
|
|
1713
|
+
|
|
1714
|
+
|
|
1715
|
+
|
|
1716
|
+
|
|
1717
|
+
|
|
1718
|
+
|
|
1609
1719
|
|
|
1610
1720
|
|
|
1611
1721
|
|
|
@@ -1656,6 +1766,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1656
1766
|
|
|
1657
1767
|
|
|
1658
1768
|
|
|
1769
|
+
|
|
1770
|
+
|
|
1771
|
+
|
|
1772
|
+
|
|
1773
|
+
|
|
1774
|
+
|
|
1775
|
+
|
|
1776
|
+
|
|
1659
1777
|
|
|
1660
1778
|
|
|
1661
1779
|
|
|
@@ -1734,6 +1852,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1734
1852
|
|
|
1735
1853
|
|
|
1736
1854
|
|
|
1855
|
+
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
|
|
1859
|
+
|
|
1860
|
+
|
|
1861
|
+
|
|
1862
|
+
|
|
1737
1863
|
|
|
1738
1864
|
|
|
1739
1865
|
|
|
@@ -1965,6 +2091,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1965
2091
|
|
|
1966
2092
|
|
|
1967
2093
|
|
|
2094
|
+
|
|
2095
|
+
|
|
2096
|
+
|
|
2097
|
+
|
|
2098
|
+
|
|
2099
|
+
|
|
2100
|
+
|
|
2101
|
+
|
|
1968
2102
|
|
|
1969
2103
|
|
|
1970
2104
|
|
|
@@ -2011,6 +2145,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2011
2145
|
|
|
2012
2146
|
|
|
2013
2147
|
|
|
2148
|
+
|
|
2149
|
+
|
|
2150
|
+
|
|
2151
|
+
|
|
2152
|
+
|
|
2153
|
+
|
|
2154
|
+
|
|
2155
|
+
|
|
2014
2156
|
|
|
2015
2157
|
|
|
2016
2158
|
|
|
@@ -2029,6 +2171,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2029
2171
|
get first() {
|
|
2030
2172
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
2031
2173
|
}
|
|
2174
|
+
/**
|
|
2175
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2176
|
+
* @remarks Time O(1), Space O(1)
|
|
2177
|
+
* @returns Front element or undefined.
|
|
2178
|
+
*/
|
|
2179
|
+
peek() {
|
|
2180
|
+
return this.first;
|
|
2181
|
+
}
|
|
2032
2182
|
/**
|
|
2033
2183
|
* Get the last element (back) without removing it.
|
|
2034
2184
|
* @remarks Time O(1), Space O(1)
|
|
@@ -2073,6 +2223,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2073
2223
|
|
|
2074
2224
|
|
|
2075
2225
|
|
|
2226
|
+
|
|
2227
|
+
|
|
2228
|
+
|
|
2229
|
+
|
|
2230
|
+
|
|
2231
|
+
|
|
2232
|
+
|
|
2233
|
+
|
|
2076
2234
|
|
|
2077
2235
|
|
|
2078
2236
|
|
|
@@ -2131,6 +2289,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2131
2289
|
|
|
2132
2290
|
|
|
2133
2291
|
|
|
2292
|
+
|
|
2293
|
+
|
|
2294
|
+
|
|
2295
|
+
|
|
2296
|
+
|
|
2297
|
+
|
|
2298
|
+
|
|
2299
|
+
|
|
2134
2300
|
|
|
2135
2301
|
|
|
2136
2302
|
|
|
@@ -2196,6 +2362,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2196
2362
|
|
|
2197
2363
|
|
|
2198
2364
|
|
|
2365
|
+
|
|
2366
|
+
|
|
2367
|
+
|
|
2368
|
+
|
|
2369
|
+
|
|
2370
|
+
|
|
2371
|
+
|
|
2372
|
+
|
|
2199
2373
|
|
|
2200
2374
|
|
|
2201
2375
|
|
|
@@ -2251,6 +2425,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2251
2425
|
|
|
2252
2426
|
|
|
2253
2427
|
|
|
2428
|
+
|
|
2429
|
+
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
|
|
2433
|
+
|
|
2434
|
+
|
|
2435
|
+
|
|
2254
2436
|
|
|
2255
2437
|
|
|
2256
2438
|
|
|
@@ -2299,6 +2481,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2299
2481
|
|
|
2300
2482
|
|
|
2301
2483
|
|
|
2484
|
+
|
|
2485
|
+
|
|
2486
|
+
|
|
2487
|
+
|
|
2488
|
+
|
|
2489
|
+
|
|
2490
|
+
|
|
2491
|
+
|
|
2302
2492
|
|
|
2303
2493
|
|
|
2304
2494
|
|
|
@@ -2354,6 +2544,21 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2354
2544
|
this._elements[this._offset + index] = newElement;
|
|
2355
2545
|
return true;
|
|
2356
2546
|
}
|
|
2547
|
+
/**
|
|
2548
|
+
* Delete the first element that satisfies a predicate.
|
|
2549
|
+
* @remarks Time O(N), Space O(N)
|
|
2550
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2551
|
+
* @returns True if a match was removed.
|
|
2552
|
+
*/
|
|
2553
|
+
deleteWhere(predicate) {
|
|
2554
|
+
for (let i = 0; i < this.length; i++) {
|
|
2555
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2556
|
+
this.deleteAt(i);
|
|
2557
|
+
return true;
|
|
2558
|
+
}
|
|
2559
|
+
}
|
|
2560
|
+
return false;
|
|
2561
|
+
}
|
|
2357
2562
|
/**
|
|
2358
2563
|
* Reverse the queue in-place by compacting then reversing.
|
|
2359
2564
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2388,6 +2593,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2388
2593
|
|
|
2389
2594
|
|
|
2390
2595
|
|
|
2596
|
+
|
|
2597
|
+
|
|
2598
|
+
|
|
2599
|
+
|
|
2600
|
+
|
|
2601
|
+
|
|
2602
|
+
|
|
2603
|
+
|
|
2391
2604
|
|
|
2392
2605
|
|
|
2393
2606
|
|
|
@@ -2430,6 +2643,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2430
2643
|
|
|
2431
2644
|
|
|
2432
2645
|
|
|
2646
|
+
|
|
2647
|
+
|
|
2648
|
+
|
|
2649
|
+
|
|
2650
|
+
|
|
2651
|
+
|
|
2652
|
+
|
|
2653
|
+
|
|
2433
2654
|
|
|
2434
2655
|
|
|
2435
2656
|
|
|
@@ -2495,6 +2716,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2495
2716
|
|
|
2496
2717
|
|
|
2497
2718
|
|
|
2719
|
+
|
|
2720
|
+
|
|
2721
|
+
|
|
2722
|
+
|
|
2723
|
+
|
|
2724
|
+
|
|
2725
|
+
|
|
2726
|
+
|
|
2498
2727
|
|
|
2499
2728
|
|
|
2500
2729
|
|
|
@@ -2544,6 +2773,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2544
2773
|
|
|
2545
2774
|
|
|
2546
2775
|
|
|
2776
|
+
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
|
|
2780
|
+
|
|
2781
|
+
|
|
2782
|
+
|
|
2783
|
+
|
|
2547
2784
|
|
|
2548
2785
|
|
|
2549
2786
|
|
|
@@ -2597,6 +2834,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2597
2834
|
|
|
2598
2835
|
|
|
2599
2836
|
|
|
2837
|
+
|
|
2838
|
+
|
|
2839
|
+
|
|
2840
|
+
|
|
2841
|
+
|
|
2842
|
+
|
|
2843
|
+
|
|
2844
|
+
|
|
2600
2845
|
|
|
2601
2846
|
|
|
2602
2847
|
|
|
@@ -2872,6 +3117,13 @@ var Deque = class extends LinearBase {
|
|
|
2872
3117
|
|
|
2873
3118
|
|
|
2874
3119
|
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
2875
3127
|
|
|
2876
3128
|
|
|
2877
3129
|
|
|
@@ -2893,6 +3145,31 @@ var Deque = class extends LinearBase {
|
|
|
2893
3145
|
* console.log(last); // 50;
|
|
2894
3146
|
*
|
|
2895
3147
|
* // Length unchanged
|
|
3148
|
+
* console.log(deque.length); // 5;
|
|
3149
|
+
*/
|
|
3150
|
+
/**
|
|
3151
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
3152
|
+
* @remarks Time O(1), Space O(1)
|
|
3153
|
+
* @returns Front element or undefined.
|
|
3154
|
+
*/
|
|
3155
|
+
peek() {
|
|
3156
|
+
return this.first;
|
|
3157
|
+
}
|
|
3158
|
+
/**
|
|
3159
|
+
* Deque peek at both ends
|
|
3160
|
+
* @example
|
|
3161
|
+
* // Deque peek at both ends
|
|
3162
|
+
* const deque = new Deque<number>([10, 20, 30, 40, 50]);
|
|
3163
|
+
*
|
|
3164
|
+
* // Get first element without removing
|
|
3165
|
+
* const first = deque.at(0);
|
|
3166
|
+
* console.log(first); // 10;
|
|
3167
|
+
*
|
|
3168
|
+
* // Get last element without removing
|
|
3169
|
+
* const last = deque.at(deque.length - 1);
|
|
3170
|
+
* console.log(last); // 50;
|
|
3171
|
+
*
|
|
3172
|
+
* // Length unchanged
|
|
2896
3173
|
* console.log(deque.length); // 5;
|
|
2897
3174
|
*/
|
|
2898
3175
|
get first() {
|
|
@@ -2925,6 +3202,14 @@ var Deque = class extends LinearBase {
|
|
|
2925
3202
|
|
|
2926
3203
|
|
|
2927
3204
|
|
|
3205
|
+
|
|
3206
|
+
|
|
3207
|
+
|
|
3208
|
+
|
|
3209
|
+
|
|
3210
|
+
|
|
3211
|
+
|
|
3212
|
+
|
|
2928
3213
|
|
|
2929
3214
|
|
|
2930
3215
|
|
|
@@ -2984,6 +3269,14 @@ var Deque = class extends LinearBase {
|
|
|
2984
3269
|
|
|
2985
3270
|
|
|
2986
3271
|
|
|
3272
|
+
|
|
3273
|
+
|
|
3274
|
+
|
|
3275
|
+
|
|
3276
|
+
|
|
3277
|
+
|
|
3278
|
+
|
|
3279
|
+
|
|
2987
3280
|
|
|
2988
3281
|
|
|
2989
3282
|
|
|
@@ -3056,6 +3349,14 @@ var Deque = class extends LinearBase {
|
|
|
3056
3349
|
|
|
3057
3350
|
|
|
3058
3351
|
|
|
3352
|
+
|
|
3353
|
+
|
|
3354
|
+
|
|
3355
|
+
|
|
3356
|
+
|
|
3357
|
+
|
|
3358
|
+
|
|
3359
|
+
|
|
3059
3360
|
|
|
3060
3361
|
|
|
3061
3362
|
|
|
@@ -3115,6 +3416,14 @@ var Deque = class extends LinearBase {
|
|
|
3115
3416
|
|
|
3116
3417
|
|
|
3117
3418
|
|
|
3419
|
+
|
|
3420
|
+
|
|
3421
|
+
|
|
3422
|
+
|
|
3423
|
+
|
|
3424
|
+
|
|
3425
|
+
|
|
3426
|
+
|
|
3118
3427
|
|
|
3119
3428
|
|
|
3120
3429
|
|
|
@@ -3175,6 +3484,14 @@ var Deque = class extends LinearBase {
|
|
|
3175
3484
|
|
|
3176
3485
|
|
|
3177
3486
|
|
|
3487
|
+
|
|
3488
|
+
|
|
3489
|
+
|
|
3490
|
+
|
|
3491
|
+
|
|
3492
|
+
|
|
3493
|
+
|
|
3494
|
+
|
|
3178
3495
|
|
|
3179
3496
|
|
|
3180
3497
|
|
|
@@ -3276,6 +3593,14 @@ var Deque = class extends LinearBase {
|
|
|
3276
3593
|
|
|
3277
3594
|
|
|
3278
3595
|
|
|
3596
|
+
|
|
3597
|
+
|
|
3598
|
+
|
|
3599
|
+
|
|
3600
|
+
|
|
3601
|
+
|
|
3602
|
+
|
|
3603
|
+
|
|
3279
3604
|
|
|
3280
3605
|
|
|
3281
3606
|
|
|
@@ -3317,6 +3642,14 @@ var Deque = class extends LinearBase {
|
|
|
3317
3642
|
|
|
3318
3643
|
|
|
3319
3644
|
|
|
3645
|
+
|
|
3646
|
+
|
|
3647
|
+
|
|
3648
|
+
|
|
3649
|
+
|
|
3650
|
+
|
|
3651
|
+
|
|
3652
|
+
|
|
3320
3653
|
|
|
3321
3654
|
|
|
3322
3655
|
|
|
@@ -3362,6 +3695,14 @@ var Deque = class extends LinearBase {
|
|
|
3362
3695
|
|
|
3363
3696
|
|
|
3364
3697
|
|
|
3698
|
+
|
|
3699
|
+
|
|
3700
|
+
|
|
3701
|
+
|
|
3702
|
+
|
|
3703
|
+
|
|
3704
|
+
|
|
3705
|
+
|
|
3365
3706
|
|
|
3366
3707
|
|
|
3367
3708
|
|
|
@@ -3558,6 +3899,14 @@ var Deque = class extends LinearBase {
|
|
|
3558
3899
|
|
|
3559
3900
|
|
|
3560
3901
|
|
|
3902
|
+
|
|
3903
|
+
|
|
3904
|
+
|
|
3905
|
+
|
|
3906
|
+
|
|
3907
|
+
|
|
3908
|
+
|
|
3909
|
+
|
|
3561
3910
|
|
|
3562
3911
|
|
|
3563
3912
|
|
|
@@ -3641,6 +3990,14 @@ var Deque = class extends LinearBase {
|
|
|
3641
3990
|
|
|
3642
3991
|
|
|
3643
3992
|
|
|
3993
|
+
|
|
3994
|
+
|
|
3995
|
+
|
|
3996
|
+
|
|
3997
|
+
|
|
3998
|
+
|
|
3999
|
+
|
|
4000
|
+
|
|
3644
4001
|
|
|
3645
4002
|
|
|
3646
4003
|
|
|
@@ -3749,6 +4106,14 @@ var Deque = class extends LinearBase {
|
|
|
3749
4106
|
|
|
3750
4107
|
|
|
3751
4108
|
|
|
4109
|
+
|
|
4110
|
+
|
|
4111
|
+
|
|
4112
|
+
|
|
4113
|
+
|
|
4114
|
+
|
|
4115
|
+
|
|
4116
|
+
|
|
3752
4117
|
|
|
3753
4118
|
|
|
3754
4119
|
|
|
@@ -3816,6 +4181,14 @@ var Deque = class extends LinearBase {
|
|
|
3816
4181
|
|
|
3817
4182
|
|
|
3818
4183
|
|
|
4184
|
+
|
|
4185
|
+
|
|
4186
|
+
|
|
4187
|
+
|
|
4188
|
+
|
|
4189
|
+
|
|
4190
|
+
|
|
4191
|
+
|
|
3819
4192
|
|
|
3820
4193
|
|
|
3821
4194
|
|
|
@@ -3866,6 +4239,14 @@ var Deque = class extends LinearBase {
|
|
|
3866
4239
|
|
|
3867
4240
|
|
|
3868
4241
|
|
|
4242
|
+
|
|
4243
|
+
|
|
4244
|
+
|
|
4245
|
+
|
|
4246
|
+
|
|
4247
|
+
|
|
4248
|
+
|
|
4249
|
+
|
|
3869
4250
|
|
|
3870
4251
|
|
|
3871
4252
|
|
|
@@ -3936,6 +4317,14 @@ var Deque = class extends LinearBase {
|
|
|
3936
4317
|
|
|
3937
4318
|
|
|
3938
4319
|
|
|
4320
|
+
|
|
4321
|
+
|
|
4322
|
+
|
|
4323
|
+
|
|
4324
|
+
|
|
4325
|
+
|
|
4326
|
+
|
|
4327
|
+
|
|
3939
4328
|
|
|
3940
4329
|
|
|
3941
4330
|
|