data-structure-typed 2.5.2 → 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 +3 -1
- package/MIGRATION.md +169 -0
- package/README.md +60 -6
- package/README_CN.md +551 -143
- package/SPECIFICATION.md +20 -14
- package/SPECIFICATION.zh-CN.md +20 -14
- package/dist/cjs/binary-tree.cjs +2417 -132
- package/dist/cjs/graph.cjs +248 -14
- package/dist/cjs/hash.cjs +62 -7
- package/dist/cjs/heap.cjs +103 -16
- package/dist/cjs/index.cjs +3046 -124
- package/dist/cjs/linked-list.cjs +219 -0
- package/dist/cjs/matrix.cjs +32 -0
- package/dist/cjs/priority-queue.cjs +101 -14
- package/dist/cjs/queue.cjs +215 -0
- package/dist/cjs/stack.cjs +44 -4
- package/dist/cjs/trie.cjs +44 -0
- package/dist/cjs-legacy/binary-tree.cjs +2406 -123
- package/dist/cjs-legacy/graph.cjs +248 -14
- package/dist/cjs-legacy/hash.cjs +62 -7
- package/dist/cjs-legacy/heap.cjs +103 -16
- package/dist/cjs-legacy/index.cjs +3105 -185
- package/dist/cjs-legacy/linked-list.cjs +219 -0
- package/dist/cjs-legacy/matrix.cjs +32 -0
- package/dist/cjs-legacy/priority-queue.cjs +101 -14
- package/dist/cjs-legacy/queue.cjs +215 -0
- package/dist/cjs-legacy/stack.cjs +44 -4
- package/dist/cjs-legacy/trie.cjs +44 -0
- package/dist/esm/binary-tree.mjs +2417 -132
- package/dist/esm/graph.mjs +248 -14
- package/dist/esm/hash.mjs +62 -7
- package/dist/esm/heap.mjs +103 -16
- package/dist/esm/index.mjs +3046 -124
- package/dist/esm/linked-list.mjs +219 -0
- package/dist/esm/matrix.mjs +32 -0
- package/dist/esm/priority-queue.mjs +101 -14
- package/dist/esm/queue.mjs +215 -0
- package/dist/esm/stack.mjs +44 -4
- package/dist/esm/trie.mjs +44 -0
- package/dist/esm-legacy/binary-tree.mjs +2406 -123
- package/dist/esm-legacy/graph.mjs +248 -14
- package/dist/esm-legacy/hash.mjs +62 -7
- package/dist/esm-legacy/heap.mjs +103 -16
- package/dist/esm-legacy/index.mjs +3105 -185
- package/dist/esm-legacy/linked-list.mjs +219 -0
- package/dist/esm-legacy/matrix.mjs +32 -0
- package/dist/esm-legacy/priority-queue.mjs +101 -14
- package/dist/esm-legacy/queue.mjs +215 -0
- package/dist/esm-legacy/stack.mjs +44 -4
- package/dist/esm-legacy/trie.mjs +44 -0
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +50 -2
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +116 -15
- package/dist/types/data-structures/binary-tree/bst.d.ts +99 -3
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +79 -8
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +520 -1
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +489 -1
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +393 -1
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +500 -1
- package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +51 -6
- package/dist/types/data-structures/heap/heap.d.ts +98 -12
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +61 -1
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
- package/dist/types/data-structures/queue/deque.d.ts +82 -0
- package/dist/types/data-structures/queue/queue.d.ts +61 -0
- package/dist/types/data-structures/stack/stack.d.ts +42 -2
- package/dist/types/data-structures/trie/trie.d.ts +48 -0
- package/dist/types/interfaces/binary-tree.d.ts +2 -3
- package/dist/umd/data-structure-typed.js +3105 -185
- package/dist/umd/data-structure-typed.min.js +4 -4
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +188 -200
- package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
- package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +62 -62
- package/docs-site-docusaurus/docs/api/classes/BST.md +183 -195
- 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 +143 -155
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/Deque.md +99 -85
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +73 -73
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +100 -70
- 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 +38 -38
- 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 +23 -23
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +48 -48
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +52 -52
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +42 -42
- package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +74 -74
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +73 -73
- 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 +111 -59
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +200 -212
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +75 -75
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +37 -37
- package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +107 -36
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +43 -43
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +106 -35
- package/docs-site-docusaurus/docs/api/classes/Trie.md +43 -43
- package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +72 -72
- package/docs-site-docusaurus/docs/guide/architecture.md +75 -7
- package/docs-site-docusaurus/docs/guide/concepts.md +53 -34
- package/docs-site-docusaurus/docs/guide/faq.md +53 -0
- package/docs-site-docusaurus/docs/guide/guides.md +8 -9
- package/docs-site-docusaurus/docs/guide/integrations.md +74 -177
- package/docs-site-docusaurus/docs/guide/overview.md +131 -17
- package/docs-site-docusaurus/src/pages/index.tsx +4 -0
- package/docs-site-docusaurus/typedoc.json +1 -0
- package/package.json +7 -6
- package/src/data-structures/binary-tree/avl-tree.ts +52 -5
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +56 -0
- package/src/data-structures/binary-tree/binary-tree.ts +167 -81
- package/src/data-structures/binary-tree/bst.ts +101 -7
- package/src/data-structures/binary-tree/red-black-tree.ts +82 -15
- package/src/data-structures/binary-tree/segment-tree.ts +24 -0
- package/src/data-structures/binary-tree/tree-map.ts +540 -3
- package/src/data-structures/binary-tree/tree-multi-map.ts +490 -2
- package/src/data-structures/binary-tree/tree-multi-set.ts +393 -1
- package/src/data-structures/binary-tree/tree-set.ts +520 -3
- package/src/data-structures/graph/directed-graph.ts +41 -1
- package/src/data-structures/graph/undirected-graph.ts +37 -1
- package/src/data-structures/hash/hash-map.ts +67 -12
- package/src/data-structures/heap/heap.ts +107 -19
- package/src/data-structures/linked-list/doubly-linked-list.ts +88 -0
- package/src/data-structures/linked-list/singly-linked-list.ts +61 -1
- package/src/data-structures/linked-list/skip-linked-list.ts +72 -0
- package/src/data-structures/matrix/matrix.ts +32 -0
- package/src/data-structures/queue/deque.ts +85 -0
- package/src/data-structures/queue/queue.ts +73 -0
- package/src/data-structures/stack/stack.ts +45 -5
- package/src/data-structures/trie/trie.ts +48 -0
- package/src/interfaces/binary-tree.ts +1 -9
- 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
|
@@ -765,6 +765,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
765
765
|
|
|
766
766
|
|
|
767
767
|
|
|
768
|
+
|
|
769
|
+
|
|
770
|
+
|
|
771
|
+
|
|
768
772
|
|
|
769
773
|
|
|
770
774
|
|
|
@@ -832,6 +836,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
832
836
|
|
|
833
837
|
|
|
834
838
|
|
|
839
|
+
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
|
|
835
843
|
|
|
836
844
|
|
|
837
845
|
|
|
@@ -904,6 +912,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
904
912
|
|
|
905
913
|
|
|
906
914
|
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
|
|
907
919
|
|
|
908
920
|
|
|
909
921
|
|
|
@@ -958,6 +970,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
958
970
|
|
|
959
971
|
|
|
960
972
|
|
|
973
|
+
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
|
|
961
977
|
|
|
962
978
|
|
|
963
979
|
|
|
@@ -1073,6 +1089,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1073
1089
|
|
|
1074
1090
|
|
|
1075
1091
|
|
|
1092
|
+
|
|
1093
|
+
|
|
1094
|
+
|
|
1095
|
+
|
|
1076
1096
|
|
|
1077
1097
|
|
|
1078
1098
|
|
|
@@ -1132,6 +1152,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1132
1152
|
|
|
1133
1153
|
|
|
1134
1154
|
|
|
1155
|
+
|
|
1156
|
+
|
|
1157
|
+
|
|
1158
|
+
|
|
1135
1159
|
|
|
1136
1160
|
|
|
1137
1161
|
|
|
@@ -1180,6 +1204,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1180
1204
|
|
|
1181
1205
|
|
|
1182
1206
|
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
|
|
1210
|
+
|
|
1183
1211
|
|
|
1184
1212
|
|
|
1185
1213
|
|
|
@@ -1234,6 +1262,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1234
1262
|
|
|
1235
1263
|
|
|
1236
1264
|
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
|
|
1268
|
+
|
|
1237
1269
|
|
|
1238
1270
|
|
|
1239
1271
|
|
|
@@ -1293,6 +1325,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1293
1325
|
|
|
1294
1326
|
|
|
1295
1327
|
|
|
1328
|
+
|
|
1329
|
+
|
|
1330
|
+
|
|
1331
|
+
|
|
1296
1332
|
|
|
1297
1333
|
|
|
1298
1334
|
|
|
@@ -1360,6 +1396,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1360
1396
|
|
|
1361
1397
|
|
|
1362
1398
|
|
|
1399
|
+
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
|
|
1363
1403
|
|
|
1364
1404
|
|
|
1365
1405
|
|
|
@@ -1404,6 +1444,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1404
1444
|
|
|
1405
1445
|
|
|
1406
1446
|
|
|
1447
|
+
|
|
1448
|
+
|
|
1449
|
+
|
|
1450
|
+
|
|
1407
1451
|
|
|
1408
1452
|
|
|
1409
1453
|
|
|
@@ -1454,6 +1498,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1454
1498
|
|
|
1455
1499
|
|
|
1456
1500
|
|
|
1501
|
+
|
|
1502
|
+
|
|
1503
|
+
|
|
1504
|
+
|
|
1457
1505
|
|
|
1458
1506
|
|
|
1459
1507
|
|
|
@@ -1670,6 +1718,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1670
1718
|
|
|
1671
1719
|
|
|
1672
1720
|
|
|
1721
|
+
|
|
1722
|
+
|
|
1723
|
+
|
|
1724
|
+
|
|
1673
1725
|
|
|
1674
1726
|
|
|
1675
1727
|
|
|
@@ -1724,6 +1776,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1724
1776
|
|
|
1725
1777
|
|
|
1726
1778
|
|
|
1779
|
+
|
|
1780
|
+
|
|
1781
|
+
|
|
1782
|
+
|
|
1727
1783
|
|
|
1728
1784
|
|
|
1729
1785
|
|
|
@@ -1806,6 +1862,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1806
1862
|
|
|
1807
1863
|
|
|
1808
1864
|
|
|
1865
|
+
|
|
1866
|
+
|
|
1867
|
+
|
|
1868
|
+
|
|
1809
1869
|
|
|
1810
1870
|
|
|
1811
1871
|
|
|
@@ -2041,6 +2101,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2041
2101
|
|
|
2042
2102
|
|
|
2043
2103
|
|
|
2104
|
+
|
|
2105
|
+
|
|
2106
|
+
|
|
2107
|
+
|
|
2044
2108
|
|
|
2045
2109
|
|
|
2046
2110
|
|
|
@@ -2091,6 +2155,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2091
2155
|
|
|
2092
2156
|
|
|
2093
2157
|
|
|
2158
|
+
|
|
2159
|
+
|
|
2160
|
+
|
|
2161
|
+
|
|
2094
2162
|
|
|
2095
2163
|
|
|
2096
2164
|
|
|
@@ -2105,6 +2173,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2105
2173
|
get first() {
|
|
2106
2174
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
2107
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
|
+
}
|
|
2108
2184
|
/**
|
|
2109
2185
|
* Get the last element (back) without removing it.
|
|
2110
2186
|
* @remarks Time O(1), Space O(1)
|
|
@@ -2157,6 +2233,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2157
2233
|
|
|
2158
2234
|
|
|
2159
2235
|
|
|
2236
|
+
|
|
2237
|
+
|
|
2238
|
+
|
|
2239
|
+
|
|
2160
2240
|
|
|
2161
2241
|
|
|
2162
2242
|
|
|
@@ -2219,6 +2299,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2219
2299
|
|
|
2220
2300
|
|
|
2221
2301
|
|
|
2302
|
+
|
|
2303
|
+
|
|
2304
|
+
|
|
2305
|
+
|
|
2222
2306
|
|
|
2223
2307
|
|
|
2224
2308
|
|
|
@@ -2288,6 +2372,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2288
2372
|
|
|
2289
2373
|
|
|
2290
2374
|
|
|
2375
|
+
|
|
2376
|
+
|
|
2377
|
+
|
|
2378
|
+
|
|
2291
2379
|
|
|
2292
2380
|
|
|
2293
2381
|
|
|
@@ -2347,6 +2435,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2347
2435
|
|
|
2348
2436
|
|
|
2349
2437
|
|
|
2438
|
+
|
|
2439
|
+
|
|
2440
|
+
|
|
2441
|
+
|
|
2350
2442
|
|
|
2351
2443
|
|
|
2352
2444
|
|
|
@@ -2399,6 +2491,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2399
2491
|
|
|
2400
2492
|
|
|
2401
2493
|
|
|
2494
|
+
|
|
2495
|
+
|
|
2496
|
+
|
|
2497
|
+
|
|
2402
2498
|
|
|
2403
2499
|
|
|
2404
2500
|
|
|
@@ -2450,6 +2546,21 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2450
2546
|
this._elements[this._offset + index] = newElement;
|
|
2451
2547
|
return true;
|
|
2452
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
|
+
}
|
|
2453
2564
|
/**
|
|
2454
2565
|
* Reverse the queue in-place by compacting then reversing.
|
|
2455
2566
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2492,6 +2603,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2492
2603
|
|
|
2493
2604
|
|
|
2494
2605
|
|
|
2606
|
+
|
|
2607
|
+
|
|
2608
|
+
|
|
2609
|
+
|
|
2495
2610
|
|
|
2496
2611
|
|
|
2497
2612
|
|
|
@@ -2538,6 +2653,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2538
2653
|
|
|
2539
2654
|
|
|
2540
2655
|
|
|
2656
|
+
|
|
2657
|
+
|
|
2658
|
+
|
|
2659
|
+
|
|
2541
2660
|
|
|
2542
2661
|
|
|
2543
2662
|
|
|
@@ -2607,6 +2726,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2607
2726
|
|
|
2608
2727
|
|
|
2609
2728
|
|
|
2729
|
+
|
|
2730
|
+
|
|
2731
|
+
|
|
2732
|
+
|
|
2610
2733
|
|
|
2611
2734
|
|
|
2612
2735
|
|
|
@@ -2660,6 +2783,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2660
2783
|
|
|
2661
2784
|
|
|
2662
2785
|
|
|
2786
|
+
|
|
2787
|
+
|
|
2788
|
+
|
|
2789
|
+
|
|
2663
2790
|
|
|
2664
2791
|
|
|
2665
2792
|
|
|
@@ -2717,6 +2844,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2717
2844
|
|
|
2718
2845
|
|
|
2719
2846
|
|
|
2847
|
+
|
|
2848
|
+
|
|
2849
|
+
|
|
2850
|
+
|
|
2720
2851
|
|
|
2721
2852
|
|
|
2722
2853
|
|
|
@@ -2996,6 +3127,9 @@ var Deque = class extends LinearBase {
|
|
|
2996
3127
|
|
|
2997
3128
|
|
|
2998
3129
|
|
|
3130
|
+
|
|
3131
|
+
|
|
3132
|
+
|
|
2999
3133
|
|
|
3000
3134
|
|
|
3001
3135
|
|
|
@@ -3013,6 +3147,31 @@ var Deque = class extends LinearBase {
|
|
|
3013
3147
|
* console.log(last); // 50;
|
|
3014
3148
|
*
|
|
3015
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
|
|
3016
3175
|
* console.log(deque.length); // 5;
|
|
3017
3176
|
*/
|
|
3018
3177
|
get first() {
|
|
@@ -3053,6 +3212,10 @@ var Deque = class extends LinearBase {
|
|
|
3053
3212
|
|
|
3054
3213
|
|
|
3055
3214
|
|
|
3215
|
+
|
|
3216
|
+
|
|
3217
|
+
|
|
3218
|
+
|
|
3056
3219
|
|
|
3057
3220
|
|
|
3058
3221
|
|
|
@@ -3116,6 +3279,10 @@ var Deque = class extends LinearBase {
|
|
|
3116
3279
|
|
|
3117
3280
|
|
|
3118
3281
|
|
|
3282
|
+
|
|
3283
|
+
|
|
3284
|
+
|
|
3285
|
+
|
|
3119
3286
|
|
|
3120
3287
|
|
|
3121
3288
|
|
|
@@ -3192,6 +3359,10 @@ var Deque = class extends LinearBase {
|
|
|
3192
3359
|
|
|
3193
3360
|
|
|
3194
3361
|
|
|
3362
|
+
|
|
3363
|
+
|
|
3364
|
+
|
|
3365
|
+
|
|
3195
3366
|
|
|
3196
3367
|
|
|
3197
3368
|
|
|
@@ -3255,6 +3426,10 @@ var Deque = class extends LinearBase {
|
|
|
3255
3426
|
|
|
3256
3427
|
|
|
3257
3428
|
|
|
3429
|
+
|
|
3430
|
+
|
|
3431
|
+
|
|
3432
|
+
|
|
3258
3433
|
|
|
3259
3434
|
|
|
3260
3435
|
|
|
@@ -3319,6 +3494,10 @@ var Deque = class extends LinearBase {
|
|
|
3319
3494
|
|
|
3320
3495
|
|
|
3321
3496
|
|
|
3497
|
+
|
|
3498
|
+
|
|
3499
|
+
|
|
3500
|
+
|
|
3322
3501
|
|
|
3323
3502
|
|
|
3324
3503
|
|
|
@@ -3424,6 +3603,10 @@ var Deque = class extends LinearBase {
|
|
|
3424
3603
|
|
|
3425
3604
|
|
|
3426
3605
|
|
|
3606
|
+
|
|
3607
|
+
|
|
3608
|
+
|
|
3609
|
+
|
|
3427
3610
|
|
|
3428
3611
|
|
|
3429
3612
|
|
|
@@ -3469,6 +3652,10 @@ var Deque = class extends LinearBase {
|
|
|
3469
3652
|
|
|
3470
3653
|
|
|
3471
3654
|
|
|
3655
|
+
|
|
3656
|
+
|
|
3657
|
+
|
|
3658
|
+
|
|
3472
3659
|
|
|
3473
3660
|
|
|
3474
3661
|
|
|
@@ -3518,6 +3705,10 @@ var Deque = class extends LinearBase {
|
|
|
3518
3705
|
|
|
3519
3706
|
|
|
3520
3707
|
|
|
3708
|
+
|
|
3709
|
+
|
|
3710
|
+
|
|
3711
|
+
|
|
3521
3712
|
|
|
3522
3713
|
|
|
3523
3714
|
|
|
@@ -3718,6 +3909,10 @@ var Deque = class extends LinearBase {
|
|
|
3718
3909
|
|
|
3719
3910
|
|
|
3720
3911
|
|
|
3912
|
+
|
|
3913
|
+
|
|
3914
|
+
|
|
3915
|
+
|
|
3721
3916
|
|
|
3722
3917
|
|
|
3723
3918
|
|
|
@@ -3805,6 +4000,10 @@ var Deque = class extends LinearBase {
|
|
|
3805
4000
|
|
|
3806
4001
|
|
|
3807
4002
|
|
|
4003
|
+
|
|
4004
|
+
|
|
4005
|
+
|
|
4006
|
+
|
|
3808
4007
|
|
|
3809
4008
|
|
|
3810
4009
|
|
|
@@ -3917,6 +4116,10 @@ var Deque = class extends LinearBase {
|
|
|
3917
4116
|
|
|
3918
4117
|
|
|
3919
4118
|
|
|
4119
|
+
|
|
4120
|
+
|
|
4121
|
+
|
|
4122
|
+
|
|
3920
4123
|
|
|
3921
4124
|
|
|
3922
4125
|
|
|
@@ -3988,6 +4191,10 @@ var Deque = class extends LinearBase {
|
|
|
3988
4191
|
|
|
3989
4192
|
|
|
3990
4193
|
|
|
4194
|
+
|
|
4195
|
+
|
|
4196
|
+
|
|
4197
|
+
|
|
3991
4198
|
|
|
3992
4199
|
|
|
3993
4200
|
|
|
@@ -4042,6 +4249,10 @@ var Deque = class extends LinearBase {
|
|
|
4042
4249
|
|
|
4043
4250
|
|
|
4044
4251
|
|
|
4252
|
+
|
|
4253
|
+
|
|
4254
|
+
|
|
4255
|
+
|
|
4045
4256
|
|
|
4046
4257
|
|
|
4047
4258
|
|
|
@@ -4116,6 +4327,10 @@ var Deque = class extends LinearBase {
|
|
|
4116
4327
|
|
|
4117
4328
|
|
|
4118
4329
|
|
|
4330
|
+
|
|
4331
|
+
|
|
4332
|
+
|
|
4333
|
+
|
|
4119
4334
|
|
|
4120
4335
|
|
|
4121
4336
|
|
package/dist/cjs/stack.cjs
CHANGED
|
@@ -290,6 +290,10 @@ var Stack = class extends IterableElementBase {
|
|
|
290
290
|
|
|
291
291
|
|
|
292
292
|
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
293
297
|
|
|
294
298
|
|
|
295
299
|
|
|
@@ -350,6 +354,10 @@ var Stack = class extends IterableElementBase {
|
|
|
350
354
|
|
|
351
355
|
|
|
352
356
|
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
|
|
353
361
|
|
|
354
362
|
|
|
355
363
|
|
|
@@ -399,6 +407,10 @@ var Stack = class extends IterableElementBase {
|
|
|
399
407
|
|
|
400
408
|
|
|
401
409
|
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
|
|
402
414
|
|
|
403
415
|
|
|
404
416
|
|
|
@@ -448,6 +460,10 @@ var Stack = class extends IterableElementBase {
|
|
|
448
460
|
|
|
449
461
|
|
|
450
462
|
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
|
|
451
467
|
|
|
452
468
|
|
|
453
469
|
|
|
@@ -506,6 +522,10 @@ var Stack = class extends IterableElementBase {
|
|
|
506
522
|
|
|
507
523
|
|
|
508
524
|
|
|
525
|
+
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
|
|
509
529
|
|
|
510
530
|
|
|
511
531
|
|
|
@@ -579,6 +599,10 @@ var Stack = class extends IterableElementBase {
|
|
|
579
599
|
|
|
580
600
|
|
|
581
601
|
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
|
|
605
|
+
|
|
582
606
|
|
|
583
607
|
|
|
584
608
|
|
|
@@ -592,18 +616,18 @@ var Stack = class extends IterableElementBase {
|
|
|
592
616
|
*/
|
|
593
617
|
delete(element) {
|
|
594
618
|
const idx = this._indexOfByEquals(element);
|
|
595
|
-
return this.deleteAt(idx);
|
|
619
|
+
return this.deleteAt(idx) !== void 0;
|
|
596
620
|
}
|
|
597
621
|
/**
|
|
598
622
|
* Delete the element at an index.
|
|
599
623
|
* @remarks Time O(N), Space O(1)
|
|
600
624
|
* @param index - Zero-based index from the bottom.
|
|
601
|
-
* @returns
|
|
625
|
+
* @returns The removed element, or undefined if the index is out of range.
|
|
602
626
|
*/
|
|
603
627
|
deleteAt(index) {
|
|
604
|
-
if (index < 0 || index >= this.elements.length) return
|
|
628
|
+
if (index < 0 || index >= this.elements.length) return void 0;
|
|
605
629
|
const spliced = this.elements.splice(index, 1);
|
|
606
|
-
return spliced
|
|
630
|
+
return spliced[0];
|
|
607
631
|
}
|
|
608
632
|
/**
|
|
609
633
|
* Delete the first element that satisfies a predicate.
|
|
@@ -652,6 +676,10 @@ var Stack = class extends IterableElementBase {
|
|
|
652
676
|
|
|
653
677
|
|
|
654
678
|
|
|
679
|
+
|
|
680
|
+
|
|
681
|
+
|
|
682
|
+
|
|
655
683
|
|
|
656
684
|
|
|
657
685
|
|
|
@@ -698,6 +726,10 @@ var Stack = class extends IterableElementBase {
|
|
|
698
726
|
|
|
699
727
|
|
|
700
728
|
|
|
729
|
+
|
|
730
|
+
|
|
731
|
+
|
|
732
|
+
|
|
701
733
|
|
|
702
734
|
|
|
703
735
|
|
|
@@ -750,6 +782,10 @@ var Stack = class extends IterableElementBase {
|
|
|
750
782
|
|
|
751
783
|
|
|
752
784
|
|
|
785
|
+
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
|
|
753
789
|
|
|
754
790
|
|
|
755
791
|
|
|
@@ -822,6 +858,10 @@ var Stack = class extends IterableElementBase {
|
|
|
822
858
|
|
|
823
859
|
|
|
824
860
|
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
|
|
864
|
+
|
|
825
865
|
|
|
826
866
|
|
|
827
867
|
|