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.
Files changed (156) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/MIGRATION.md +169 -0
  3. package/README.md +60 -6
  4. package/README_CN.md +551 -143
  5. package/SPECIFICATION.md +20 -14
  6. package/SPECIFICATION.zh-CN.md +20 -14
  7. package/dist/cjs/binary-tree.cjs +2417 -132
  8. package/dist/cjs/graph.cjs +248 -14
  9. package/dist/cjs/hash.cjs +62 -7
  10. package/dist/cjs/heap.cjs +103 -16
  11. package/dist/cjs/index.cjs +3046 -124
  12. package/dist/cjs/linked-list.cjs +219 -0
  13. package/dist/cjs/matrix.cjs +32 -0
  14. package/dist/cjs/priority-queue.cjs +101 -14
  15. package/dist/cjs/queue.cjs +215 -0
  16. package/dist/cjs/stack.cjs +44 -4
  17. package/dist/cjs/trie.cjs +44 -0
  18. package/dist/cjs-legacy/binary-tree.cjs +2406 -123
  19. package/dist/cjs-legacy/graph.cjs +248 -14
  20. package/dist/cjs-legacy/hash.cjs +62 -7
  21. package/dist/cjs-legacy/heap.cjs +103 -16
  22. package/dist/cjs-legacy/index.cjs +3105 -185
  23. package/dist/cjs-legacy/linked-list.cjs +219 -0
  24. package/dist/cjs-legacy/matrix.cjs +32 -0
  25. package/dist/cjs-legacy/priority-queue.cjs +101 -14
  26. package/dist/cjs-legacy/queue.cjs +215 -0
  27. package/dist/cjs-legacy/stack.cjs +44 -4
  28. package/dist/cjs-legacy/trie.cjs +44 -0
  29. package/dist/esm/binary-tree.mjs +2417 -132
  30. package/dist/esm/graph.mjs +248 -14
  31. package/dist/esm/hash.mjs +62 -7
  32. package/dist/esm/heap.mjs +103 -16
  33. package/dist/esm/index.mjs +3046 -124
  34. package/dist/esm/linked-list.mjs +219 -0
  35. package/dist/esm/matrix.mjs +32 -0
  36. package/dist/esm/priority-queue.mjs +101 -14
  37. package/dist/esm/queue.mjs +215 -0
  38. package/dist/esm/stack.mjs +44 -4
  39. package/dist/esm/trie.mjs +44 -0
  40. package/dist/esm-legacy/binary-tree.mjs +2406 -123
  41. package/dist/esm-legacy/graph.mjs +248 -14
  42. package/dist/esm-legacy/hash.mjs +62 -7
  43. package/dist/esm-legacy/heap.mjs +103 -16
  44. package/dist/esm-legacy/index.mjs +3105 -185
  45. package/dist/esm-legacy/linked-list.mjs +219 -0
  46. package/dist/esm-legacy/matrix.mjs +32 -0
  47. package/dist/esm-legacy/priority-queue.mjs +101 -14
  48. package/dist/esm-legacy/queue.mjs +215 -0
  49. package/dist/esm-legacy/stack.mjs +44 -4
  50. package/dist/esm-legacy/trie.mjs +44 -0
  51. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +50 -2
  52. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
  53. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +116 -15
  54. package/dist/types/data-structures/binary-tree/bst.d.ts +99 -3
  55. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +79 -8
  56. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
  57. package/dist/types/data-structures/binary-tree/tree-map.d.ts +520 -1
  58. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +489 -1
  59. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +393 -1
  60. package/dist/types/data-structures/binary-tree/tree-set.d.ts +500 -1
  61. package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
  62. package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
  63. package/dist/types/data-structures/hash/hash-map.d.ts +51 -6
  64. package/dist/types/data-structures/heap/heap.d.ts +98 -12
  65. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -0
  66. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +61 -1
  67. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
  68. package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
  69. package/dist/types/data-structures/queue/deque.d.ts +82 -0
  70. package/dist/types/data-structures/queue/queue.d.ts +61 -0
  71. package/dist/types/data-structures/stack/stack.d.ts +42 -2
  72. package/dist/types/data-structures/trie/trie.d.ts +48 -0
  73. package/dist/types/interfaces/binary-tree.d.ts +2 -3
  74. package/dist/umd/data-structure-typed.js +3105 -185
  75. package/dist/umd/data-structure-typed.min.js +4 -4
  76. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +188 -200
  77. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
  78. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +62 -62
  79. package/docs-site-docusaurus/docs/api/classes/BST.md +183 -195
  80. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
  81. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
  82. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +143 -155
  83. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
  84. package/docs-site-docusaurus/docs/api/classes/Deque.md +99 -85
  85. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +73 -73
  86. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +100 -70
  87. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
  88. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +12 -12
  89. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  90. package/docs-site-docusaurus/docs/api/classes/HashMap.md +38 -38
  91. package/docs-site-docusaurus/docs/api/classes/Heap.md +96 -85
  92. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
  93. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +23 -23
  94. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +48 -48
  95. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +52 -52
  96. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +42 -42
  97. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
  98. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +74 -74
  99. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +73 -73
  100. package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
  101. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +104 -89
  102. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +104 -89
  103. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +104 -89
  104. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +104 -89
  105. package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
  106. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +103 -88
  107. package/docs-site-docusaurus/docs/api/classes/Queue.md +111 -59
  108. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +200 -212
  109. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
  110. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +75 -75
  111. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
  112. package/docs-site-docusaurus/docs/api/classes/SkipList.md +37 -37
  113. package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
  114. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +107 -36
  115. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +43 -43
  116. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +106 -35
  117. package/docs-site-docusaurus/docs/api/classes/Trie.md +43 -43
  118. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
  119. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +72 -72
  120. package/docs-site-docusaurus/docs/guide/architecture.md +75 -7
  121. package/docs-site-docusaurus/docs/guide/concepts.md +53 -34
  122. package/docs-site-docusaurus/docs/guide/faq.md +53 -0
  123. package/docs-site-docusaurus/docs/guide/guides.md +8 -9
  124. package/docs-site-docusaurus/docs/guide/integrations.md +74 -177
  125. package/docs-site-docusaurus/docs/guide/overview.md +131 -17
  126. package/docs-site-docusaurus/src/pages/index.tsx +4 -0
  127. package/docs-site-docusaurus/typedoc.json +1 -0
  128. package/package.json +7 -6
  129. package/src/data-structures/binary-tree/avl-tree.ts +52 -5
  130. package/src/data-structures/binary-tree/binary-indexed-tree.ts +56 -0
  131. package/src/data-structures/binary-tree/binary-tree.ts +167 -81
  132. package/src/data-structures/binary-tree/bst.ts +101 -7
  133. package/src/data-structures/binary-tree/red-black-tree.ts +82 -15
  134. package/src/data-structures/binary-tree/segment-tree.ts +24 -0
  135. package/src/data-structures/binary-tree/tree-map.ts +540 -3
  136. package/src/data-structures/binary-tree/tree-multi-map.ts +490 -2
  137. package/src/data-structures/binary-tree/tree-multi-set.ts +393 -1
  138. package/src/data-structures/binary-tree/tree-set.ts +520 -3
  139. package/src/data-structures/graph/directed-graph.ts +41 -1
  140. package/src/data-structures/graph/undirected-graph.ts +37 -1
  141. package/src/data-structures/hash/hash-map.ts +67 -12
  142. package/src/data-structures/heap/heap.ts +107 -19
  143. package/src/data-structures/linked-list/doubly-linked-list.ts +88 -0
  144. package/src/data-structures/linked-list/singly-linked-list.ts +61 -1
  145. package/src/data-structures/linked-list/skip-linked-list.ts +72 -0
  146. package/src/data-structures/matrix/matrix.ts +32 -0
  147. package/src/data-structures/queue/deque.ts +85 -0
  148. package/src/data-structures/queue/queue.ts +73 -0
  149. package/src/data-structures/stack/stack.ts +45 -5
  150. package/src/data-structures/trie/trie.ts +48 -0
  151. package/src/interfaces/binary-tree.ts +1 -9
  152. package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +0 -12984
  153. package/.vitepress/cache/deps_temp_51f5f1b0/package.json +0 -3
  154. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +0 -4505
  155. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +0 -9731
  156. 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 True if removed.
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 false;
626
+ if (index < 0 || index >= this.elements.length) return void 0;
603
627
  const spliced = this.elements.splice(index, 1);
604
- return spliced.length === 1;
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