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
|
@@ -3,6 +3,12 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
|
|
|
3
3
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
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 _IterableElementBase {
|
|
8
14
|
/**
|
|
@@ -25,7 +31,7 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
25
31
|
if (options) {
|
|
26
32
|
const { toElementFn } = options;
|
|
27
33
|
if (typeof toElementFn === "function") this._toElementFn = toElementFn;
|
|
28
|
-
else if (toElementFn)
|
|
34
|
+
else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
|
|
29
35
|
}
|
|
30
36
|
}
|
|
31
37
|
/**
|
|
@@ -181,7 +187,7 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
181
187
|
acc = initialValue;
|
|
182
188
|
} else {
|
|
183
189
|
const first = iter.next();
|
|
184
|
-
if (first.done)
|
|
190
|
+
if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
|
|
185
191
|
acc = first.value;
|
|
186
192
|
index = 1;
|
|
187
193
|
}
|
|
@@ -745,6 +751,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
745
751
|
|
|
746
752
|
|
|
747
753
|
|
|
754
|
+
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
|
|
748
762
|
|
|
749
763
|
|
|
750
764
|
|
|
@@ -808,6 +822,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
808
822
|
|
|
809
823
|
|
|
810
824
|
|
|
825
|
+
|
|
826
|
+
|
|
827
|
+
|
|
828
|
+
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
|
|
832
|
+
|
|
811
833
|
|
|
812
834
|
|
|
813
835
|
|
|
@@ -877,6 +899,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
877
899
|
|
|
878
900
|
|
|
879
901
|
|
|
902
|
+
|
|
903
|
+
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
|
|
880
910
|
|
|
881
911
|
|
|
882
912
|
|
|
@@ -927,6 +957,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
927
957
|
|
|
928
958
|
|
|
929
959
|
|
|
960
|
+
|
|
961
|
+
|
|
962
|
+
|
|
963
|
+
|
|
964
|
+
|
|
965
|
+
|
|
966
|
+
|
|
967
|
+
|
|
930
968
|
|
|
931
969
|
|
|
932
970
|
|
|
@@ -1038,6 +1076,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1038
1076
|
|
|
1039
1077
|
|
|
1040
1078
|
|
|
1079
|
+
|
|
1080
|
+
|
|
1081
|
+
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
|
|
1085
|
+
|
|
1086
|
+
|
|
1041
1087
|
|
|
1042
1088
|
|
|
1043
1089
|
|
|
@@ -1093,6 +1139,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1093
1139
|
|
|
1094
1140
|
|
|
1095
1141
|
|
|
1142
|
+
|
|
1143
|
+
|
|
1144
|
+
|
|
1145
|
+
|
|
1146
|
+
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
|
|
1096
1150
|
|
|
1097
1151
|
|
|
1098
1152
|
|
|
@@ -1137,6 +1191,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1137
1191
|
|
|
1138
1192
|
|
|
1139
1193
|
|
|
1194
|
+
|
|
1195
|
+
|
|
1196
|
+
|
|
1197
|
+
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
|
|
1140
1202
|
|
|
1141
1203
|
|
|
1142
1204
|
|
|
@@ -1187,6 +1249,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1187
1249
|
|
|
1188
1250
|
|
|
1189
1251
|
|
|
1252
|
+
|
|
1253
|
+
|
|
1254
|
+
|
|
1255
|
+
|
|
1256
|
+
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
|
|
1190
1260
|
|
|
1191
1261
|
|
|
1192
1262
|
|
|
@@ -1242,6 +1312,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1242
1312
|
|
|
1243
1313
|
|
|
1244
1314
|
|
|
1315
|
+
|
|
1316
|
+
|
|
1317
|
+
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
|
|
1245
1323
|
|
|
1246
1324
|
|
|
1247
1325
|
|
|
@@ -1305,6 +1383,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1305
1383
|
|
|
1306
1384
|
|
|
1307
1385
|
|
|
1386
|
+
|
|
1387
|
+
|
|
1388
|
+
|
|
1389
|
+
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
|
|
1308
1394
|
|
|
1309
1395
|
|
|
1310
1396
|
|
|
@@ -1345,6 +1431,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1345
1431
|
|
|
1346
1432
|
|
|
1347
1433
|
|
|
1434
|
+
|
|
1435
|
+
|
|
1436
|
+
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
|
|
1348
1442
|
|
|
1349
1443
|
|
|
1350
1444
|
|
|
@@ -1391,6 +1485,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1391
1485
|
|
|
1392
1486
|
|
|
1393
1487
|
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
|
|
1394
1496
|
|
|
1395
1497
|
|
|
1396
1498
|
|
|
@@ -1603,6 +1705,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1603
1705
|
|
|
1604
1706
|
|
|
1605
1707
|
|
|
1708
|
+
|
|
1709
|
+
|
|
1710
|
+
|
|
1711
|
+
|
|
1712
|
+
|
|
1713
|
+
|
|
1714
|
+
|
|
1715
|
+
|
|
1606
1716
|
|
|
1607
1717
|
|
|
1608
1718
|
|
|
@@ -1653,6 +1763,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1653
1763
|
|
|
1654
1764
|
|
|
1655
1765
|
|
|
1766
|
+
|
|
1767
|
+
|
|
1768
|
+
|
|
1769
|
+
|
|
1770
|
+
|
|
1771
|
+
|
|
1772
|
+
|
|
1773
|
+
|
|
1656
1774
|
|
|
1657
1775
|
|
|
1658
1776
|
|
|
@@ -1731,6 +1849,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1731
1849
|
|
|
1732
1850
|
|
|
1733
1851
|
|
|
1852
|
+
|
|
1853
|
+
|
|
1854
|
+
|
|
1855
|
+
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
|
|
1859
|
+
|
|
1734
1860
|
|
|
1735
1861
|
|
|
1736
1862
|
|
|
@@ -1961,6 +2087,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1961
2087
|
|
|
1962
2088
|
|
|
1963
2089
|
|
|
2090
|
+
|
|
2091
|
+
|
|
2092
|
+
|
|
2093
|
+
|
|
2094
|
+
|
|
2095
|
+
|
|
2096
|
+
|
|
2097
|
+
|
|
1964
2098
|
|
|
1965
2099
|
|
|
1966
2100
|
|
|
@@ -2007,6 +2141,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2007
2141
|
|
|
2008
2142
|
|
|
2009
2143
|
|
|
2144
|
+
|
|
2145
|
+
|
|
2146
|
+
|
|
2147
|
+
|
|
2148
|
+
|
|
2149
|
+
|
|
2150
|
+
|
|
2151
|
+
|
|
2010
2152
|
|
|
2011
2153
|
|
|
2012
2154
|
|
|
@@ -2025,6 +2167,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2025
2167
|
get first() {
|
|
2026
2168
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
2027
2169
|
}
|
|
2170
|
+
/**
|
|
2171
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2172
|
+
* @remarks Time O(1), Space O(1)
|
|
2173
|
+
* @returns Front element or undefined.
|
|
2174
|
+
*/
|
|
2175
|
+
peek() {
|
|
2176
|
+
return this.first;
|
|
2177
|
+
}
|
|
2028
2178
|
/**
|
|
2029
2179
|
* Get the last element (back) without removing it.
|
|
2030
2180
|
* @remarks Time O(1), Space O(1)
|
|
@@ -2069,6 +2219,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2069
2219
|
|
|
2070
2220
|
|
|
2071
2221
|
|
|
2222
|
+
|
|
2223
|
+
|
|
2224
|
+
|
|
2225
|
+
|
|
2226
|
+
|
|
2227
|
+
|
|
2228
|
+
|
|
2229
|
+
|
|
2072
2230
|
|
|
2073
2231
|
|
|
2074
2232
|
|
|
@@ -2127,6 +2285,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2127
2285
|
|
|
2128
2286
|
|
|
2129
2287
|
|
|
2288
|
+
|
|
2289
|
+
|
|
2290
|
+
|
|
2291
|
+
|
|
2292
|
+
|
|
2293
|
+
|
|
2294
|
+
|
|
2295
|
+
|
|
2130
2296
|
|
|
2131
2297
|
|
|
2132
2298
|
|
|
@@ -2192,6 +2358,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2192
2358
|
|
|
2193
2359
|
|
|
2194
2360
|
|
|
2361
|
+
|
|
2362
|
+
|
|
2363
|
+
|
|
2364
|
+
|
|
2365
|
+
|
|
2366
|
+
|
|
2367
|
+
|
|
2368
|
+
|
|
2195
2369
|
|
|
2196
2370
|
|
|
2197
2371
|
|
|
@@ -2247,6 +2421,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2247
2421
|
|
|
2248
2422
|
|
|
2249
2423
|
|
|
2424
|
+
|
|
2425
|
+
|
|
2426
|
+
|
|
2427
|
+
|
|
2428
|
+
|
|
2429
|
+
|
|
2430
|
+
|
|
2431
|
+
|
|
2250
2432
|
|
|
2251
2433
|
|
|
2252
2434
|
|
|
@@ -2295,6 +2477,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2295
2477
|
|
|
2296
2478
|
|
|
2297
2479
|
|
|
2480
|
+
|
|
2481
|
+
|
|
2482
|
+
|
|
2483
|
+
|
|
2484
|
+
|
|
2485
|
+
|
|
2486
|
+
|
|
2487
|
+
|
|
2298
2488
|
|
|
2299
2489
|
|
|
2300
2490
|
|
|
@@ -2350,6 +2540,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2350
2540
|
this._elements[this._offset + index] = newElement;
|
|
2351
2541
|
return true;
|
|
2352
2542
|
}
|
|
2543
|
+
/**
|
|
2544
|
+
* Delete the first element that satisfies a predicate.
|
|
2545
|
+
* @remarks Time O(N), Space O(N)
|
|
2546
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2547
|
+
* @returns True if a match was removed.
|
|
2548
|
+
*/
|
|
2549
|
+
deleteWhere(predicate) {
|
|
2550
|
+
for (let i = 0; i < this.length; i++) {
|
|
2551
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2552
|
+
this.deleteAt(i);
|
|
2553
|
+
return true;
|
|
2554
|
+
}
|
|
2555
|
+
}
|
|
2556
|
+
return false;
|
|
2557
|
+
}
|
|
2353
2558
|
/**
|
|
2354
2559
|
* Reverse the queue in-place by compacting then reversing.
|
|
2355
2560
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2384,6 +2589,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2384
2589
|
|
|
2385
2590
|
|
|
2386
2591
|
|
|
2592
|
+
|
|
2593
|
+
|
|
2594
|
+
|
|
2595
|
+
|
|
2596
|
+
|
|
2597
|
+
|
|
2598
|
+
|
|
2599
|
+
|
|
2387
2600
|
|
|
2388
2601
|
|
|
2389
2602
|
|
|
@@ -2426,6 +2639,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2426
2639
|
|
|
2427
2640
|
|
|
2428
2641
|
|
|
2642
|
+
|
|
2643
|
+
|
|
2644
|
+
|
|
2645
|
+
|
|
2646
|
+
|
|
2647
|
+
|
|
2648
|
+
|
|
2649
|
+
|
|
2429
2650
|
|
|
2430
2651
|
|
|
2431
2652
|
|
|
@@ -2491,6 +2712,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2491
2712
|
|
|
2492
2713
|
|
|
2493
2714
|
|
|
2715
|
+
|
|
2716
|
+
|
|
2717
|
+
|
|
2718
|
+
|
|
2719
|
+
|
|
2720
|
+
|
|
2721
|
+
|
|
2722
|
+
|
|
2494
2723
|
|
|
2495
2724
|
|
|
2496
2725
|
|
|
@@ -2540,6 +2769,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2540
2769
|
|
|
2541
2770
|
|
|
2542
2771
|
|
|
2772
|
+
|
|
2773
|
+
|
|
2774
|
+
|
|
2775
|
+
|
|
2776
|
+
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
|
|
2543
2780
|
|
|
2544
2781
|
|
|
2545
2782
|
|
|
@@ -2593,6 +2830,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2593
2830
|
|
|
2594
2831
|
|
|
2595
2832
|
|
|
2833
|
+
|
|
2834
|
+
|
|
2835
|
+
|
|
2836
|
+
|
|
2837
|
+
|
|
2838
|
+
|
|
2839
|
+
|
|
2840
|
+
|
|
2596
2841
|
|
|
2597
2842
|
|
|
2598
2843
|
|
|
@@ -2868,6 +3113,13 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
2868
3113
|
|
|
2869
3114
|
|
|
2870
3115
|
|
|
3116
|
+
|
|
3117
|
+
|
|
3118
|
+
|
|
3119
|
+
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
|
|
2871
3123
|
|
|
2872
3124
|
|
|
2873
3125
|
|
|
@@ -2889,6 +3141,31 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
2889
3141
|
* console.log(last); // 50;
|
|
2890
3142
|
*
|
|
2891
3143
|
* // Length unchanged
|
|
3144
|
+
* console.log(deque.length); // 5;
|
|
3145
|
+
*/
|
|
3146
|
+
/**
|
|
3147
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
3148
|
+
* @remarks Time O(1), Space O(1)
|
|
3149
|
+
* @returns Front element or undefined.
|
|
3150
|
+
*/
|
|
3151
|
+
peek() {
|
|
3152
|
+
return this.first;
|
|
3153
|
+
}
|
|
3154
|
+
/**
|
|
3155
|
+
* Deque peek at both ends
|
|
3156
|
+
* @example
|
|
3157
|
+
* // Deque peek at both ends
|
|
3158
|
+
* const deque = new Deque<number>([10, 20, 30, 40, 50]);
|
|
3159
|
+
*
|
|
3160
|
+
* // Get first element without removing
|
|
3161
|
+
* const first = deque.at(0);
|
|
3162
|
+
* console.log(first); // 10;
|
|
3163
|
+
*
|
|
3164
|
+
* // Get last element without removing
|
|
3165
|
+
* const last = deque.at(deque.length - 1);
|
|
3166
|
+
* console.log(last); // 50;
|
|
3167
|
+
*
|
|
3168
|
+
* // Length unchanged
|
|
2892
3169
|
* console.log(deque.length); // 5;
|
|
2893
3170
|
*/
|
|
2894
3171
|
get first() {
|
|
@@ -2921,6 +3198,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
2921
3198
|
|
|
2922
3199
|
|
|
2923
3200
|
|
|
3201
|
+
|
|
3202
|
+
|
|
3203
|
+
|
|
3204
|
+
|
|
3205
|
+
|
|
3206
|
+
|
|
3207
|
+
|
|
3208
|
+
|
|
2924
3209
|
|
|
2925
3210
|
|
|
2926
3211
|
|
|
@@ -2980,6 +3265,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
2980
3265
|
|
|
2981
3266
|
|
|
2982
3267
|
|
|
3268
|
+
|
|
3269
|
+
|
|
3270
|
+
|
|
3271
|
+
|
|
3272
|
+
|
|
3273
|
+
|
|
3274
|
+
|
|
3275
|
+
|
|
2983
3276
|
|
|
2984
3277
|
|
|
2985
3278
|
|
|
@@ -3052,6 +3345,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3052
3345
|
|
|
3053
3346
|
|
|
3054
3347
|
|
|
3348
|
+
|
|
3349
|
+
|
|
3350
|
+
|
|
3351
|
+
|
|
3352
|
+
|
|
3353
|
+
|
|
3354
|
+
|
|
3355
|
+
|
|
3055
3356
|
|
|
3056
3357
|
|
|
3057
3358
|
|
|
@@ -3111,6 +3412,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3111
3412
|
|
|
3112
3413
|
|
|
3113
3414
|
|
|
3415
|
+
|
|
3416
|
+
|
|
3417
|
+
|
|
3418
|
+
|
|
3419
|
+
|
|
3420
|
+
|
|
3421
|
+
|
|
3422
|
+
|
|
3114
3423
|
|
|
3115
3424
|
|
|
3116
3425
|
|
|
@@ -3171,6 +3480,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3171
3480
|
|
|
3172
3481
|
|
|
3173
3482
|
|
|
3483
|
+
|
|
3484
|
+
|
|
3485
|
+
|
|
3486
|
+
|
|
3487
|
+
|
|
3488
|
+
|
|
3489
|
+
|
|
3490
|
+
|
|
3174
3491
|
|
|
3175
3492
|
|
|
3176
3493
|
|
|
@@ -3272,6 +3589,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3272
3589
|
|
|
3273
3590
|
|
|
3274
3591
|
|
|
3592
|
+
|
|
3593
|
+
|
|
3594
|
+
|
|
3595
|
+
|
|
3596
|
+
|
|
3597
|
+
|
|
3598
|
+
|
|
3599
|
+
|
|
3275
3600
|
|
|
3276
3601
|
|
|
3277
3602
|
|
|
@@ -3313,6 +3638,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3313
3638
|
|
|
3314
3639
|
|
|
3315
3640
|
|
|
3641
|
+
|
|
3642
|
+
|
|
3643
|
+
|
|
3644
|
+
|
|
3645
|
+
|
|
3646
|
+
|
|
3647
|
+
|
|
3648
|
+
|
|
3316
3649
|
|
|
3317
3650
|
|
|
3318
3651
|
|
|
@@ -3358,6 +3691,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3358
3691
|
|
|
3359
3692
|
|
|
3360
3693
|
|
|
3694
|
+
|
|
3695
|
+
|
|
3696
|
+
|
|
3697
|
+
|
|
3698
|
+
|
|
3699
|
+
|
|
3700
|
+
|
|
3701
|
+
|
|
3361
3702
|
|
|
3362
3703
|
|
|
3363
3704
|
|
|
@@ -3554,6 +3895,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3554
3895
|
|
|
3555
3896
|
|
|
3556
3897
|
|
|
3898
|
+
|
|
3899
|
+
|
|
3900
|
+
|
|
3901
|
+
|
|
3902
|
+
|
|
3903
|
+
|
|
3904
|
+
|
|
3905
|
+
|
|
3557
3906
|
|
|
3558
3907
|
|
|
3559
3908
|
|
|
@@ -3637,6 +3986,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3637
3986
|
|
|
3638
3987
|
|
|
3639
3988
|
|
|
3989
|
+
|
|
3990
|
+
|
|
3991
|
+
|
|
3992
|
+
|
|
3993
|
+
|
|
3994
|
+
|
|
3995
|
+
|
|
3996
|
+
|
|
3640
3997
|
|
|
3641
3998
|
|
|
3642
3999
|
|
|
@@ -3745,6 +4102,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3745
4102
|
|
|
3746
4103
|
|
|
3747
4104
|
|
|
4105
|
+
|
|
4106
|
+
|
|
4107
|
+
|
|
4108
|
+
|
|
4109
|
+
|
|
4110
|
+
|
|
4111
|
+
|
|
4112
|
+
|
|
3748
4113
|
|
|
3749
4114
|
|
|
3750
4115
|
|
|
@@ -3812,6 +4177,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3812
4177
|
|
|
3813
4178
|
|
|
3814
4179
|
|
|
4180
|
+
|
|
4181
|
+
|
|
4182
|
+
|
|
4183
|
+
|
|
4184
|
+
|
|
4185
|
+
|
|
4186
|
+
|
|
4187
|
+
|
|
3815
4188
|
|
|
3816
4189
|
|
|
3817
4190
|
|
|
@@ -3862,6 +4235,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3862
4235
|
|
|
3863
4236
|
|
|
3864
4237
|
|
|
4238
|
+
|
|
4239
|
+
|
|
4240
|
+
|
|
4241
|
+
|
|
4242
|
+
|
|
4243
|
+
|
|
4244
|
+
|
|
4245
|
+
|
|
3865
4246
|
|
|
3866
4247
|
|
|
3867
4248
|
|
|
@@ -3932,6 +4313,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3932
4313
|
|
|
3933
4314
|
|
|
3934
4315
|
|
|
4316
|
+
|
|
4317
|
+
|
|
4318
|
+
|
|
4319
|
+
|
|
4320
|
+
|
|
4321
|
+
|
|
4322
|
+
|
|
4323
|
+
|
|
3935
4324
|
|
|
3936
4325
|
|
|
3937
4326
|
|