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
@@ -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 True if removed.
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 false;
624
+ if (index < 0 || index >= this.elements.length) return void 0;
601
625
  const spliced = this.elements.splice(index, 1);
602
- return spliced.length === 1;
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