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
@@ -765,6 +765,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
765
765
 
766
766
 
767
767
 
768
+
769
+
770
+
771
+
768
772
 
769
773
 
770
774
 
@@ -832,6 +836,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
832
836
 
833
837
 
834
838
 
839
+
840
+
841
+
842
+
835
843
 
836
844
 
837
845
 
@@ -904,6 +912,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
904
912
 
905
913
 
906
914
 
915
+
916
+
917
+
918
+
907
919
 
908
920
 
909
921
 
@@ -958,6 +970,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
958
970
 
959
971
 
960
972
 
973
+
974
+
975
+
976
+
961
977
 
962
978
 
963
979
 
@@ -1073,6 +1089,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1073
1089
 
1074
1090
 
1075
1091
 
1092
+
1093
+
1094
+
1095
+
1076
1096
 
1077
1097
 
1078
1098
 
@@ -1132,6 +1152,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1132
1152
 
1133
1153
 
1134
1154
 
1155
+
1156
+
1157
+
1158
+
1135
1159
 
1136
1160
 
1137
1161
 
@@ -1180,6 +1204,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1180
1204
 
1181
1205
 
1182
1206
 
1207
+
1208
+
1209
+
1210
+
1183
1211
 
1184
1212
 
1185
1213
 
@@ -1234,6 +1262,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1234
1262
 
1235
1263
 
1236
1264
 
1265
+
1266
+
1267
+
1268
+
1237
1269
 
1238
1270
 
1239
1271
 
@@ -1293,6 +1325,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1293
1325
 
1294
1326
 
1295
1327
 
1328
+
1329
+
1330
+
1331
+
1296
1332
 
1297
1333
 
1298
1334
 
@@ -1360,6 +1396,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1360
1396
 
1361
1397
 
1362
1398
 
1399
+
1400
+
1401
+
1402
+
1363
1403
 
1364
1404
 
1365
1405
 
@@ -1404,6 +1444,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1404
1444
 
1405
1445
 
1406
1446
 
1447
+
1448
+
1449
+
1450
+
1407
1451
 
1408
1452
 
1409
1453
 
@@ -1454,6 +1498,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1454
1498
 
1455
1499
 
1456
1500
 
1501
+
1502
+
1503
+
1504
+
1457
1505
 
1458
1506
 
1459
1507
 
@@ -1670,6 +1718,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1670
1718
 
1671
1719
 
1672
1720
 
1721
+
1722
+
1723
+
1724
+
1673
1725
 
1674
1726
 
1675
1727
 
@@ -1724,6 +1776,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1724
1776
 
1725
1777
 
1726
1778
 
1779
+
1780
+
1781
+
1782
+
1727
1783
 
1728
1784
 
1729
1785
 
@@ -1806,6 +1862,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1806
1862
 
1807
1863
 
1808
1864
 
1865
+
1866
+
1867
+
1868
+
1809
1869
 
1810
1870
 
1811
1871
 
