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
|
@@ -5,6 +5,12 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
|
|
|
5
5
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
6
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
7
7
|
|
|
8
|
+
// src/common/error.ts
|
|
9
|
+
function raise(ErrorClass, message) {
|
|
10
|
+
throw new ErrorClass(message);
|
|
11
|
+
}
|
|
12
|
+
__name(raise, "raise");
|
|
13
|
+
|
|
8
14
|
// src/data-structures/base/iterable-element-base.ts
|
|
9
15
|
var _IterableElementBase = class _IterableElementBase {
|
|
10
16
|
/**
|
|
@@ -27,7 +33,7 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
27
33
|
if (options) {
|
|
28
34
|
const { toElementFn } = options;
|
|
29
35
|
if (typeof toElementFn === "function") this._toElementFn = toElementFn;
|
|
30
|
-
else if (toElementFn)
|
|
36
|
+
else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
|
|
31
37
|
}
|
|
32
38
|
}
|
|
33
39
|
/**
|
|
@@ -183,7 +189,7 @@ var _IterableElementBase = class _IterableElementBase {
|
|
|
183
189
|
acc = initialValue;
|
|
184
190
|
} else {
|
|
185
191
|
const first = iter.next();
|
|
186
|
-
if (first.done)
|
|
192
|
+
if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
|
|
187
193
|
acc = first.value;
|
|
188
194
|
index = 1;
|
|
189
195
|
}
|
|
@@ -747,6 +753,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
747
753
|
|
|
748
754
|
|
|
749
755
|
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
|
|
763
|
+
|
|
750
764
|
|
|
751
765
|
|
|
752
766
|
|
|
@@ -810,6 +824,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
810
824
|
|
|
811
825
|
|
|
812
826
|
|
|
827
|
+
|
|
828
|
+
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
|
|
834
|
+
|
|
813
835
|
|
|
814
836
|
|
|
815
837
|
|
|
@@ -879,6 +901,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
879
901
|
|
|
880
902
|
|
|
881
903
|
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
|
|
882
912
|
|
|
883
913
|
|
|
884
914
|
|
|
@@ -929,6 +959,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
929
959
|
|
|
930
960
|
|
|
931
961
|
|
|
962
|
+
|
|
963
|
+
|
|
964
|
+
|
|
965
|
+
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
|
|
932
970
|
|
|
933
971
|
|
|
934
972
|
|
|
@@ -1040,6 +1078,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1040
1078
|
|
|
1041
1079
|
|
|
1042
1080
|
|
|
1081
|
+
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
|
|
1085
|
+
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
|
|
1043
1089
|
|
|
1044
1090
|
|
|
1045
1091
|
|
|
@@ -1095,6 +1141,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1095
1141
|
|
|
1096
1142
|
|
|
1097
1143
|
|
|
1144
|
+
|
|
1145
|
+
|
|
1146
|
+
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
|
|
1150
|
+
|
|
1151
|
+
|
|
1098
1152
|
|
|
1099
1153
|
|
|
1100
1154
|
|
|
@@ -1139,6 +1193,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1139
1193
|
|
|
1140
1194
|
|
|
1141
1195
|
|
|
1196
|
+
|
|
1197
|
+
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1142
1204
|
|
|
1143
1205
|
|
|
1144
1206
|
|
|
@@ -1189,6 +1251,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1189
1251
|
|
|
1190
1252
|
|
|
1191
1253
|
|
|
1254
|
+
|
|
1255
|
+
|
|
1256
|
+
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
|
|
1260
|
+
|
|
1261
|
+
|
|
1192
1262
|
|
|
1193
1263
|
|
|
1194
1264
|
|
|
@@ -1244,6 +1314,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1244
1314
|
|
|
1245
1315
|
|
|
1246
1316
|
|
|
1317
|
+
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
|
|
1247
1325
|
|
|
1248
1326
|
|
|
1249
1327
|
|
|
@@ -1307,6 +1385,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1307
1385
|
|
|
1308
1386
|
|
|
1309
1387
|
|
|
1388
|
+
|
|
1389
|
+
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
|
|
1310
1396
|
|
|
1311
1397
|
|
|
1312
1398
|
|
|
@@ -1347,6 +1433,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1347
1433
|
|
|
1348
1434
|
|
|
1349
1435
|
|
|
1436
|
+
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
|
|
1442
|
+
|
|
1443
|
+
|
|
1350
1444
|
|
|
1351
1445
|
|
|
1352
1446
|
|
|
@@ -1393,6 +1487,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1393
1487
|
|
|
1394
1488
|
|
|
1395
1489
|
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
|
|
1497
|
+
|
|
1396
1498
|
|
|
1397
1499
|
|
|
1398
1500
|
|
|
@@ -1605,6 +1707,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1605
1707
|
|
|
1606
1708
|
|
|
1607
1709
|
|
|
1710
|
+
|
|
1711
|
+
|
|
1712
|
+
|
|
1713
|
+
|
|
1714
|
+
|
|
1715
|
+
|
|
1716
|
+
|
|
1717
|
+
|
|
1608
1718
|
|
|
1609
1719
|
|
|
1610
1720
|
|
|
@@ -1655,6 +1765,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1655
1765
|
|
|
1656
1766
|
|
|
1657
1767
|
|
|
1768
|
+
|
|
1769
|
+
|
|
1770
|
+
|
|
1771
|
+
|
|
1772
|
+
|
|
1773
|
+
|
|
1774
|
+
|
|
1775
|
+
|
|
1658
1776
|
|
|
1659
1777
|
|
|
1660
1778
|
|
|
@@ -1733,6 +1851,14 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1733
1851
|
|
|
1734
1852
|
|
|
1735
1853
|
|
|
1854
|
+
|
|
1855
|
+
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
|
|
1859
|
+
|
|
1860
|
+
|
|
1861
|
+
|
|
1736
1862
|
|
|
1737
1863
|
|
|
1738
1864
|
|
|
@@ -1963,6 +2089,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
1963
2089
|
|
|
1964
2090
|
|
|
1965
2091
|
|
|
2092
|
+
|
|
2093
|
+
|
|
2094
|
+
|
|
2095
|
+
|
|
2096
|
+
|
|
2097
|
+
|
|
2098
|
+
|
|
2099
|
+
|
|
1966
2100
|
|
|
1967
2101
|
|
|
1968
2102
|
|
|
@@ -2009,6 +2143,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2009
2143
|
|
|
2010
2144
|
|
|
2011
2145
|
|
|
2146
|
+
|
|
2147
|
+
|
|
2148
|
+
|
|
2149
|
+
|
|
2150
|
+
|
|
2151
|
+
|
|
2152
|
+
|
|
2153
|
+
|
|
2012
2154
|
|
|
2013
2155
|
|
|
2014
2156
|
|
|
@@ -2027,6 +2169,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2027
2169
|
get first() {
|
|
2028
2170
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
2029
2171
|
}
|
|
2172
|
+
/**
|
|
2173
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2174
|
+
* @remarks Time O(1), Space O(1)
|
|
2175
|
+
* @returns Front element or undefined.
|
|
2176
|
+
*/
|
|
2177
|
+
peek() {
|
|
2178
|
+
return this.first;
|
|
2179
|
+
}
|
|
2030
2180
|
/**
|
|
2031
2181
|
* Get the last element (back) without removing it.
|
|
2032
2182
|
* @remarks Time O(1), Space O(1)
|
|
@@ -2071,6 +2221,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2071
2221
|
|
|
2072
2222
|
|
|
2073
2223
|
|
|
2224
|
+
|
|
2225
|
+
|
|
2226
|
+
|
|
2227
|
+
|
|
2228
|
+
|
|
2229
|
+
|
|
2230
|
+
|
|
2231
|
+
|
|
2074
2232
|
|
|
2075
2233
|
|
|
2076
2234
|
|
|
@@ -2129,6 +2287,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2129
2287
|
|
|
2130
2288
|
|
|
2131
2289
|
|
|
2290
|
+
|
|
2291
|
+
|
|
2292
|
+
|
|
2293
|
+
|
|
2294
|
+
|
|
2295
|
+
|
|
2296
|
+
|
|
2297
|
+
|
|
2132
2298
|
|
|
2133
2299
|
|
|
2134
2300
|
|
|
@@ -2194,6 +2360,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2194
2360
|
|
|
2195
2361
|
|
|
2196
2362
|
|
|
2363
|
+
|
|
2364
|
+
|
|
2365
|
+
|
|
2366
|
+
|
|
2367
|
+
|
|
2368
|
+
|
|
2369
|
+
|
|
2370
|
+
|
|
2197
2371
|
|
|
2198
2372
|
|
|
2199
2373
|
|
|
@@ -2249,6 +2423,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2249
2423
|
|
|
2250
2424
|
|
|
2251
2425
|
|
|
2426
|
+
|
|
2427
|
+
|
|
2428
|
+
|
|
2429
|
+
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
|
|
2433
|
+
|
|
2252
2434
|
|
|
2253
2435
|
|
|
2254
2436
|
|
|
@@ -2297,6 +2479,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2297
2479
|
|
|
2298
2480
|
|
|
2299
2481
|
|
|
2482
|
+
|
|
2483
|
+
|
|
2484
|
+
|
|
2485
|
+
|
|
2486
|
+
|
|
2487
|
+
|
|
2488
|
+
|
|
2489
|
+
|
|
2300
2490
|
|
|
2301
2491
|
|
|
2302
2492
|
|
|
@@ -2352,6 +2542,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2352
2542
|
this._elements[this._offset + index] = newElement;
|
|
2353
2543
|
return true;
|
|
2354
2544
|
}
|
|
2545
|
+
/**
|
|
2546
|
+
* Delete the first element that satisfies a predicate.
|
|
2547
|
+
* @remarks Time O(N), Space O(N)
|
|
2548
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2549
|
+
* @returns True if a match was removed.
|
|
2550
|
+
*/
|
|
2551
|
+
deleteWhere(predicate) {
|
|
2552
|
+
for (let i = 0; i < this.length; i++) {
|
|
2553
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2554
|
+
this.deleteAt(i);
|
|
2555
|
+
return true;
|
|
2556
|
+
}
|
|
2557
|
+
}
|
|
2558
|
+
return false;
|
|
2559
|
+
}
|
|
2355
2560
|
/**
|
|
2356
2561
|
* Reverse the queue in-place by compacting then reversing.
|
|
2357
2562
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2386,6 +2591,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2386
2591
|
|
|
2387
2592
|
|
|
2388
2593
|
|
|
2594
|
+
|
|
2595
|
+
|
|
2596
|
+
|
|
2597
|
+
|
|
2598
|
+
|
|
2599
|
+
|
|
2600
|
+
|
|
2601
|
+
|
|
2389
2602
|
|
|
2390
2603
|
|
|
2391
2604
|
|
|
@@ -2428,6 +2641,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2428
2641
|
|
|
2429
2642
|
|
|
2430
2643
|
|
|
2644
|
+
|
|
2645
|
+
|
|
2646
|
+
|
|
2647
|
+
|
|
2648
|
+
|
|
2649
|
+
|
|
2650
|
+
|
|
2651
|
+
|
|
2431
2652
|
|
|
2432
2653
|
|
|
2433
2654
|
|
|
@@ -2493,6 +2714,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2493
2714
|
|
|
2494
2715
|
|
|
2495
2716
|
|
|
2717
|
+
|
|
2718
|
+
|
|
2719
|
+
|
|
2720
|
+
|
|
2721
|
+
|
|
2722
|
+
|
|
2723
|
+
|
|
2724
|
+
|
|
2496
2725
|
|
|
2497
2726
|
|
|
2498
2727
|
|
|
@@ -2542,6 +2771,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2542
2771
|
|
|
2543
2772
|
|
|
2544
2773
|
|
|
2774
|
+
|
|
2775
|
+
|
|
2776
|
+
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
|
|
2780
|
+
|
|
2781
|
+
|
|
2545
2782
|
|
|
2546
2783
|
|
|
2547
2784
|
|
|
@@ -2595,6 +2832,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2595
2832
|
|
|
2596
2833
|
|
|
2597
2834
|
|
|
2835
|
+
|
|
2836
|
+
|
|
2837
|
+
|
|
2838
|
+
|
|
2839
|
+
|
|
2840
|
+
|
|
2841
|
+
|
|
2842
|
+
|
|
2598
2843
|
|
|
2599
2844
|
|
|
2600
2845
|
|
|
@@ -2870,6 +3115,13 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
2870
3115
|
|
|
2871
3116
|
|
|
2872
3117
|
|
|
3118
|
+
|
|
3119
|
+
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
|
|
3124
|
+
|
|
2873
3125
|
|
|
2874
3126
|
|
|
2875
3127
|
|
|
@@ -2891,6 +3143,31 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
2891
3143
|
* console.log(last); // 50;
|
|
2892
3144
|
*
|
|
2893
3145
|
* // Length unchanged
|
|
3146
|
+
* console.log(deque.length); // 5;
|
|
3147
|
+
*/
|
|
3148
|
+
/**
|
|
3149
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
3150
|
+
* @remarks Time O(1), Space O(1)
|
|
3151
|
+
* @returns Front element or undefined.
|
|
3152
|
+
*/
|
|
3153
|
+
peek() {
|
|
3154
|
+
return this.first;
|
|
3155
|
+
}
|
|
3156
|
+
/**
|
|
3157
|
+
* Deque peek at both ends
|
|
3158
|
+
* @example
|
|
3159
|
+
* // Deque peek at both ends
|
|
3160
|
+
* const deque = new Deque<number>([10, 20, 30, 40, 50]);
|
|
3161
|
+
*
|
|
3162
|
+
* // Get first element without removing
|
|
3163
|
+
* const first = deque.at(0);
|
|
3164
|
+
* console.log(first); // 10;
|
|
3165
|
+
*
|
|
3166
|
+
* // Get last element without removing
|
|
3167
|
+
* const last = deque.at(deque.length - 1);
|
|
3168
|
+
* console.log(last); // 50;
|
|
3169
|
+
*
|
|
3170
|
+
* // Length unchanged
|
|
2894
3171
|
* console.log(deque.length); // 5;
|
|
2895
3172
|
*/
|
|
2896
3173
|
get first() {
|
|
@@ -2923,6 +3200,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
2923
3200
|
|
|
2924
3201
|
|
|
2925
3202
|
|
|
3203
|
+
|
|
3204
|
+
|
|
3205
|
+
|
|
3206
|
+
|
|
3207
|
+
|
|
3208
|
+
|
|
3209
|
+
|
|
3210
|
+
|
|
2926
3211
|
|
|
2927
3212
|
|
|
2928
3213
|
|
|
@@ -2982,6 +3267,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
2982
3267
|
|
|
2983
3268
|
|
|
2984
3269
|
|
|
3270
|
+
|
|
3271
|
+
|
|
3272
|
+
|
|
3273
|
+
|
|
3274
|
+
|
|
3275
|
+
|
|
3276
|
+
|
|
3277
|
+
|
|
2985
3278
|
|
|
2986
3279
|
|
|
2987
3280
|
|
|
@@ -3054,6 +3347,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3054
3347
|
|
|
3055
3348
|
|
|
3056
3349
|
|
|
3350
|
+
|
|
3351
|
+
|
|
3352
|
+
|
|
3353
|
+
|
|
3354
|
+
|
|
3355
|
+
|
|
3356
|
+
|
|
3357
|
+
|
|
3057
3358
|
|
|
3058
3359
|
|
|
3059
3360
|
|
|
@@ -3113,6 +3414,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3113
3414
|
|
|
3114
3415
|
|
|
3115
3416
|
|
|
3417
|
+
|
|
3418
|
+
|
|
3419
|
+
|
|
3420
|
+
|
|
3421
|
+
|
|
3422
|
+
|
|
3423
|
+
|
|
3424
|
+
|
|
3116
3425
|
|
|
3117
3426
|
|
|
3118
3427
|
|
|
@@ -3173,6 +3482,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3173
3482
|
|
|
3174
3483
|
|
|
3175
3484
|
|
|
3485
|
+
|
|
3486
|
+
|
|
3487
|
+
|
|
3488
|
+
|
|
3489
|
+
|
|
3490
|
+
|
|
3491
|
+
|
|
3492
|
+
|
|
3176
3493
|
|
|
3177
3494
|
|
|
3178
3495
|
|
|
@@ -3274,6 +3591,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3274
3591
|
|
|
3275
3592
|
|
|
3276
3593
|
|
|
3594
|
+
|
|
3595
|
+
|
|
3596
|
+
|
|
3597
|
+
|
|
3598
|
+
|
|
3599
|
+
|
|
3600
|
+
|
|
3601
|
+
|
|
3277
3602
|
|
|
3278
3603
|
|
|
3279
3604
|
|
|
@@ -3315,6 +3640,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3315
3640
|
|
|
3316
3641
|
|
|
3317
3642
|
|
|
3643
|
+
|
|
3644
|
+
|
|
3645
|
+
|
|
3646
|
+
|
|
3647
|
+
|
|
3648
|
+
|
|
3649
|
+
|
|
3650
|
+
|
|
3318
3651
|
|
|
3319
3652
|
|
|
3320
3653
|
|
|
@@ -3360,6 +3693,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3360
3693
|
|
|
3361
3694
|
|
|
3362
3695
|
|
|
3696
|
+
|
|
3697
|
+
|
|
3698
|
+
|
|
3699
|
+
|
|
3700
|
+
|
|
3701
|
+
|
|
3702
|
+
|
|
3703
|
+
|
|
3363
3704
|
|
|
3364
3705
|
|
|
3365
3706
|
|
|
@@ -3556,6 +3897,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3556
3897
|
|
|
3557
3898
|
|
|
3558
3899
|
|
|
3900
|
+
|
|
3901
|
+
|
|
3902
|
+
|
|
3903
|
+
|
|
3904
|
+
|
|
3905
|
+
|
|
3906
|
+
|
|
3907
|
+
|
|
3559
3908
|
|
|
3560
3909
|
|
|
3561
3910
|
|
|
@@ -3639,6 +3988,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3639
3988
|
|
|
3640
3989
|
|
|
3641
3990
|
|
|
3991
|
+
|
|
3992
|
+
|
|
3993
|
+
|
|
3994
|
+
|
|
3995
|
+
|
|
3996
|
+
|
|
3997
|
+
|
|
3998
|
+
|
|
3642
3999
|
|
|
3643
4000
|
|
|
3644
4001
|
|
|
@@ -3747,6 +4104,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3747
4104
|
|
|
3748
4105
|
|
|
3749
4106
|
|
|
4107
|
+
|
|
4108
|
+
|
|
4109
|
+
|
|
4110
|
+
|
|
4111
|
+
|
|
4112
|
+
|
|
4113
|
+
|
|
4114
|
+
|
|
3750
4115
|
|
|
3751
4116
|
|
|
3752
4117
|
|
|
@@ -3814,6 +4179,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3814
4179
|
|
|
3815
4180
|
|
|
3816
4181
|
|
|
4182
|
+
|
|
4183
|
+
|
|
4184
|
+
|
|
4185
|
+
|
|
4186
|
+
|
|
4187
|
+
|
|
4188
|
+
|
|
4189
|
+
|
|
3817
4190
|
|
|
3818
4191
|
|
|
3819
4192
|
|
|
@@ -3864,6 +4237,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3864
4237
|
|
|
3865
4238
|
|
|
3866
4239
|
|
|
4240
|
+
|
|
4241
|
+
|
|
4242
|
+
|
|
4243
|
+
|
|
4244
|
+
|
|
4245
|
+
|
|
4246
|
+
|
|
4247
|
+
|
|
3867
4248
|
|
|
3868
4249
|
|
|
3869
4250
|
|
|
@@ -3934,6 +4315,14 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3934
4315
|
|
|
3935
4316
|
|
|
3936
4317
|
|
|
4318
|
+
|
|
4319
|
+
|
|
4320
|
+
|
|
4321
|
+
|
|
4322
|
+
|
|
4323
|
+
|
|
4324
|
+
|
|
4325
|
+
|
|
3937
4326
|
|
|
3938
4327
|
|
|
3939
4328
|
|