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
|
@@ -761,6 +761,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
761
761
|
|
|
762
762
|
|
|
763
763
|
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
|
|
767
|
+
|
|
764
768
|
|
|
765
769
|
|
|
766
770
|
|
|
@@ -828,6 +832,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
828
832
|
|
|
829
833
|
|
|
830
834
|
|
|
835
|
+
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
|
|
831
839
|
|
|
832
840
|
|
|
833
841
|
|
|
@@ -901,6 +909,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
901
909
|
|
|
902
910
|
|
|
903
911
|
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
|
|
904
916
|
|
|
905
917
|
|
|
906
918
|
|
|
@@ -955,6 +967,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
955
967
|
|
|
956
968
|
|
|
957
969
|
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
|
|
958
974
|
|
|
959
975
|
|
|
960
976
|
|
|
@@ -1070,6 +1086,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1070
1086
|
|
|
1071
1087
|
|
|
1072
1088
|
|
|
1089
|
+
|
|
1090
|
+
|
|
1091
|
+
|
|
1092
|
+
|
|
1073
1093
|
|
|
1074
1094
|
|
|
1075
1095
|
|
|
@@ -1129,6 +1149,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1129
1149
|
|
|
1130
1150
|
|
|
1131
1151
|
|
|
1152
|
+
|
|
1153
|
+
|
|
1154
|
+
|
|
1155
|
+
|
|
1132
1156
|
|
|
1133
1157
|
|
|
1134
1158
|
|
|
@@ -1177,6 +1201,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1177
1201
|
|
|
1178
1202
|
|
|
1179
1203
|
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
|
|
1180
1208
|
|
|
1181
1209
|
|
|
1182
1210
|
|
|
@@ -1231,6 +1259,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1231
1259
|
|
|
1232
1260
|
|
|
1233
1261
|
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
|
|
1234
1266
|
|
|
1235
1267
|
|
|
1236
1268
|
|
|
@@ -1290,6 +1322,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1290
1322
|
|
|
1291
1323
|
|
|
1292
1324
|
|
|
1325
|
+
|
|
1326
|
+
|
|
1327
|
+
|
|
1328
|
+
|
|
1293
1329
|
|
|
1294
1330
|
|
|
1295
1331
|
|
|
@@ -1357,6 +1393,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1357
1393
|
|
|
1358
1394
|
|
|
1359
1395
|
|
|
1396
|
+
|
|
1397
|
+
|
|
1398
|
+
|
|
1399
|
+
|
|
1360
1400
|
|
|
1361
1401
|
|
|
1362
1402
|
|
|
@@ -1401,6 +1441,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1401
1441
|
|
|
1402
1442
|
|
|
1403
1443
|
|
|
1444
|
+
|
|
1445
|
+
|
|
1446
|
+
|
|
1447
|
+
|
|
1404
1448
|
|
|
1405
1449
|
|
|
1406
1450
|
|
|
@@ -1451,6 +1495,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1451
1495
|
|
|
1452
1496
|
|
|
1453
1497
|
|
|
1498
|
+
|
|
1499
|
+
|
|
1500
|
+
|
|
1501
|
+
|
|
1454
1502
|
|
|
1455
1503
|
|
|
1456
1504
|
|
|
@@ -1667,6 +1715,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1667
1715
|
|
|
1668
1716
|
|
|
1669
1717
|
|
|
1718
|
+
|
|
1719
|
+
|
|
1720
|
+
|
|
1721
|
+
|
|
1670
1722
|
|
|
1671
1723
|
|
|
1672
1724
|
|
|
@@ -1721,6 +1773,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1721
1773
|
|
|
1722
1774
|
|
|
1723
1775
|
|
|
1776
|
+
|
|
1777
|
+
|
|
1778
|
+
|
|
1779
|
+
|
|
1724
1780
|
|
|
1725
1781
|
|
|
1726
1782
|
|
|
@@ -1803,6 +1859,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1803
1859
|
|
|
1804
1860
|
|
|
1805
1861
|
|
|
1862
|
+
|
|
1863
|
+
|
|
1864
|
+
|
|
1865
|
+
|
|
1806
1866
|
|
|
1807
1867
|
|
|
1808
1868
|
|
|
@@ -2037,6 +2097,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2037
2097
|
|
|
2038
2098
|
|
|
2039
2099
|
|
|
2100
|
+
|
|
2101
|
+
|
|
2102
|
+
|
|
2103
|
+
|
|
2040
2104
|
|
|
2041
2105
|
|
|
2042
2106
|
|
|
@@ -2087,6 +2151,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2087
2151
|
|
|
2088
2152
|
|
|
2089
2153
|
|
|
2154
|
+
|
|
2155
|
+
|
|
2156
|
+
|
|
2157
|
+
|
|
2090
2158
|
|
|
2091
2159
|
|
|
2092
2160
|
|
|
@@ -2101,6 +2169,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2101
2169
|
get first() {
|
|
2102
2170
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
2103
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
|
+
}
|
|
2104
2180
|
/**
|
|
2105
2181
|
* Get the last element (back) without removing it.
|
|
2106
2182
|
* @remarks Time O(1), Space O(1)
|
|
@@ -2153,6 +2229,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2153
2229
|
|
|
2154
2230
|
|
|
2155
2231
|
|
|
2232
|
+
|
|
2233
|
+
|
|
2234
|
+
|
|
2235
|
+
|
|
2156
2236
|
|
|
2157
2237
|
|
|
2158
2238
|
|
|
@@ -2215,6 +2295,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2215
2295
|
|
|
2216
2296
|
|
|
2217
2297
|
|
|
2298
|
+
|
|
2299
|
+
|
|
2300
|
+
|
|
2301
|
+
|
|
2218
2302
|
|
|
2219
2303
|
|
|
2220
2304
|
|
|
@@ -2284,6 +2368,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2284
2368
|
|
|
2285
2369
|
|
|
2286
2370
|
|
|
2371
|
+
|
|
2372
|
+
|
|
2373
|
+
|
|
2374
|
+
|
|
2287
2375
|
|
|
2288
2376
|
|
|
2289
2377
|
|
|
@@ -2343,6 +2431,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2343
2431
|
|
|
2344
2432
|
|
|
2345
2433
|
|
|
2434
|
+
|
|
2435
|
+
|
|
2436
|
+
|
|
2437
|
+
|
|
2346
2438
|
|
|
2347
2439
|
|
|
2348
2440
|
|
|
@@ -2395,6 +2487,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2395
2487
|
|
|
2396
2488
|
|
|
2397
2489
|
|
|
2490
|
+
|
|
2491
|
+
|
|
2492
|
+
|
|
2493
|
+
|
|
2398
2494
|
|
|
2399
2495
|
|
|
2400
2496
|
|
|
@@ -2446,6 +2542,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2446
2542
|
this._elements[this._offset + index] = newElement;
|
|
2447
2543
|
return true;
|
|
2448
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
|
+
}
|
|
2449
2560
|
/**
|
|
2450
2561
|
* Reverse the queue in-place by compacting then reversing.
|
|
2451
2562
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2488,6 +2599,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2488
2599
|
|
|
2489
2600
|
|
|
2490
2601
|
|
|
2602
|
+
|
|
2603
|
+
|
|
2604
|
+
|
|
2605
|
+
|
|
2491
2606
|
|
|
2492
2607
|
|
|
2493
2608
|
|
|
@@ -2534,6 +2649,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2534
2649
|
|
|
2535
2650
|
|
|
2536
2651
|
|
|
2652
|
+
|
|
2653
|
+
|
|
2654
|
+
|
|
2655
|
+
|
|
2537
2656
|
|
|
2538
2657
|
|
|
2539
2658
|
|
|
@@ -2603,6 +2722,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2603
2722
|
|
|
2604
2723
|
|
|
2605
2724
|
|
|
2725
|
+
|
|
2726
|
+
|
|
2727
|
+
|
|
2728
|
+
|
|
2606
2729
|
|
|
2607
2730
|
|
|
2608
2731
|
|
|
@@ -2656,6 +2779,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2656
2779
|
|
|
2657
2780
|
|
|
2658
2781
|
|
|
2782
|
+
|
|
2783
|
+
|
|
2784
|
+
|
|
2785
|
+
|
|
2659
2786
|
|
|
2660
2787
|
|
|
2661
2788
|
|
|
@@ -2713,6 +2840,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2713
2840
|
|
|
2714
2841
|
|
|
2715
2842
|
|
|
2843
|
+
|
|
2844
|
+
|
|
2845
|
+
|
|
2846
|
+
|
|
2716
2847
|
|
|
2717
2848
|
|
|
2718
2849
|
|
|
@@ -2992,6 +3123,9 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
2992
3123
|
|
|
2993
3124
|
|
|
2994
3125
|
|
|
3126
|
+
|
|
3127
|
+
|
|
3128
|
+
|
|
2995
3129
|
|
|
2996
3130
|
|
|
2997
3131
|
|
|
@@ -3009,6 +3143,31 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3009
3143
|
* console.log(last); // 50;
|
|
3010
3144
|
*
|
|
3011
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
|
|
3012
3171
|
* console.log(deque.length); // 5;
|
|
3013
3172
|
*/
|
|
3014
3173
|
get first() {
|
|
@@ -3049,6 +3208,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3049
3208
|
|
|
3050
3209
|
|
|
3051
3210
|
|
|
3211
|
+
|
|
3212
|
+
|
|
3213
|
+
|
|
3214
|
+
|
|
3052
3215
|
|
|
3053
3216
|
|
|
3054
3217
|
|
|
@@ -3112,6 +3275,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3112
3275
|
|
|
3113
3276
|
|
|
3114
3277
|
|
|
3278
|
+
|
|
3279
|
+
|
|
3280
|
+
|
|
3281
|
+
|
|
3115
3282
|
|
|
3116
3283
|
|
|
3117
3284
|
|
|
@@ -3188,6 +3355,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3188
3355
|
|
|
3189
3356
|
|
|
3190
3357
|
|
|
3358
|
+
|
|
3359
|
+
|
|
3360
|
+
|
|
3361
|
+
|
|
3191
3362
|
|
|
3192
3363
|
|
|
3193
3364
|
|
|
@@ -3251,6 +3422,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3251
3422
|
|
|
3252
3423
|
|
|
3253
3424
|
|
|
3425
|
+
|
|
3426
|
+
|
|
3427
|
+
|
|
3428
|
+
|
|
3254
3429
|
|
|
3255
3430
|
|
|
3256
3431
|
|
|
@@ -3315,6 +3490,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3315
3490
|
|
|
3316
3491
|
|
|
3317
3492
|
|
|
3493
|
+
|
|
3494
|
+
|
|
3495
|
+
|
|
3496
|
+
|
|
3318
3497
|
|
|
3319
3498
|
|
|
3320
3499
|
|
|
@@ -3420,6 +3599,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3420
3599
|
|
|
3421
3600
|
|
|
3422
3601
|
|
|
3602
|
+
|
|
3603
|
+
|
|
3604
|
+
|
|
3605
|
+
|
|
3423
3606
|
|
|
3424
3607
|
|
|
3425
3608
|
|
|
@@ -3465,6 +3648,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3465
3648
|
|
|
3466
3649
|
|
|
3467
3650
|
|
|
3651
|
+
|
|
3652
|
+
|
|
3653
|
+
|
|
3654
|
+
|
|
3468
3655
|
|
|
3469
3656
|
|
|
3470
3657
|
|
|
@@ -3514,6 +3701,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3514
3701
|
|
|
3515
3702
|
|
|
3516
3703
|
|
|
3704
|
+
|
|
3705
|
+
|
|
3706
|
+
|
|
3707
|
+
|
|
3517
3708
|
|
|
3518
3709
|
|
|
3519
3710
|
|
|
@@ -3714,6 +3905,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3714
3905
|
|
|
3715
3906
|
|
|
3716
3907
|
|
|
3908
|
+
|
|
3909
|
+
|
|
3910
|
+
|
|
3911
|
+
|
|
3717
3912
|
|
|
3718
3913
|
|
|
3719
3914
|
|
|
@@ -3801,6 +3996,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3801
3996
|
|
|
3802
3997
|
|
|
3803
3998
|
|
|
3999
|
+
|
|
4000
|
+
|
|
4001
|
+
|
|
4002
|
+
|
|
3804
4003
|
|
|
3805
4004
|
|
|
3806
4005
|
|
|
@@ -3913,6 +4112,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3913
4112
|
|
|
3914
4113
|
|
|
3915
4114
|
|
|
4115
|
+
|
|
4116
|
+
|
|
4117
|
+
|
|
4118
|
+
|
|
3916
4119
|
|
|
3917
4120
|
|
|
3918
4121
|
|
|
@@ -3984,6 +4187,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3984
4187
|
|
|
3985
4188
|
|
|
3986
4189
|
|
|
4190
|
+
|
|
4191
|
+
|
|
4192
|
+
|
|
4193
|
+
|
|
3987
4194
|
|
|
3988
4195
|
|
|
3989
4196
|
|
|
@@ -4038,6 +4245,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
4038
4245
|
|
|
4039
4246
|
|
|
4040
4247
|
|
|
4248
|
+
|
|
4249
|
+
|
|
4250
|
+
|
|
4251
|
+
|
|
4041
4252
|
|
|
4042
4253
|
|
|
4043
4254
|
|
|
@@ -4112,6 +4323,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
4112
4323
|
|
|
4113
4324
|
|
|
4114
4325
|
|
|
4326
|
+
|
|
4327
|
+
|
|
4328
|
+
|
|
4329
|
+
|
|
4115
4330
|
|
|
4116
4331
|
|
|
4117
4332
|
|
|
@@ -288,6 +288,10 @@ var _Stack = class _Stack 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 _Stack 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 _Stack 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 _Stack 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 _Stack 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 _Stack 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 _Stack 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 _Stack 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 _Stack 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 _Stack 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 _Stack extends IterableElementBase {
|
|
|
820
856
|
|
|
821
857
|
|
|
822
858
|
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
|
|
862
|
+
|
|
823
863
|
|
|
824
864
|
|
|
825
865
|
|