@@ -2041,6 +2101,10 @@ var Queue = class _Queue extends LinearBase {
2041
2101
 
2042
2102
 
2043
2103
 
2104
+
2105
+
2106
+
2107
+
2044
2108
 
2045
2109
 
2046
2110
 
@@ -2091,6 +2155,10 @@ var Queue = class _Queue extends LinearBase {
2091
2155
 
2092
2156
 
2093
2157
 
2158
+
2159
+
2160
+
2161
+
2094
2162
 
2095
2163
 
2096
2164
 
@@ -2105,6 +2173,14 @@ var Queue = class _Queue extends LinearBase {
2105
2173
  get first() {
2106
2174
  return this.length > 0 ? this.elements[this._offset] : void 0;
2107
2175
  }
2176
+ /**
2177
+ * Peek at the front element without removing it (alias for `first`).
2178
+ * @remarks Time O(1), Space O(1)
2179
+ * @returns Front element or undefined.
2180
+ */
2181
+ peek() {
2182
+ return this.first;
2183
+ }
2108
2184
  /**
2109
2185
  * Get the last element (back) without removing it.
2110
2186
  * @remarks Time O(1), Space O(1)
@@ -2157,6 +2233,10 @@ var Queue = class _Queue extends LinearBase {
2157
2233
 
2158
2234
 
2159
2235
 
2236
+
2237
+
2238
+
2239
+
2160
2240
 
2161
2241
 
2162
2242
 
@@ -2219,6 +2299,10 @@ var Queue = class _Queue extends LinearBase {
2219
2299
 
2220
2300
 
2221
2301
 
2302
+
2303
+
2304
+
2305
+
2222
2306
 
2223
2307
 
2224
2308
 
@@ -2288,6 +2372,10 @@ var Queue = class _Queue extends LinearBase {
2288
2372
 
2289
2373
 
2290
2374
 
2375
+
2376
+
2377
+
2378
+
2291
2379
 
2292
2380
 
2293
2381
 
@@ -2347,6 +2435,10 @@ var Queue = class _Queue extends LinearBase {
2347
2435
 
2348
2436
 
2349
2437
 
2438
+
2439
+
2440
+
2441
+
2350
2442
 
2351
2443
 
2352
2444
 
@@ -2399,6 +2491,10 @@ var Queue = class _Queue extends LinearBase {
2399
2491
 
2400
2492
 
2401
2493
 
2494
+
2495
+
2496
+
2497
+
2402
2498
 
2403
2499
 
2404
2500
 
@@ -2450,6 +2546,21 @@ var Queue = class _Queue extends LinearBase {
2450
2546
  this._elements[this._offset + index] = newElement;
2451
2547
  return true;
2452
2548
  }
2549
+ /**
2550
+ * Delete the first element that satisfies a predicate.
2551
+ * @remarks Time O(N), Space O(N)
2552
+ * @param predicate - Function (value, index, queue) → boolean to decide deletion.
2553
+ * @returns True if a match was removed.
2554
+ */
2555
+ deleteWhere(predicate) {
2556
+ for (let i = 0; i < this.length; i++) {
2557
+ if (predicate(this._elements[this._offset + i], i, this)) {
2558
+ this.deleteAt(i);
2559
+ return true;
2560
+ }
2561
+ }
2562
+ return false;
2563
+ }
2453
2564
  /**
2454
2565
  * Reverse the queue in-place by compacting then reversing.
2455
2566
  * @remarks Time O(N), Space O(N)
@@ -2492,6 +2603,10 @@ var Queue = class _Queue extends LinearBase {
2492
2603
 
2493
2604
 
2494
2605
 
2606
+
2607
+
2608
+
2609
+
2495
2610
 
2496
2611
 
2497
2612
 
@@ -2538,6 +2653,10 @@ var Queue = class _Queue extends LinearBase {
2538
2653
 
2539
2654
 
2540
2655
 
2656
+
2657
+
2658
+
2659
+
2541
2660
 
2542
2661
 
2543
2662
 
@@ -2607,6 +2726,10 @@ var Queue = class _Queue extends LinearBase {
2607
2726
 
2608
2727
 
2609
2728
 
2729
+
2730
+
2731
+
2732
+
2610
2733
 
2611
2734
 
2612
2735
 
@@ -2660,6 +2783,10 @@ var Queue = class _Queue extends LinearBase {
2660
2783
 
2661
2784
 
2662
2785
 
2786
+
2787
+
2788
+
2789
+
2663
2790
 
2664
2791
 
2665
2792
 
@@ -2717,6 +2844,10 @@ var Queue = class _Queue extends LinearBase {
2717
2844
 
2718
2845
 
2719
2846
 
2847
+
2848
+
2849
+
2850
+
2720
2851
 
2721
2852
 
2722
2853
 
@@ -2996,6 +3127,9 @@ var Deque = class extends LinearBase {
2996
3127
 
2997
3128
 
2998
3129
 
3130
+
3131
+
3132
+
2999
3133
 
3000
3134
 
3001
3135
 
@@ -3013,6 +3147,31 @@ var Deque = class extends LinearBase {
3013
3147
  * console.log(last); // 50;
3014
3148
  *
3015
3149
  * // Length unchanged
3150
+ * console.log(deque.length); // 5;
3151
+ */
3152
+ /**
3153
+ * Peek at the front element without removing it (alias for `first`).
3154
+ * @remarks Time O(1), Space O(1)
3155
+ * @returns Front element or undefined.
3156
+ */
3157
+ peek() {
3158
+ return this.first;
3159
+ }
3160
+ /**
3161
+ * Deque peek at both ends
3162
+ * @example
3163
+ * // Deque peek at both ends
3164
+ * const deque = new Deque<number>([10, 20, 30, 40, 50]);
3165
+ *
3166
+ * // Get first element without removing
3167
+ * const first = deque.at(0);
3168
+ * console.log(first); // 10;
3169
+ *
3170
+ * // Get last element without removing
3171
+ * const last = deque.at(deque.length - 1);
3172
+ * console.log(last); // 50;
3173
+ *
3174
+ * // Length unchanged
3016
3175
  * console.log(deque.length); // 5;
3017
3176
  */
3018
3177
  get first() {
@@ -3053,6 +3212,10 @@ var Deque = class extends LinearBase {
3053
3212
 
3054
3213
 
3055
3214
 
3215
+
3216
+
3217
+
3218
+
3056
3219
 
3057
3220
 
3058
3221
 
@@ -3116,6 +3279,10 @@ var Deque = class extends LinearBase {
3116
3279
 
3117
3280
 
3118
3281
 
3282
+
3283
+
3284
+
3285
+
3119
3286
 
3120
3287
 
3121
3288
 
@@ -3192,6 +3359,10 @@ var Deque = class extends LinearBase {
3192
3359
 
3193
3360
 
3194
3361
 
3362
+
3363
+
3364
+
3365
+
3195
3366
 
3196
3367
 
3197
3368
 
@@ -3255,6 +3426,10 @@ var Deque = class extends LinearBase {
3255
3426
 
3256
3427
 
3257
3428
 
3429
+
3430
+
3431
+
3432
+
3258
3433
 
3259
3434
 
3260
3435
 
@@ -3319,6 +3494,10 @@ var Deque = class extends LinearBase {
3319
3494
 
3320
3495
 
3321
3496
 
3497
+
3498
+
3499
+
3500
+
3322
3501
 
3323
3502
 
3324
3503
 
@@ -3424,6 +3603,10 @@ var Deque = class extends LinearBase {
3424
3603
 
3425
3604
 
3426
3605
 
3606
+
3607
+
3608
+
3609
+
3427
3610
 
3428
3611
 
3429
3612
 
@@ -3469,6 +3652,10 @@ var Deque = class extends LinearBase {
3469
3652
 
3470
3653
 
3471
3654
 
3655
+
3656
+
3657
+
3658
+
3472
3659
 
3473
3660
 
3474
3661
 
@@ -3518,6 +3705,10 @@ var Deque = class extends LinearBase {
3518
3705
 
3519
3706
 
3520
3707
 
3708
+
3709
+
3710
+
3711
+
3521
3712
 
3522
3713
 
3523
3714
 
@@ -3718,6 +3909,10 @@ var Deque = class extends LinearBase {
3718
3909
 
3719
3910
 
3720
3911
 
3912
+
3913
+
3914
+
3915
+
3721
3916
 
3722
3917
 
3723
3918
 
@@ -3805,6 +4000,10 @@ var Deque = class extends LinearBase {
3805
4000
 
3806
4001
 
3807
4002
 
4003
+
4004
+
4005
+
4006
+
3808
4007
 
3809
4008
 
3810
4009
 
@@ -3917,6 +4116,10 @@ var Deque = class extends LinearBase {
3917
4116
 
3918
4117
 
3919
4118
 
4119
+
4120
+
4121
+
4122
+
3920
4123
 
3921
4124
 
3922
4125
 
@@ -3988,6 +4191,10 @@ var Deque = class extends LinearBase {
3988
4191
 
3989
4192
 
3990
4193
 
4194
+
4195
+
4196
+
4197
+
3991
4198
 
3992
4199
 
3993
4200
 
@@ -4042,6 +4249,10 @@ var Deque = class extends LinearBase {
4042
4249
 
4043
4250
 
4044
4251
 
4252
+
4253
+
4254
+
4255
+
4045
4256
 
4046
4257
 
4047
4258
 
@@ -4116,6 +4327,10 @@ var Deque = class extends LinearBase {
4116
4327
 
4117
4328
 
4118
4329
 
4330
+
4331
+
4332
+
4333
+
4119
4334
 
4120
4335
 
4121
4336
 
@@ -290,6 +290,10 @@ var Stack = class extends IterableElementBase {
290
290
 
291
291
 
292
292
 
293
+
294
+
295
+
296
+
293
297
 
294
298
 
295
299
 
@@ -350,6 +354,10 @@ var Stack = class extends IterableElementBase {
350
354
 
351
355
 
352
356
 
357
+
358
+
359
+
360
+
353
361
 
354
362
 
355
363
 
@@ -399,6 +407,10 @@ var Stack = class extends IterableElementBase {
399
407
 
400
408
 
401
409
 
410
+
411
+
412
+
413
+
402
414
 
403
415
 
404
416
 
@@ -448,6 +460,10 @@ var Stack = class extends IterableElementBase {
448
460
 
449
461
 
450
462
 
463
+
464
+
465
+
466
+
451
467
 
452
468
 
453
469
 
@@ -506,6 +522,10 @@ var Stack = class extends IterableElementBase {
506
522
 
507
523
 
508
524
 
525
+
526
+
527
+
528
+
509
529
 
510
530
 
511
531
 
@@ -579,6 +599,10 @@ var Stack = class extends IterableElementBase {
579
599
 
580
600
 
581
601
 
602
+
603
+
604
+
605
+
582
606
 
583
607
 
584
608
 
@@ -592,18 +616,18 @@ var Stack = class extends IterableElementBase {
592
616
  */
593
617
  delete(element) {
594
618
  const idx = this._indexOfByEquals(element);
595
- return this.deleteAt(idx);
619
+ return this.deleteAt(idx) !== void 0;
596
620
  }
597
621
  /**
598
622
  * Delete the element at an index.
599
623
  * @remarks Time O(N), Space O(1)
600
624
  * @param index - Zero-based index from the bottom.
601
- * @returns True if removed.
625
+ * @returns The removed element, or undefined if the index is out of range.
602
626
  */
603
627
  deleteAt(index) {
604
- if (index < 0 || index >= this.elements.length) return false;
628
+ if (index < 0 || index >= this.elements.length) return void 0;
605
629
  const spliced = this.elements.splice(index, 1);
606
- return spliced.length === 1;
630
+ return spliced[0];
607
631
  }
608
632
  /**
609
633
  * Delete the first element that satisfies a predicate.
@@ -652,6 +676,10 @@ var Stack = class extends IterableElementBase {
652
676
 
653
677
 
654
678
 
679
+
680
+
681
+
682
+
655
683
 
656
684
 
657
685
 
@@ -698,6 +726,10 @@ var Stack = class extends IterableElementBase {
698
726
 
699
727
 
700
728
 
729
+
730
+
731
+
732
+
701
733
 
702
734
 
703
735
 
@@ -750,6 +782,10 @@ var Stack = class extends IterableElementBase {
750
782
 
751
783
 
752
784
 
785
+
786
+
787
+
788
+
753
789
 
754
790
 
755
791
 
@@ -822,6 +858,10 @@ var Stack = class extends IterableElementBase {
822
858
 
823
859
 
824
860
 
861
+
862
+
863
+
864
+
825
865
 
826
866
 
827
867