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/esm/queue.mjs
CHANGED
|
@@ -763,6 +763,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
763
763
|
|
|
764
764
|
|
|
765
765
|
|
|
766
|
+
|
|
767
|
+
|
|
768
|
+
|
|
769
|
+
|
|
766
770
|
|
|
767
771
|
|
|
768
772
|
|
|
@@ -830,6 +834,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
830
834
|
|
|
831
835
|
|
|
832
836
|
|
|
837
|
+
|
|
838
|
+
|
|
839
|
+
|
|
840
|
+
|
|
833
841
|
|
|
834
842
|
|
|
835
843
|
|
|
@@ -902,6 +910,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
902
910
|
|
|
903
911
|
|
|
904
912
|
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
|
|
905
917
|
|
|
906
918
|
|
|
907
919
|
|
|
@@ -956,6 +968,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
956
968
|
|
|
957
969
|
|
|
958
970
|
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
|
|
974
|
+
|
|
959
975
|
|
|
960
976
|
|
|
961
977
|
|
|
@@ -1071,6 +1087,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1071
1087
|
|
|
1072
1088
|
|
|
1073
1089
|
|
|
1090
|
+
|
|
1091
|
+
|
|
1092
|
+
|
|
1093
|
+
|
|
1074
1094
|
|
|
1075
1095
|
|
|
1076
1096
|
|
|
@@ -1130,6 +1150,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1130
1150
|
|
|
1131
1151
|
|
|
1132
1152
|
|
|
1153
|
+
|
|
1154
|
+
|
|
1155
|
+
|
|
1156
|
+
|
|
1133
1157
|
|
|
1134
1158
|
|
|
1135
1159
|
|
|
@@ -1178,6 +1202,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1178
1202
|
|
|
1179
1203
|
|
|
1180
1204
|
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
|
|
1208
|
+
|
|
1181
1209
|
|
|
1182
1210
|
|
|
1183
1211
|
|
|
@@ -1232,6 +1260,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1232
1260
|
|
|
1233
1261
|
|
|
1234
1262
|
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
|
|
1235
1267
|
|
|
1236
1268
|
|
|
1237
1269
|
|
|
@@ -1291,6 +1323,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1291
1323
|
|
|
1292
1324
|
|
|
1293
1325
|
|
|
1326
|
+
|
|
1327
|
+
|
|
1328
|
+
|
|
1329
|
+
|
|
1294
1330
|
|
|
1295
1331
|
|
|
1296
1332
|
|
|
@@ -1358,6 +1394,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1358
1394
|
|
|
1359
1395
|
|
|
1360
1396
|
|
|
1397
|
+
|
|
1398
|
+
|
|
1399
|
+
|
|
1400
|
+
|
|
1361
1401
|
|
|
1362
1402
|
|
|
1363
1403
|
|
|
@@ -1402,6 +1442,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1402
1442
|
|
|
1403
1443
|
|
|
1404
1444
|
|
|
1445
|
+
|
|
1446
|
+
|
|
1447
|
+
|
|
1448
|
+
|
|
1405
1449
|
|
|
1406
1450
|
|
|
1407
1451
|
|
|
@@ -1452,6 +1496,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1452
1496
|
|
|
1453
1497
|
|
|
1454
1498
|
|
|
1499
|
+
|
|
1500
|
+
|
|
1501
|
+
|
|
1502
|
+
|
|
1455
1503
|
|
|
1456
1504
|
|
|
1457
1505
|
|
|
@@ -1668,6 +1716,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1668
1716
|
|
|
1669
1717
|
|
|
1670
1718
|
|
|
1719
|
+
|
|
1720
|
+
|
|
1721
|
+
|
|
1722
|
+
|
|
1671
1723
|
|
|
1672
1724
|
|
|
1673
1725
|
|
|
@@ -1722,6 +1774,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1722
1774
|
|
|
1723
1775
|
|
|
1724
1776
|
|
|
1777
|
+
|
|
1778
|
+
|
|
1779
|
+
|
|
1780
|
+
|
|
1725
1781
|
|
|
1726
1782
|
|
|
1727
1783
|
|
|
@@ -1804,6 +1860,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
|
|
|
1804
1860
|
|
|
1805
1861
|
|
|
1806
1862
|
|
|
1863
|
+
|
|
1864
|
+
|
|
1865
|
+
|
|
1866
|
+
|
|
1807
1867
|
|
|
1808
1868
|
|
|
1809
1869
|
|
|
@@ -2039,6 +2099,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2039
2099
|
|
|
2040
2100
|
|
|
2041
2101
|
|
|
2102
|
+
|
|
2103
|
+
|
|
2104
|
+
|
|
2105
|
+
|
|
2042
2106
|
|
|
2043
2107
|
|
|
2044
2108
|
|
|
@@ -2089,6 +2153,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2089
2153
|
|
|
2090
2154
|
|
|
2091
2155
|
|
|
2156
|
+
|
|
2157
|
+
|
|
2158
|
+
|
|
2159
|
+
|
|
2092
2160
|
|
|
2093
2161
|
|
|
2094
2162
|
|
|
@@ -2103,6 +2171,14 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2103
2171
|
get first() {
|
|
2104
2172
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
2105
2173
|
}
|
|
2174
|
+
/**
|
|
2175
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2176
|
+
* @remarks Time O(1), Space O(1)
|
|
2177
|
+
* @returns Front element or undefined.
|
|
2178
|
+
*/
|
|
2179
|
+
peek() {
|
|
2180
|
+
return this.first;
|
|
2181
|
+
}
|
|
2106
2182
|
/**
|
|
2107
2183
|
* Get the last element (back) without removing it.
|
|
2108
2184
|
* @remarks Time O(1), Space O(1)
|
|
@@ -2155,6 +2231,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2155
2231
|
|
|
2156
2232
|
|
|
2157
2233
|
|
|
2234
|
+
|
|
2235
|
+
|
|
2236
|
+
|
|
2237
|
+
|
|
2158
2238
|
|
|
2159
2239
|
|
|
2160
2240
|
|
|
@@ -2217,6 +2297,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2217
2297
|
|
|
2218
2298
|
|
|
2219
2299
|
|
|
2300
|
+
|
|
2301
|
+
|
|
2302
|
+
|
|
2303
|
+
|
|
2220
2304
|
|
|
2221
2305
|
|
|
2222
2306
|
|
|
@@ -2286,6 +2370,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2286
2370
|
|
|
2287
2371
|
|
|
2288
2372
|
|
|
2373
|
+
|
|
2374
|
+
|
|
2375
|
+
|
|
2376
|
+
|
|
2289
2377
|
|
|
2290
2378
|
|
|
2291
2379
|
|
|
@@ -2345,6 +2433,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2345
2433
|
|
|
2346
2434
|
|
|
2347
2435
|
|
|
2436
|
+
|
|
2437
|
+
|
|
2438
|
+
|
|
2439
|
+
|
|
2348
2440
|
|
|
2349
2441
|
|
|
2350
2442
|
|
|
@@ -2397,6 +2489,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2397
2489
|
|
|
2398
2490
|
|
|
2399
2491
|
|
|
2492
|
+
|
|
2493
|
+
|
|
2494
|
+
|
|
2495
|
+
|
|
2400
2496
|
|
|
2401
2497
|
|
|
2402
2498
|
|
|
@@ -2448,6 +2544,21 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2448
2544
|
this._elements[this._offset + index] = newElement;
|
|
2449
2545
|
return true;
|
|
2450
2546
|
}
|
|
2547
|
+
/**
|
|
2548
|
+
* Delete the first element that satisfies a predicate.
|
|
2549
|
+
* @remarks Time O(N), Space O(N)
|
|
2550
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2551
|
+
* @returns True if a match was removed.
|
|
2552
|
+
*/
|
|
2553
|
+
deleteWhere(predicate) {
|
|
2554
|
+
for (let i = 0; i < this.length; i++) {
|
|
2555
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2556
|
+
this.deleteAt(i);
|
|
2557
|
+
return true;
|
|
2558
|
+
}
|
|
2559
|
+
}
|
|
2560
|
+
return false;
|
|
2561
|
+
}
|
|
2451
2562
|
/**
|
|
2452
2563
|
* Reverse the queue in-place by compacting then reversing.
|
|
2453
2564
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2490,6 +2601,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2490
2601
|
|
|
2491
2602
|
|
|
2492
2603
|
|
|
2604
|
+
|
|
2605
|
+
|
|
2606
|
+
|
|
2607
|
+
|
|
2493
2608
|
|
|
2494
2609
|
|
|
2495
2610
|
|
|
@@ -2536,6 +2651,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2536
2651
|
|
|
2537
2652
|
|
|
2538
2653
|
|
|
2654
|
+
|
|
2655
|
+
|
|
2656
|
+
|
|
2657
|
+
|
|
2539
2658
|
|
|
2540
2659
|
|
|
2541
2660
|
|
|
@@ -2605,6 +2724,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2605
2724
|
|
|
2606
2725
|
|
|
2607
2726
|
|
|
2727
|
+
|
|
2728
|
+
|
|
2729
|
+
|
|
2730
|
+
|
|
2608
2731
|
|
|
2609
2732
|
|
|
2610
2733
|
|
|
@@ -2658,6 +2781,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2658
2781
|
|
|
2659
2782
|
|
|
2660
2783
|
|
|
2784
|
+
|
|
2785
|
+
|
|
2786
|
+
|
|
2787
|
+
|
|
2661
2788
|
|
|
2662
2789
|
|
|
2663
2790
|
|
|
@@ -2715,6 +2842,10 @@ var Queue = class _Queue extends LinearBase {
|
|
|
2715
2842
|
|
|
2716
2843
|
|
|
2717
2844
|
|
|
2845
|
+
|
|
2846
|
+
|
|
2847
|
+
|
|
2848
|
+
|
|
2718
2849
|
|
|
2719
2850
|
|
|
2720
2851
|
|
|
@@ -2994,6 +3125,9 @@ var Deque = class extends LinearBase {
|
|
|
2994
3125
|
|
|
2995
3126
|
|
|
2996
3127
|
|
|
3128
|
+
|
|
3129
|
+
|
|
3130
|
+
|
|
2997
3131
|
|
|
2998
3132
|
|
|
2999
3133
|
|
|
@@ -3011,6 +3145,31 @@ var Deque = class extends LinearBase {
|
|
|
3011
3145
|
* console.log(last); // 50;
|
|
3012
3146
|
*
|
|
3013
3147
|
* // Length unchanged
|
|
3148
|
+
* console.log(deque.length); // 5;
|
|
3149
|
+
*/
|
|
3150
|
+
/**
|
|
3151
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
3152
|
+
* @remarks Time O(1), Space O(1)
|
|
3153
|
+
* @returns Front element or undefined.
|
|
3154
|
+
*/
|
|
3155
|
+
peek() {
|
|
3156
|
+
return this.first;
|
|
3157
|
+
}
|
|
3158
|
+
/**
|
|
3159
|
+
* Deque peek at both ends
|
|
3160
|
+
* @example
|
|
3161
|
+
* // Deque peek at both ends
|
|
3162
|
+
* const deque = new Deque<number>([10, 20, 30, 40, 50]);
|
|
3163
|
+
*
|
|
3164
|
+
* // Get first element without removing
|
|
3165
|
+
* const first = deque.at(0);
|
|
3166
|
+
* console.log(first); // 10;
|
|
3167
|
+
*
|
|
3168
|
+
* // Get last element without removing
|
|
3169
|
+
* const last = deque.at(deque.length - 1);
|
|
3170
|
+
* console.log(last); // 50;
|
|
3171
|
+
*
|
|
3172
|
+
* // Length unchanged
|
|
3014
3173
|
* console.log(deque.length); // 5;
|
|
3015
3174
|
*/
|
|
3016
3175
|
get first() {
|
|
@@ -3051,6 +3210,10 @@ var Deque = class extends LinearBase {
|
|
|
3051
3210
|
|
|
3052
3211
|
|
|
3053
3212
|
|
|
3213
|
+
|
|
3214
|
+
|
|
3215
|
+
|
|
3216
|
+
|
|
3054
3217
|
|
|
3055
3218
|
|
|
3056
3219
|
|
|
@@ -3114,6 +3277,10 @@ var Deque = class extends LinearBase {
|
|
|
3114
3277
|
|
|
3115
3278
|
|
|
3116
3279
|
|
|
3280
|
+
|
|
3281
|
+
|
|
3282
|
+
|
|
3283
|
+
|
|
3117
3284
|
|
|
3118
3285
|
|
|
3119
3286
|
|
|
@@ -3190,6 +3357,10 @@ var Deque = class extends LinearBase {
|
|
|
3190
3357
|
|
|
3191
3358
|
|
|
3192
3359
|
|
|
3360
|
+
|
|
3361
|
+
|
|
3362
|
+
|
|
3363
|
+
|
|
3193
3364
|
|
|
3194
3365
|
|
|
3195
3366
|
|
|
@@ -3253,6 +3424,10 @@ var Deque = class extends LinearBase {
|
|
|
3253
3424
|
|
|
3254
3425
|
|
|
3255
3426
|
|
|
3427
|
+
|
|
3428
|
+
|
|
3429
|
+
|
|
3430
|
+
|
|
3256
3431
|
|
|
3257
3432
|
|
|
3258
3433
|
|
|
@@ -3317,6 +3492,10 @@ var Deque = class extends LinearBase {
|
|
|
3317
3492
|
|
|
3318
3493
|
|
|
3319
3494
|
|
|
3495
|
+
|
|
3496
|
+
|
|
3497
|
+
|
|
3498
|
+
|
|
3320
3499
|
|
|
3321
3500
|
|
|
3322
3501
|
|
|
@@ -3422,6 +3601,10 @@ var Deque = class extends LinearBase {
|
|
|
3422
3601
|
|
|
3423
3602
|
|
|
3424
3603
|
|
|
3604
|
+
|
|
3605
|
+
|
|
3606
|
+
|
|
3607
|
+
|
|
3425
3608
|
|
|
3426
3609
|
|
|
3427
3610
|
|
|
@@ -3467,6 +3650,10 @@ var Deque = class extends LinearBase {
|
|
|
3467
3650
|
|
|
3468
3651
|
|
|
3469
3652
|
|
|
3653
|
+
|
|
3654
|
+
|
|
3655
|
+
|
|
3656
|
+
|
|
3470
3657
|
|
|
3471
3658
|
|
|
3472
3659
|
|
|
@@ -3516,6 +3703,10 @@ var Deque = class extends LinearBase {
|
|
|
3516
3703
|
|
|
3517
3704
|
|
|
3518
3705
|
|
|
3706
|
+
|
|
3707
|
+
|
|
3708
|
+
|
|
3709
|
+
|
|
3519
3710
|
|
|
3520
3711
|
|
|
3521
3712
|
|
|
@@ -3716,6 +3907,10 @@ var Deque = class extends LinearBase {
|
|
|
3716
3907
|
|
|
3717
3908
|
|
|
3718
3909
|
|
|
3910
|
+
|
|
3911
|
+
|
|
3912
|
+
|
|
3913
|
+
|
|
3719
3914
|
|
|
3720
3915
|
|
|
3721
3916
|
|
|
@@ -3803,6 +3998,10 @@ var Deque = class extends LinearBase {
|
|
|
3803
3998
|
|
|
3804
3999
|
|
|
3805
4000
|
|
|
4001
|
+
|
|
4002
|
+
|
|
4003
|
+
|
|
4004
|
+
|
|
3806
4005
|
|
|
3807
4006
|
|
|
3808
4007
|
|
|
@@ -3915,6 +4114,10 @@ var Deque = class extends LinearBase {
|
|
|
3915
4114
|
|
|
3916
4115
|
|
|
3917
4116
|
|
|
4117
|
+
|
|
4118
|
+
|
|
4119
|
+
|
|
4120
|
+
|
|
3918
4121
|
|
|
3919
4122
|
|
|
3920
4123
|
|
|
@@ -3986,6 +4189,10 @@ var Deque = class extends LinearBase {
|
|
|
3986
4189
|
|
|
3987
4190
|
|
|
3988
4191
|
|
|
4192
|
+
|
|
4193
|
+
|
|
4194
|
+
|
|
4195
|
+
|
|
3989
4196
|
|
|
3990
4197
|
|
|
3991
4198
|
|
|
@@ -4040,6 +4247,10 @@ var Deque = class extends LinearBase {
|
|
|
4040
4247
|
|
|
4041
4248
|
|
|
4042
4249
|
|
|
4250
|
+
|
|
4251
|
+
|
|
4252
|
+
|
|
4253
|
+
|
|
4043
4254
|
|
|
4044
4255
|
|
|
4045
4256
|
|
|
@@ -4114,6 +4325,10 @@ var Deque = class extends LinearBase {
|
|
|
4114
4325
|
|
|
4115
4326
|
|
|
4116
4327
|
|
|
4328
|
+
|
|
4329
|
+
|
|
4330
|
+
|
|
4331
|
+
|
|
4117
4332
|
|
|
4118
4333
|
|
|
4119
4334
|
|
package/dist/esm/stack.mjs
CHANGED
|
@@ -288,6 +288,10 @@ var Stack = class extends IterableElementBase {
|
|
|
288
288
|
|
|
289
289
|
|
|
290
290
|
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
291
295
|
|
|
292
296
|
|
|
293
297
|
|
|
@@ -348,6 +352,10 @@ var Stack = class extends IterableElementBase {
|
|
|
348
352
|
|
|
349
353
|
|
|
350
354
|
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
|
|
351
359
|
|
|
352
360
|
|
|
353
361
|
|
|
@@ -397,6 +405,10 @@ var Stack = class extends IterableElementBase {
|
|
|
397
405
|
|
|
398
406
|
|
|
399
407
|
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
400
412
|
|
|
401
413
|
|
|
402
414
|
|
|
@@ -446,6 +458,10 @@ var Stack = class extends IterableElementBase {
|
|
|
446
458
|
|
|
447
459
|
|
|
448
460
|
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
|
|
449
465
|
|
|
450
466
|
|
|
451
467
|
|
|
@@ -504,6 +520,10 @@ var Stack = class extends IterableElementBase {
|
|
|
504
520
|
|
|
505
521
|
|
|
506
522
|
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
|
|
507
527
|
|
|
508
528
|
|
|
509
529
|
|
|
@@ -577,6 +597,10 @@ var Stack = class extends IterableElementBase {
|
|
|
577
597
|
|
|
578
598
|
|
|
579
599
|
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
|
|
580
604
|
|
|
581
605
|
|
|
582
606
|
|
|
@@ -590,18 +614,18 @@ var Stack = class extends IterableElementBase {
|
|
|
590
614
|
*/
|
|
591
615
|
delete(element) {
|
|
592
616
|
const idx = this._indexOfByEquals(element);
|
|
593
|
-
return this.deleteAt(idx);
|
|
617
|
+
return this.deleteAt(idx) !== void 0;
|
|
594
618
|
}
|
|
595
619
|
/**
|
|
596
620
|
* Delete the element at an index.
|
|
597
621
|
* @remarks Time O(N), Space O(1)
|
|
598
622
|
* @param index - Zero-based index from the bottom.
|
|
599
|
-
* @returns
|
|
623
|
+
* @returns The removed element, or undefined if the index is out of range.
|
|
600
624
|
*/
|
|
601
625
|
deleteAt(index) {
|
|
602
|
-
if (index < 0 || index >= this.elements.length) return
|
|
626
|
+
if (index < 0 || index >= this.elements.length) return void 0;
|
|
603
627
|
const spliced = this.elements.splice(index, 1);
|
|
604
|
-
return spliced
|
|
628
|
+
return spliced[0];
|
|
605
629
|
}
|
|
606
630
|
/**
|
|
607
631
|
* Delete the first element that satisfies a predicate.
|
|
@@ -650,6 +674,10 @@ var Stack = class extends IterableElementBase {
|
|
|
650
674
|
|
|
651
675
|
|
|
652
676
|
|
|
677
|
+
|
|
678
|
+
|
|
679
|
+
|
|
680
|
+
|
|
653
681
|
|
|
654
682
|
|
|
655
683
|
|
|
@@ -696,6 +724,10 @@ var Stack = class extends IterableElementBase {
|
|
|
696
724
|
|
|
697
725
|
|
|
698
726
|
|
|
727
|
+
|
|
728
|
+
|
|
729
|
+
|
|
730
|
+
|
|
699
731
|
|
|
700
732
|
|
|
701
733
|
|
|
@@ -748,6 +780,10 @@ var Stack = class extends IterableElementBase {
|
|
|
748
780
|
|
|
749
781
|
|
|
750
782
|
|
|
783
|
+
|
|
784
|
+
|
|
785
|
+
|
|
786
|
+
|
|
751
787
|
|
|
752
788
|
|
|
753
789
|
|
|
@@ -820,6 +856,10 @@ var Stack = class extends IterableElementBase {
|
|
|
820
856
|
|
|
821
857
|
|
|
822
858
|
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
|
|
862
|
+
|
|
823
863
|
|
|
824
864
|
|
|
825
865
|
|