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
|
@@ -759,6 +759,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
759
759
|
|
|
760
760
|
|
|
761
761
|
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
|
|
762
766
|
|
|
763
767
|
|
|
764
768
|
|
|
@@ -826,6 +830,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
826
830
|
|
|
827
831
|
|
|
828
832
|
|
|
833
|
+
|
|
834
|
+
|
|
835
|
+
|
|
836
|
+
|
|
829
837
|
|
|
830
838
|
|
|
831
839
|
|
|
@@ -899,6 +907,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
899
907
|
|
|
900
908
|
|
|
901
909
|
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
|
|
913
|
+
|
|
902
914
|
|
|
903
915
|
|
|
904
916
|
|
|
@@ -953,6 +965,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
953
965
|
|
|
954
966
|
|
|
955
967
|
|
|
968
|
+
|
|
969
|
+
|
|
970
|
+
|
|
971
|
+
|
|
956
972
|
|
|
957
973
|
|
|
958
974
|
|
|
@@ -1068,6 +1084,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1068
1084
|
|
|
1069
1085
|
|
|
1070
1086
|
|
|
1087
|
+
|
|
1088
|
+
|
|
1089
|
+
|
|
1090
|
+
|
|
1071
1091
|
|
|
1072
1092
|
|
|
1073
1093
|
|
|
@@ -1127,6 +1147,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1127
1147
|
|
|
1128
1148
|
|
|
1129
1149
|
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
|
|
1153
|
+
|
|
1130
1154
|
|
|
1131
1155
|
|
|
1132
1156
|
|
|
@@ -1175,6 +1199,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1175
1199
|
|
|
1176
1200
|
|
|
1177
1201
|
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1178
1206
|
|
|
1179
1207
|
|
|
1180
1208
|
|
|
@@ -1229,6 +1257,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1229
1257
|
|
|
1230
1258
|
|
|
1231
1259
|
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
|
|
1232
1264
|
|
|
1233
1265
|
|
|
1234
1266
|
|
|
@@ -1288,6 +1320,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1288
1320
|
|
|
1289
1321
|
|
|
1290
1322
|
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
|
+
|
|
1291
1327
|
|
|
1292
1328
|
|
|
1293
1329
|
|
|
@@ -1355,6 +1391,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1355
1391
|
|
|
1356
1392
|
|
|
1357
1393
|
|
|
1394
|
+
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
|
|
1358
1398
|
|
|
1359
1399
|
|
|
1360
1400
|
|
|
@@ -1399,6 +1439,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1399
1439
|
|
|
1400
1440
|
|
|
1401
1441
|
|
|
1442
|
+
|
|
1443
|
+
|
|
1444
|
+
|
|
1445
|
+
|
|
1402
1446
|
|
|
1403
1447
|
|
|
1404
1448
|
|
|
@@ -1449,6 +1493,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1449
1493
|
|
|
1450
1494
|
|
|
1451
1495
|
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
|
|
1499
|
+
|
|
1452
1500
|
|
|
1453
1501
|
|
|
1454
1502
|
|
|
@@ -1665,6 +1713,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1665
1713
|
|
|
1666
1714
|
|
|
1667
1715
|
|
|
1716
|
+
|
|
1717
|
+
|
|
1718
|
+
|
|
1719
|
+
|
|
1668
1720
|
|
|
1669
1721
|
|
|
1670
1722
|
|
|
@@ -1719,6 +1771,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1719
1771
|
|
|
1720
1772
|
|
|
1721
1773
|
|
|
1774
|
+
|
|
1775
|
+
|
|
1776
|
+
|
|
1777
|
+
|
|
1722
1778
|
|
|
1723
1779
|
|
|
1724
1780
|
|
|
@@ -1801,6 +1857,10 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
|
|
|
1801
1857
|
|
|
1802
1858
|
|
|
1803
1859
|
|
|
1860
|
+
|
|
1861
|
+
|
|
1862
|
+
|
|
1863
|
+
|
|
1804
1864
|
|
|
1805
1865
|
|
|
1806
1866
|
|
|
@@ -2035,6 +2095,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2035
2095
|
|
|
2036
2096
|
|
|
2037
2097
|
|
|
2098
|
+
|
|
2099
|
+
|
|
2100
|
+
|
|
2101
|
+
|
|
2038
2102
|
|
|
2039
2103
|
|
|
2040
2104
|
|
|
@@ -2085,6 +2149,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2085
2149
|
|
|
2086
2150
|
|
|
2087
2151
|
|
|
2152
|
+
|
|
2153
|
+
|
|
2154
|
+
|
|
2155
|
+
|
|
2088
2156
|
|
|
2089
2157
|
|
|
2090
2158
|
|
|
@@ -2099,6 +2167,14 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2099
2167
|
get first() {
|
|
2100
2168
|
return this.length > 0 ? this.elements[this._offset] : void 0;
|
|
2101
2169
|
}
|
|
2170
|
+
/**
|
|
2171
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
2172
|
+
* @remarks Time O(1), Space O(1)
|
|
2173
|
+
* @returns Front element or undefined.
|
|
2174
|
+
*/
|
|
2175
|
+
peek() {
|
|
2176
|
+
return this.first;
|
|
2177
|
+
}
|
|
2102
2178
|
/**
|
|
2103
2179
|
* Get the last element (back) without removing it.
|
|
2104
2180
|
* @remarks Time O(1), Space O(1)
|
|
@@ -2151,6 +2227,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2151
2227
|
|
|
2152
2228
|
|
|
2153
2229
|
|
|
2230
|
+
|
|
2231
|
+
|
|
2232
|
+
|
|
2233
|
+
|
|
2154
2234
|
|
|
2155
2235
|
|
|
2156
2236
|
|
|
@@ -2213,6 +2293,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2213
2293
|
|
|
2214
2294
|
|
|
2215
2295
|
|
|
2296
|
+
|
|
2297
|
+
|
|
2298
|
+
|
|
2299
|
+
|
|
2216
2300
|
|
|
2217
2301
|
|
|
2218
2302
|
|
|
@@ -2282,6 +2366,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2282
2366
|
|
|
2283
2367
|
|
|
2284
2368
|
|
|
2369
|
+
|
|
2370
|
+
|
|
2371
|
+
|
|
2372
|
+
|
|
2285
2373
|
|
|
2286
2374
|
|
|
2287
2375
|
|
|
@@ -2341,6 +2429,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2341
2429
|
|
|
2342
2430
|
|
|
2343
2431
|
|
|
2432
|
+
|
|
2433
|
+
|
|
2434
|
+
|
|
2435
|
+
|
|
2344
2436
|
|
|
2345
2437
|
|
|
2346
2438
|
|
|
@@ -2393,6 +2485,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2393
2485
|
|
|
2394
2486
|
|
|
2395
2487
|
|
|
2488
|
+
|
|
2489
|
+
|
|
2490
|
+
|
|
2491
|
+
|
|
2396
2492
|
|
|
2397
2493
|
|
|
2398
2494
|
|
|
@@ -2444,6 +2540,21 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2444
2540
|
this._elements[this._offset + index] = newElement;
|
|
2445
2541
|
return true;
|
|
2446
2542
|
}
|
|
2543
|
+
/**
|
|
2544
|
+
* Delete the first element that satisfies a predicate.
|
|
2545
|
+
* @remarks Time O(N), Space O(N)
|
|
2546
|
+
* @param predicate - Function (value, index, queue) → boolean to decide deletion.
|
|
2547
|
+
* @returns True if a match was removed.
|
|
2548
|
+
*/
|
|
2549
|
+
deleteWhere(predicate) {
|
|
2550
|
+
for (let i = 0; i < this.length; i++) {
|
|
2551
|
+
if (predicate(this._elements[this._offset + i], i, this)) {
|
|
2552
|
+
this.deleteAt(i);
|
|
2553
|
+
return true;
|
|
2554
|
+
}
|
|
2555
|
+
}
|
|
2556
|
+
return false;
|
|
2557
|
+
}
|
|
2447
2558
|
/**
|
|
2448
2559
|
* Reverse the queue in-place by compacting then reversing.
|
|
2449
2560
|
* @remarks Time O(N), Space O(N)
|
|
@@ -2486,6 +2597,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2486
2597
|
|
|
2487
2598
|
|
|
2488
2599
|
|
|
2600
|
+
|
|
2601
|
+
|
|
2602
|
+
|
|
2603
|
+
|
|
2489
2604
|
|
|
2490
2605
|
|
|
2491
2606
|
|
|
@@ -2532,6 +2647,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2532
2647
|
|
|
2533
2648
|
|
|
2534
2649
|
|
|
2650
|
+
|
|
2651
|
+
|
|
2652
|
+
|
|
2653
|
+
|
|
2535
2654
|
|
|
2536
2655
|
|
|
2537
2656
|
|
|
@@ -2601,6 +2720,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2601
2720
|
|
|
2602
2721
|
|
|
2603
2722
|
|
|
2723
|
+
|
|
2724
|
+
|
|
2725
|
+
|
|
2726
|
+
|
|
2604
2727
|
|
|
2605
2728
|
|
|
2606
2729
|
|
|
@@ -2654,6 +2777,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2654
2777
|
|
|
2655
2778
|
|
|
2656
2779
|
|
|
2780
|
+
|
|
2781
|
+
|
|
2782
|
+
|
|
2783
|
+
|
|
2657
2784
|
|
|
2658
2785
|
|
|
2659
2786
|
|
|
@@ -2711,6 +2838,10 @@ var _Queue = class _Queue extends LinearBase {
|
|
|
2711
2838
|
|
|
2712
2839
|
|
|
2713
2840
|
|
|
2841
|
+
|
|
2842
|
+
|
|
2843
|
+
|
|
2844
|
+
|
|
2714
2845
|
|
|
2715
2846
|
|
|
2716
2847
|
|
|
@@ -2990,6 +3121,9 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
2990
3121
|
|
|
2991
3122
|
|
|
2992
3123
|
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
2993
3127
|
|
|
2994
3128
|
|
|
2995
3129
|
|
|
@@ -3007,6 +3141,31 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3007
3141
|
* console.log(last); // 50;
|
|
3008
3142
|
*
|
|
3009
3143
|
* // Length unchanged
|
|
3144
|
+
* console.log(deque.length); // 5;
|
|
3145
|
+
*/
|
|
3146
|
+
/**
|
|
3147
|
+
* Peek at the front element without removing it (alias for `first`).
|
|
3148
|
+
* @remarks Time O(1), Space O(1)
|
|
3149
|
+
* @returns Front element or undefined.
|
|
3150
|
+
*/
|
|
3151
|
+
peek() {
|
|
3152
|
+
return this.first;
|
|
3153
|
+
}
|
|
3154
|
+
/**
|
|
3155
|
+
* Deque peek at both ends
|
|
3156
|
+
* @example
|
|
3157
|
+
* // Deque peek at both ends
|
|
3158
|
+
* const deque = new Deque<number>([10, 20, 30, 40, 50]);
|
|
3159
|
+
*
|
|
3160
|
+
* // Get first element without removing
|
|
3161
|
+
* const first = deque.at(0);
|
|
3162
|
+
* console.log(first); // 10;
|
|
3163
|
+
*
|
|
3164
|
+
* // Get last element without removing
|
|
3165
|
+
* const last = deque.at(deque.length - 1);
|
|
3166
|
+
* console.log(last); // 50;
|
|
3167
|
+
*
|
|
3168
|
+
* // Length unchanged
|
|
3010
3169
|
* console.log(deque.length); // 5;
|
|
3011
3170
|
*/
|
|
3012
3171
|
get first() {
|
|
@@ -3047,6 +3206,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3047
3206
|
|
|
3048
3207
|
|
|
3049
3208
|
|
|
3209
|
+
|
|
3210
|
+
|
|
3211
|
+
|
|
3212
|
+
|
|
3050
3213
|
|
|
3051
3214
|
|
|
3052
3215
|
|
|
@@ -3110,6 +3273,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3110
3273
|
|
|
3111
3274
|
|
|
3112
3275
|
|
|
3276
|
+
|
|
3277
|
+
|
|
3278
|
+
|
|
3279
|
+
|
|
3113
3280
|
|
|
3114
3281
|
|
|
3115
3282
|
|
|
@@ -3186,6 +3353,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3186
3353
|
|
|
3187
3354
|
|
|
3188
3355
|
|
|
3356
|
+
|
|
3357
|
+
|
|
3358
|
+
|
|
3359
|
+
|
|
3189
3360
|
|
|
3190
3361
|
|
|
3191
3362
|
|
|
@@ -3249,6 +3420,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3249
3420
|
|
|
3250
3421
|
|
|
3251
3422
|
|
|
3423
|
+
|
|
3424
|
+
|
|
3425
|
+
|
|
3426
|
+
|
|
3252
3427
|
|
|
3253
3428
|
|
|
3254
3429
|
|
|
@@ -3313,6 +3488,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3313
3488
|
|
|
3314
3489
|
|
|
3315
3490
|
|
|
3491
|
+
|
|
3492
|
+
|
|
3493
|
+
|
|
3494
|
+
|
|
3316
3495
|
|
|
3317
3496
|
|
|
3318
3497
|
|
|
@@ -3418,6 +3597,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3418
3597
|
|
|
3419
3598
|
|
|
3420
3599
|
|
|
3600
|
+
|
|
3601
|
+
|
|
3602
|
+
|
|
3603
|
+
|
|
3421
3604
|
|
|
3422
3605
|
|
|
3423
3606
|
|
|
@@ -3463,6 +3646,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3463
3646
|
|
|
3464
3647
|
|
|
3465
3648
|
|
|
3649
|
+
|
|
3650
|
+
|
|
3651
|
+
|
|
3652
|
+
|
|
3466
3653
|
|
|
3467
3654
|
|
|
3468
3655
|
|
|
@@ -3512,6 +3699,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3512
3699
|
|
|
3513
3700
|
|
|
3514
3701
|
|
|
3702
|
+
|
|
3703
|
+
|
|
3704
|
+
|
|
3705
|
+
|
|
3515
3706
|
|
|
3516
3707
|
|
|
3517
3708
|
|
|
@@ -3712,6 +3903,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3712
3903
|
|
|
3713
3904
|
|
|
3714
3905
|
|
|
3906
|
+
|
|
3907
|
+
|
|
3908
|
+
|
|
3909
|
+
|
|
3715
3910
|
|
|
3716
3911
|
|
|
3717
3912
|
|
|
@@ -3799,6 +3994,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3799
3994
|
|
|
3800
3995
|
|
|
3801
3996
|
|
|
3997
|
+
|
|
3998
|
+
|
|
3999
|
+
|
|
4000
|
+
|
|
3802
4001
|
|
|
3803
4002
|
|
|
3804
4003
|
|
|
@@ -3911,6 +4110,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3911
4110
|
|
|
3912
4111
|
|
|
3913
4112
|
|
|
4113
|
+
|
|
4114
|
+
|
|
4115
|
+
|
|
4116
|
+
|
|
3914
4117
|
|
|
3915
4118
|
|
|
3916
4119
|
|
|
@@ -3982,6 +4185,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
3982
4185
|
|
|
3983
4186
|
|
|
3984
4187
|
|
|
4188
|
+
|
|
4189
|
+
|
|
4190
|
+
|
|
4191
|
+
|
|
3985
4192
|
|
|
3986
4193
|
|
|
3987
4194
|
|
|
@@ -4036,6 +4243,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
4036
4243
|
|
|
4037
4244
|
|
|
4038
4245
|
|
|
4246
|
+
|
|
4247
|
+
|
|
4248
|
+
|
|
4249
|
+
|
|
4039
4250
|
|
|
4040
4251
|
|
|
4041
4252
|
|
|
@@ -4110,6 +4321,10 @@ var _Deque = class _Deque extends LinearBase {
|
|
|
4110
4321
|
|
|
4111
4322
|
|
|
4112
4323
|
|
|
4324
|
+
|
|
4325
|
+
|
|
4326
|
+
|
|
4327
|
+
|
|
4113
4328
|
|
|
4114
4329
|
|
|
4115
4330
|
|
|
@@ -286,6 +286,10 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
286
286
|
|
|
287
287
|
|
|
288
288
|
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
|
|
289
293
|
|
|
290
294
|
|
|
291
295
|
|
|
@@ -346,6 +350,10 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
346
350
|
|
|
347
351
|
|
|
348
352
|
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
349
357
|
|
|
350
358
|
|
|
351
359
|
|
|
@@ -395,6 +403,10 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
395
403
|
|
|
396
404
|
|
|
397
405
|
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
398
410
|
|
|
399
411
|
|
|
400
412
|
|
|
@@ -444,6 +456,10 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
444
456
|
|
|
445
457
|
|
|
446
458
|
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
|
|
447
463
|
|
|
448
464
|
|
|
449
465
|
|
|
@@ -502,6 +518,10 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
502
518
|
|
|
503
519
|
|
|
504
520
|
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
|
|
505
525
|
|
|
506
526
|
|
|
507
527
|
|
|
@@ -575,6 +595,10 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
575
595
|
|
|
576
596
|
|
|
577
597
|
|
|
598
|
+
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
|
|
578
602
|
|
|
579
603
|
|
|
580
604
|
|
|
@@ -588,18 +612,18 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
588
612
|
*/
|
|
589
613
|
delete(element) {
|
|
590
614
|
const idx = this._indexOfByEquals(element);
|
|
591
|
-
return this.deleteAt(idx);
|
|
615
|
+
return this.deleteAt(idx) !== void 0;
|
|
592
616
|
}
|
|
593
617
|
/**
|
|
594
618
|
* Delete the element at an index.
|
|
595
619
|
* @remarks Time O(N), Space O(1)
|
|
596
620
|
* @param index - Zero-based index from the bottom.
|
|
597
|
-
* @returns
|
|
621
|
+
* @returns The removed element, or undefined if the index is out of range.
|
|
598
622
|
*/
|
|
599
623
|
deleteAt(index) {
|
|
600
|
-
if (index < 0 || index >= this.elements.length) return
|
|
624
|
+
if (index < 0 || index >= this.elements.length) return void 0;
|
|
601
625
|
const spliced = this.elements.splice(index, 1);
|
|
602
|
-
return spliced
|
|
626
|
+
return spliced[0];
|
|
603
627
|
}
|
|
604
628
|
/**
|
|
605
629
|
* Delete the first element that satisfies a predicate.
|
|
@@ -648,6 +672,10 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
648
672
|
|
|
649
673
|
|
|
650
674
|
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
|
|
678
|
+
|
|
651
679
|
|
|
652
680
|
|
|
653
681
|
|
|
@@ -694,6 +722,10 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
694
722
|
|
|
695
723
|
|
|
696
724
|
|
|
725
|
+
|
|
726
|
+
|
|
727
|
+
|
|
728
|
+
|
|
697
729
|
|
|
698
730
|
|
|
699
731
|
|
|
@@ -746,6 +778,10 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
746
778
|
|
|
747
779
|
|
|
748
780
|
|
|
781
|
+
|
|
782
|
+
|
|
783
|
+
|
|
784
|
+
|
|
749
785
|
|
|
750
786
|
|
|
751
787
|
|
|
@@ -818,6 +854,10 @@ var _Stack = class _Stack extends IterableElementBase {
|
|
|
818
854
|
|
|
819
855
|
|
|
820
856
|
|
|
857
|
+
|
|
858
|
+
|
|
859
|
+
|
|
860
|
+
|
|
821
861
|
|
|
822
862
|
|
|
823
863
|
|