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/cjs/queue.cjs
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
5
|
|
|
6
|
+
// src/common/error.ts
|
|
7
|
+
function raise(ErrorClass, message) {
|
|
8
|
+
throw new ErrorClass(message);
|
|
9
|
+
}
|
|
10
|
+
__name(raise, "raise");
|
|
11
|
+
|
|
6
12
|
// src/data-structures/base/iterable-element-base.ts
|
|
7
13
|
var IterableElementBase = class {
|
|
8
14
|
static {
|
|
@@ -21,7 +27,7 @@ var IterableElementBase = class {
|
|
|
21
27
|
if (options) {
|
|
22
28
|
const { toElementFn } = options;
|
|
23
29
|
if (typeof toElementFn === "function") this._toElementFn = toElementFn;
|
|
24
|
-
else if (toElementFn)
|
|
30
|
+
else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
|
|
25
31
|
}
|
|
26
32
|
}
|
|
27
33
|
/**
|
|
@@ -184,7 +190,7 @@ var IterableElementBase = class {
|
|
|
184
190
|
acc = initialValue;
|
|
185
191
|
} else {
|
|
186
192
|
const first = iter.next();
|
|
187
|
-
if (first.done)
|
|
193
|
+
if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
|
|
188
194
|
acc = first.value;
|
|
189
195
|
index = 1;
|
|
190
196
|
}
|
|
@@ -751,6 +757,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
751
757
|
|
|
752
758
|
|
|
753
759
|
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
|
|
767
|
+
|
|
754
768
|
|
|
755
769
|
|
|
756
770
|
|
|
@@ -814,6 +828,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
814
828
|
|
|
815
829
|
|
|
816
830
|
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
|
|
834
|
+
|
|
835
|
+
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
|
|
817
839
|
|
|
818
840
|
|
|
819
841
|
|
|
@@ -882,6 +904,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
882
904
|
|
|
883
905
|
|
|
884
906
|
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
|
|
885
915
|
|
|
886
916
|
|
|
887
917
|
|
|
@@ -932,6 +962,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
932
962
|
|
|
933
963
|
|
|
934
964
|
|
|
965
|
+
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
|
|
935
973
|
|
|
936
974
|
|
|
937
975
|
|
|
@@ -1043,6 +1081,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1043
1081
|
|
|
1044
1082
|
|
|
1045
1083
|
|
|
1084
|
+
|
|
1085
|
+
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
|
|
1089
|
+
|
|
1090
|
+
|
|
1091
|
+
|
|
1046
1092
|
|
|
1047
1093
|
|
|
1048
1094
|
|
|
@@ -1098,6 +1144,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1098
1144
|
|
|
1099
1145
|
|
|
1100
1146
|
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
|
|
1153
|
+
|
|
1154
|
+
|
|
1101
1155
|
|
|
1102
1156
|
|
|
1103
1157
|
|
|
@@ -1142,6 +1196,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1142
1196
|
|
|
1143
1197
|
|
|
1144
1198
|
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
|
|
1145
1207
|
|
|
1146
1208
|
|
|
1147
1209
|
|
|
@@ -1192,6 +1254,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1192
1254
|
|
|
1193
1255
|
|
|
1194
1256
|
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
|
|
1195
1265
|
|
|
1196
1266
|
|
|
1197
1267
|
|
|
@@ -1247,6 +1317,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1247
1317
|
|
|
1248
1318
|
|
|
1249
1319
|
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
|
+
|
|
1327
|
+
|
|
1250
1328
|
|
|
1251
1329
|
|
|
1252
1330
|
|
|
@@ -1310,6 +1388,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1310
1388
|
|
|
1311
1389
|
|
|
1312
1390
|
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
|
|
1398
|
+
|
|
1313
1399
|
|
|
1314
1400
|
|
|
1315
1401
|
|
|
@@ -1350,6 +1436,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1350
1436
|
|
|
1351
1437
|
|
|
1352
1438
|
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
|
|
1442
|
+
|
|
1443
|
+
|
|
1444
|
+
|
|
1445
|
+
|
|
1446
|
+
|
|
1353
1447
|
|
|
1354
1448
|
|
|
1355
1449
|
|
|
@@ -1396,6 +1490,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1396
1490
|
|
|
1397
1491
|
|
|
1398
1492
|
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
|
|
1499
|
+
|
|
1500
|
+
|
|
1399
1501
|
|
|
1400
1502
|
|
|
1401
1503
|
|
|
@@ -1608,6 +1710,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1608
1710
|
|
|
1609
1711
|
|
|
1610
1712
|
|
|
1713
|
+
|
|
1714
|
+
|
|
1715
|
+
|
|
1716
|
+
|
|
1717
|
+
|
|
1718
|
+
|
|
1719
|
+
|
|
1720
|
+
|
|
1611
1721
|
|
|
1612
1722
|
|
|
1613
1723
|
|
|
@@ -1658,6 +1768,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1658
1768
|
|
|
1659
1769
|
|
|
1660
1770
|
|
|
1771
|
+
|
|
1772
|
+
|
|
1773
|
+
|
|
1774
|
+
|
|
1775
|
+
|
|
1776
|
+
|
|
1777
|
+
|
|
1778
|
+
|
|
1661
1779
|
|
|
1662
1780
|
|
|
1663
1781
|
|
|
@@ -1736,6 +1854,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1736
1854
|
|
|
1737
1855
|
|
|
1738
1856
|
|
|
1857
|
+
|
|
1858
|
+
|
|
1859
|
+
|
|
1860
|
+
|
|
1861
|
+
|
|
1862
|
+
|
|
1863
|
+
|
|
1864
|
+
|
|
1739
1865
|
|
|
1740
1866
|
|
|
1741
1867
|
|
|
@@ -1967,6 +2093,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
1967
2093
|
|
|
1968
2094
|
|
|
1969
2095
|
|
|
2096
|
+
|
|
2097
|
+
|
|
2098
|
+
|
|
2099
|
+
|
|
2100
|
+
|
|
2101
|
+
|
|
2102
|
+
|
|
2103
|
+
|
|
1970
2104
|
|
|
1971
2105
|
|
|
1972
2106
|
|
|
@@ -2013,6 +2147,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2013
2147
|
|
|
2014
2148
|
|
|
2015
2149
|
|
|
2150
|
+
|
|
2151
|
+
|
|
2152
|
+
|
|
2153
|
+
|
|
2154
|
+
|
|
2155
|
+
|
|
2156
|
+
|
|
2157
|
+
|
|
2016
2158
|
|
|
2017
2159
|
|
|
2018
2160
|
|
|
@@ -2031,6 +2173,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2031
2173
|
get first() {
|
|
2032
2174
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
2033
2175
|
}
|
|
2176
|
+
/**
|
|
2177
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2178
|
+
* @remarks Time O(1), Space O(1)
|
|
2179
|
+
* @returns Front element or undefined.
|
|
2180
|
+
*/
|
|
2181
|
+
peek() {
|
|
2182
|
+
return this.first;
|
|
2183
|
+
}
|
|
2034
2184
|
/**
|
|
2035
2185
|
* Get the last element (back) without removing it.
|
|
2036
2186
|
* @remarks Time O(1), Space O(1)
|
|
@@ -2075,6 +2225,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2075
2225
|
|
|
2076
2226
|
|
|
2077
2227
|
|
|
2228
|
+
|
|
2229
|
+
|
|
2230
|
+
|
|
2231
|
+
|
|
2232
|
+
|
|
2233
|
+
|
|
2234
|
+
|
|
2235
|
+
|
|
2078
2236
|
|
|
2079
2237
|
|
|
2080
2238
|
|
|
@@ -2133,6 +2291,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2133
2291
|
|
|
2134
2292
|
|
|
2135
2293
|
|
|
2294
|
+
|
|
2295
|
+
|
|
2296
|
+
|
|
2297
|
+
|
|
2298
|
+
|
|
2299
|
+
|
|
2300
|
+
|
|
2301
|
+
|
|
2136
2302
|
|
|
2137
2303
|
|
|
2138
2304
|
|
|
@@ -2198,6 +2364,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2198
2364
|
|
|
2199
2365
|
|
|
2200
2366
|
|
|
2367
|
+
|
|
2368
|
+
|
|
2369
|
+
|
|
2370
|
+
|
|
2371
|
+
|
|
2372
|
+
|
|
2373
|
+
|
|
2374
|
+
|
|
2201
2375
|
|
|
2202
2376
|
|
|
2203
2377
|
|
|
@@ -2253,6 +2427,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2253
2427
|
|
|
2254
2428
|
|
|
2255
2429
|
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
|
|
2433
|
+
|
|
2434
|
+
|
|
2435
|
+
|
|
2436
|
+
|
|
2437
|
+
|
|
2256
2438
|
|
|
2257
2439
|
|
|
2258
2440
|
|
|
@@ -2301,6 +2483,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2301
2483
|
|
|
2302
2484
|
|
|
2303
2485
|
|
|
2486
|
+
|
|
2487
|
+
|
|
2488
|
+
|
|
2489
|
+
|
|
2490
|
+
|
|
2491
|
+
|
|
2492
|
+
|
|
2493
|
+
|
|
2304
2494
|
|
|
2305
2495
|
|
|
2306
2496
|
|
|
@@ -2356,6 +2546,21 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2356
2546
|
this._elements[this._offset + index] = newElement;
|
|
2357
2547
|
return true;
|
|
2358
2548
|
}
|
|
2549
|
+
/**
|
|
2550
|
+
* Delete the first element that satisfies a predicate.
|
|
2551
|
+
* @remarks Time O(N), Space O(N)
|
|
2552
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2553
|
+
* @returns True if a match was removed.
|
|
2554
|
+
*/
|
|
2555
|
+
deleteWhere(predicate) {
|
|
2556
|
+
for (let i = 0; i < this.length; i++) {
|
|
2557
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2558
|
+
this.deleteAt(i);
|
|
2559
|
+
return true;
|
|
2560
|
+
}
|
|
2561
|
+
}
|
|
2562
|
+
return false;
|
|
2563
|
+
}
|
|
2359
2564
|
/**
|
|
2360
2565
|
* Reverse the queue in-place by compacting then reversing.
|
|
2361
2566
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2390,6 +2595,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2390
2595
|
|
|
2391
2596
|
|
|
2392
2597
|
|
|
2598
|
+
|
|
2599
|
+
|
|
2600
|
+
|
|
2601
|
+
|
|
2602
|
+
|
|
2603
|
+
|
|
2604
|
+
|
|
2605
|
+
|
|
2393
2606
|
|
|
2394
2607
|
|
|
2395
2608
|
|
|
@@ -2432,6 +2645,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2432
2645
|
|
|
2433
2646
|
|
|
2434
2647
|
|
|
2648
|
+
|
|
2649
|
+
|
|
2650
|
+
|
|
2651
|
+
|
|
2652
|
+
|
|
2653
|
+
|
|
2654
|
+
|
|
2655
|
+
|
|
2435
2656
|
|
|
2436
2657
|
|
|
2437
2658
|
|
|
@@ -2497,6 +2718,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2497
2718
|
|
|
2498
2719
|
|
|
2499
2720
|
|
|
2721
|
+
|
|
2722
|
+
|
|
2723
|
+
|
|
2724
|
+
|
|
2725
|
+
|
|
2726
|
+
|
|
2727
|
+
|
|
2728
|
+
|
|
2500
2729
|
|
|
2501
2730
|
|
|
2502
2731
|
|
|
@@ -2546,6 +2775,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2546
2775
|
|
|
2547
2776
|
|
|
2548
2777
|
|
|
2778
|
+
|
|
2779
|
+
|
|
2780
|
+
|
|
2781
|
+
|
|
2782
|
+
|
|
2783
|
+
|
|
2784
|
+
|
|
2785
|
+
|
|
2549
2786
|
|
|
2550
2787
|
|
|
2551
2788
|
|
|
@@ -2599,6 +2836,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2599
2836
|
|
|
2600
2837
|
|
|
2601
2838
|
|
|
2839
|
+
|
|
2840
|
+
|
|
2841
|
+
|
|
2842
|
+
|
|
2843
|
+
|
|
2844
|
+
|
|
2845
|
+
|
|
2846
|
+
|
|
2602
2847
|
|
|
2603
2848
|
|
|
2604
2849
|
|
|
@@ -2874,6 +3119,13 @@ var Deque = class extends LinearBase {
|
|
|
2874
3119
|
|
|
2875
3120
|
|
|
2876
3121
|
|
|
3122
|
+
|
|
3123
|
+
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
3127
|
+
|
|
3128
|
+
|
|
2877
3129
|
|
|
2878
3130
|
|
|
2879
3131
|
|
|
@@ -2895,6 +3147,31 @@ var Deque = class extends LinearBase {
|
|
|
2895
3147
|
* console.log(last); // 50;
|
|
2896
3148
|
*
|
|
2897
3149
|
* // Length unchanged
|
|
3150
|
+
* console.log(deque.length); // 5;
|
|
3151
|
+
*/
|
|
3152
|
+
/**
|
|
3153
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
3154
|
+
* @remarks Time O(1), Space O(1)
|
|
3155
|
+
* @returns Front element or undefined.
|
|
3156
|
+
*/
|
|
3157
|
+
peek() {
|
|
3158
|
+
return this.first;
|
|
3159
|
+
}
|
|
3160
|
+
/**
|
|
3161
|
+
* Deque peek at both ends
|
|
3162
|
+
* @example
|
|
3163
|
+
* // Deque peek at both ends
|
|
3164
|
+
* const deque = new Deque<number>([10, 20, 30, 40, 50]);
|
|
3165
|
+
*
|
|
3166
|
+
* // Get first element without removing
|
|
3167
|
+
* const first = deque.at(0);
|
|
3168
|
+
* console.log(first); // 10;
|
|
3169
|
+
*
|
|
3170
|
+
* // Get last element without removing
|
|
3171
|
+
* const last = deque.at(deque.length - 1);
|
|
3172
|
+
* console.log(last); // 50;
|
|
3173
|
+
*
|
|
3174
|
+
* // Length unchanged
|
|
2898
3175
|
* console.log(deque.length); // 5;
|
|
2899
3176
|
*/
|
|
2900
3177
|
get first() {
|
|
@@ -2927,6 +3204,14 @@ var Deque = class extends LinearBase {
|
|
|
2927
3204
|
|
|
2928
3205
|
|
|
2929
3206
|
|
|
3207
|
+
|
|
3208
|
+
|
|
3209
|
+
|
|
3210
|
+
|
|
3211
|
+
|
|
3212
|
+
|
|
3213
|
+
|
|
3214
|
+
|
|
2930
3215
|
|
|
2931
3216
|
|
|
2932
3217
|
|
|
@@ -2986,6 +3271,14 @@ var Deque = class extends LinearBase {
|
|
|
2986
3271
|
|
|
2987
3272
|
|
|
2988
3273
|
|
|
3274
|
+
|
|
3275
|
+
|
|
3276
|
+
|
|
3277
|
+
|
|
3278
|
+
|
|
3279
|
+
|
|
3280
|
+
|
|
3281
|
+
|
|
2989
3282
|
|
|
2990
3283
|
|
|
2991
3284
|
|
|
@@ -3058,6 +3351,14 @@ var Deque = class extends LinearBase {
|
|
|
3058
3351
|
|
|
3059
3352
|
|
|
3060
3353
|
|
|
3354
|
+
|
|
3355
|
+
|
|
3356
|
+
|
|
3357
|
+
|
|
3358
|
+
|
|
3359
|
+
|
|
3360
|
+
|
|
3361
|
+
|
|
3061
3362
|
|
|
3062
3363
|
|
|
3063
3364
|
|
|
@@ -3117,6 +3418,14 @@ var Deque = class extends LinearBase {
|
|
|
3117
3418
|
|
|
3118
3419
|
|
|
3119
3420
|
|
|
3421
|
+
|
|
3422
|
+
|
|
3423
|
+
|
|
3424
|
+
|
|
3425
|
+
|
|
3426
|
+
|
|
3427
|
+
|
|
3428
|
+
|
|
3120
3429
|
|
|
3121
3430
|
|
|
3122
3431
|
|
|
@@ -3177,6 +3486,14 @@ var Deque = class extends LinearBase {
|
|
|
3177
3486
|
|
|
3178
3487
|
|
|
3179
3488
|
|
|
3489
|
+
|
|
3490
|
+
|
|
3491
|
+
|
|
3492
|
+
|
|
3493
|
+
|
|
3494
|
+
|
|
3495
|
+
|
|
3496
|
+
|
|
3180
3497
|
|
|
3181
3498
|
|
|
3182
3499
|
|
|
@@ -3278,6 +3595,14 @@ var Deque = class extends LinearBase {
|
|
|
3278
3595
|
|
|
3279
3596
|
|
|
3280
3597
|
|
|
3598
|
+
|
|
3599
|
+
|
|
3600
|
+
|
|
3601
|
+
|
|
3602
|
+
|
|
3603
|
+
|
|
3604
|
+
|
|
3605
|
+
|
|
3281
3606
|
|
|
3282
3607
|
|
|
3283
3608
|
|
|
@@ -3319,6 +3644,14 @@ var Deque = class extends LinearBase {
|
|
|
3319
3644
|
|
|
3320
3645
|
|
|
3321
3646
|
|
|
3647
|
+
|
|
3648
|
+
|
|
3649
|
+
|
|
3650
|
+
|
|
3651
|
+
|
|
3652
|
+
|
|
3653
|
+
|
|
3654
|
+
|
|
3322
3655
|
|
|
3323
3656
|
|
|
3324
3657
|
|
|
@@ -3364,6 +3697,14 @@ var Deque = class extends LinearBase {
|
|
|
3364
3697
|
|
|
3365
3698
|
|
|
3366
3699
|
|
|
3700
|
+
|
|
3701
|
+
|
|
3702
|
+
|
|
3703
|
+
|
|
3704
|
+
|
|
3705
|
+
|
|
3706
|
+
|
|
3707
|
+
|
|
3367
3708
|
|
|
3368
3709
|
|
|
3369
3710
|
|
|
@@ -3560,6 +3901,14 @@ var Deque = class extends LinearBase {
|
|
|
3560
3901
|
|
|
3561
3902
|
|
|
3562
3903
|
|
|
3904
|
+
|
|
3905
|
+
|
|
3906
|
+
|
|
3907
|
+
|
|
3908
|
+
|
|
3909
|
+
|
|
3910
|
+
|
|
3911
|
+
|
|
3563
3912
|
|
|
3564
3913
|
|
|
3565
3914
|
|
|
@@ -3643,6 +3992,14 @@ var Deque = class extends LinearBase {
|
|
|
3643
3992
|
|
|
3644
3993
|
|
|
3645
3994
|
|
|
3995
|
+
|
|
3996
|
+
|
|
3997
|
+
|
|
3998
|
+
|
|
3999
|
+
|
|
4000
|
+
|
|
4001
|
+
|
|
4002
|
+
|
|
3646
4003
|
|
|
3647
4004
|
|
|
3648
4005
|
|
|
@@ -3751,6 +4108,14 @@ var Deque = class extends LinearBase {
|
|
|
3751
4108
|
|
|
3752
4109
|
|
|
3753
4110
|
|
|
4111
|
+
|
|
4112
|
+
|
|
4113
|
+
|
|
4114
|
+
|
|
4115
|
+
|
|
4116
|
+
|
|
4117
|
+
|
|
4118
|
+
|
|
3754
4119
|
|
|
3755
4120
|
|
|
3756
4121
|
|
|
@@ -3818,6 +4183,14 @@ var Deque = class extends LinearBase {
|
|
|
3818
4183
|
|
|
3819
4184
|
|
|
3820
4185
|
|
|
4186
|
+
|
|
4187
|
+
|
|
4188
|
+
|
|
4189
|
+
|
|
4190
|
+
|
|
4191
|
+
|
|
4192
|
+
|
|
4193
|
+
|
|
3821
4194
|
|
|
3822
4195
|
|
|
3823
4196
|
|
|
@@ -3868,6 +4241,14 @@ var Deque = class extends LinearBase {
|
|
|
3868
4241
|
|
|
3869
4242
|
|
|
3870
4243
|
|
|
4244
|
+
|
|
4245
|
+
|
|
4246
|
+
|
|
4247
|
+
|
|
4248
|
+
|
|
4249
|
+
|
|
4250
|
+
|
|
4251
|
+
|
|
3871
4252
|
|
|
3872
4253
|
|
|
3873
4254
|
|
|
@@ -3938,6 +4319,14 @@ var Deque = class extends LinearBase {
|
|
|
3938
4319
|
|
|
3939
4320
|
|
|
3940
4321
|
|
|
4322
|
+
|
|
4323
|
+
|
|
4324
|
+
|
|
4325
|
+
|
|
4326
|
+
|
|
4327
|
+
|
|
4328
|
+
|
|
4329
|
+
|
|
3941
4330
|
|
|
3942
4331
|
|
|
3943
4332
|
|