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
@@ -763,6 +763,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
763
763
 
764
764
 
765
765
 
766
+
767
+
768
+
769
+
766
770
 
767
771
 
768
772
 
@@ -830,6 +834,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
830
834
 
831
835
 
832
836
 
837
+
838
+
839
+
840
+
833
841
 
834
842
 
835
843
 
@@ -902,6 +910,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
902
910
 
903
911
 
904
912
 
913
+
914
+
915
+
916
+
905
917
 
906
918
 
907
919
 
@@ -956,6 +968,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
956
968
 
957
969
 
958
970
 
971
+
972
+
973
+
974
+
959
975
 
960
976
 
961
977
 
@@ -1071,6 +1087,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1071
1087
 
1072
1088
 
1073
1089
 
1090
+
1091
+
1092
+
1093
+
1074
1094
 
1075
1095
 
1076
1096
 
@@ -1130,6 +1150,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1130
1150
 
1131
1151
 
1132
1152
 
1153
+
1154
+
1155
+
1156
+
1133
1157
 
1134
1158
 
1135
1159
 
@@ -1178,6 +1202,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1178
1202
 
1179
1203
 
1180
1204
 
1205
+
1206
+
1207
+
1208
+
1181
1209
 
1182
1210
 
1183
1211
 
@@ -1232,6 +1260,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1232
1260
 
1233
1261
 
1234
1262
 
1263
+
1264
+
1265
+
1266
+
1235
1267
 
1236
1268
 
1237
1269
 
@@ -1291,6 +1323,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1291
1323
 
1292
1324
 
1293
1325
 
1326
+
1327
+
1328
+
1329
+
1294
1330
 
1295
1331
 
1296
1332
 
@@ -1358,6 +1394,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1358
1394
 
1359
1395
 
1360
1396
 
1397
+
1398
+
1399
+
1400
+
1361
1401
 
1362
1402
 
1363
1403
 
@@ -1402,6 +1442,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1402
1442
 
1403
1443
 
1404
1444
 
1445
+
1446
+
1447
+
1448
+
1405
1449
 
1406
1450
 
1407
1451
 
@@ -1452,6 +1496,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1452
1496
 
1453
1497
 
1454
1498
 
1499
+
1500
+
1501
+
1502
+
1455
1503
 
1456
1504
 
1457
1505
 
@@ -1668,6 +1716,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1668
1716
 
1669
1717
 
1670
1718
 
1719
+
1720
+
1721
+
1722
+
1671
1723
 
1672
1724
 
1673
1725
 
@@ -1722,6 +1774,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1722
1774
 
1723
1775
 
1724
1776
 
1777
+
1778
+
1779
+
1780
+
1725
1781
 
1726
1782
 
1727
1783
 
@@ -1804,6 +1860,10 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1804
1860
 
1805
1861
 
1806
1862
 
1863
+
1864
+
1865
+
1866
+
1807
1867
 
1808
1868
 
1809
1869
 
@@ -2039,6 +2099,10 @@ var Queue = class _Queue extends LinearBase {
2039
2099
 
2040
2100
 
2041
2101
 
2102
+
2103
+
2104
+
2105
+
2042
2106
 
2043
2107
 
2044
2108
 
@@ -2089,6 +2153,10 @@ var Queue = class _Queue extends LinearBase {
2089
2153
 
2090
2154
 
2091
2155
 
2156
+
2157
+
2158
+
2159
+
2092
2160
 
2093
2161
 
2094
2162
 
@@ -2103,6 +2171,14 @@ var Queue = class _Queue extends LinearBase {
2103
2171
  get first() {
2104
2172
  return this.length > 0 ? this.elements[this._offset] : void 0;
2105
2173
  }
2174
+ /**
2175
+ * Peek at the front element without removing it (alias for `first`).
2176
+ * @remarks Time O(1), Space O(1)
2177
+ * @returns Front element or undefined.
2178
+ */
2179
+ peek() {
2180
+ return this.first;
2181
+ }
2106
2182
  /**
2107
2183
  * Get the last element (back) without removing it.
2108
2184
  * @remarks Time O(1), Space O(1)
@@ -2155,6 +2231,10 @@ var Queue = class _Queue extends LinearBase {
2155
2231
 
2156
2232
 
2157
2233
 
2234
+
2235
+
2236
+
2237
+
2158
2238
 
2159
2239
 
2160
2240
 
@@ -2217,6 +2297,10 @@ var Queue = class _Queue extends LinearBase {
2217
2297
 
2218
2298
 
2219
2299
 
2300
+
2301
+
2302
+
2303
+
2220
2304
 
2221
2305
 
2222
2306
 
@@ -2286,6 +2370,10 @@ var Queue = class _Queue extends LinearBase {
2286
2370
 
2287
2371
 
2288
2372
 
2373
+
2374
+
2375
+
2376
+
2289
2377
 
2290
2378
 
2291
2379
 
@@ -2345,6 +2433,10 @@ var Queue = class _Queue extends LinearBase {
2345
2433
 
2346
2434
 
2347
2435
 
2436
+
2437
+
2438
+
2439
+
2348
2440
 
2349
2441
 
2350
2442
 
@@ -2397,6 +2489,10 @@ var Queue = class _Queue extends LinearBase {
2397
2489
 
2398
2490
 
2399
2491
 
2492
+
2493
+
2494
+
2495
+
2400
2496
 
2401
2497
 
2402
2498
 
@@ -2448,6 +2544,21 @@ var Queue = class _Queue extends LinearBase {
2448
2544
  this._elements[this._offset + index] = newElement;
2449
2545
  return true;
2450
2546
  }
2547
+ /**
2548
+ * Delete the first element that satisfies a predicate.
2549
+ * @remarks Time O(N), Space O(N)
2550
+ * @param predicate - Function (value, index, queue) → boolean to decide deletion.
2551
+ * @returns True if a match was removed.
2552
+ */
2553
+ deleteWhere(predicate) {
2554
+ for (let i = 0; i < this.length; i++) {
2555
+ if (predicate(this._elements[this._offset + i], i, this)) {
2556
+ this.deleteAt(i);
2557
+ return true;
2558
+ }
2559
+ }
2560
+ return false;
2561
+ }
2451
2562
  /**
2452
2563
  * Reverse the queue in-place by compacting then reversing.
2453
2564
  * @remarks Time O(N), Space O(N)
@@ -2490,6 +2601,10 @@ var Queue = class _Queue extends LinearBase {
2490
2601
 
2491
2602
 
2492
2603
 
2604
+
2605
+
2606
+
2607
+
2493
2608
 
2494
2609
 
2495
2610
 
@@ -2536,6 +2651,10 @@ var Queue = class _Queue extends LinearBase {
2536
2651
 
2537
2652
 
2538
2653
 
2654
+
2655
+
2656
+
2657
+
2539
2658
 
2540
2659
 
2541
2660
 
@@ -2605,6 +2724,10 @@ var Queue = class _Queue extends LinearBase {
2605
2724
 
2606
2725
 
2607
2726
 
2727
+
2728
+
2729
+
2730
+
2608
2731
 
2609
2732
 
2610
2733
 
@@ -2658,6 +2781,10 @@ var Queue = class _Queue extends LinearBase {
2658
2781
 
2659
2782
 
2660
2783
 
2784
+
2785
+
2786
+
2787
+
2661
2788
 
2662
2789
 
2663
2790
 
@@ -2715,6 +2842,10 @@ var Queue = class _Queue extends LinearBase {
2715
2842
 
2716
2843
 
2717
2844
 
2845
+
2846
+
2847
+
2848
+
2718
2849
 
2719
2850
 
2720
2851
 
@@ -2994,6 +3125,9 @@ var Deque = class extends LinearBase {
2994
3125
 
2995
3126
 
2996
3127
 
3128
+
3129
+
3130
+
2997
3131
 
2998
3132
 
2999
3133
 
@@ -3011,6 +3145,31 @@ var Deque = class extends LinearBase {
3011
3145
  * console.log(last); // 50;
3012
3146
  *
3013
3147
  * // Length unchanged
3148
+ * console.log(deque.length); // 5;
3149
+ */
3150
+ /**
3151
+ * Peek at the front element without removing it (alias for `first`).
3152
+ * @remarks Time O(1), Space O(1)
3153
+ * @returns Front element or undefined.
3154
+ */
3155
+ peek() {
3156
+ return this.first;
3157
+ }
3158
+ /**
3159
+ * Deque peek at both ends
3160
+ * @example
3161
+ * // Deque peek at both ends
3162
+ * const deque = new Deque<number>([10, 20, 30, 40, 50]);
3163
+ *
3164
+ * // Get first element without removing
3165
+ * const first = deque.at(0);
3166
+ * console.log(first); // 10;
3167
+ *
3168
+ * // Get last element without removing
3169
+ * const last = deque.at(deque.length - 1);
3170
+ * console.log(last); // 50;
3171
+ *
3172
+ * // Length unchanged
3014
3173
  * console.log(deque.length); // 5;
3015
3174
  */
3016
3175
  get first() {
@@ -3051,6 +3210,10 @@ var Deque = class extends LinearBase {
3051
3210
 
3052
3211
 
3053
3212
 
3213
+
3214
+
3215
+
3216
+
3054
3217
 
3055
3218
 
3056
3219
 
@@ -3114,6 +3277,10 @@ var Deque = class extends LinearBase {
3114
3277
 
3115
3278
 
3116
3279
 
3280
+
3281
+
3282
+
3283
+
3117
3284
 
3118
3285
 
3119
3286
 
@@ -3190,6 +3357,10 @@ var Deque = class extends LinearBase {
3190
3357
 
3191
3358
 
3192
3359
 
3360
+
3361
+
3362
+
3363
+
3193
3364
 
3194
3365
 
3195
3366
 
@@ -3253,6 +3424,10 @@ var Deque = class extends LinearBase {
3253
3424
 
3254
3425
 
3255
3426
 
3427
+
3428
+
3429
+
3430
+
3256
3431
 
3257
3432
 
3258
3433
 
@@ -3317,6 +3492,10 @@ var Deque = class extends LinearBase {
3317
3492
 
3318
3493
 
3319
3494
 
3495
+
3496
+
3497
+
3498
+
3320
3499
 
3321
3500
 
3322
3501
 
@@ -3422,6 +3601,10 @@ var Deque = class extends LinearBase {
3422
3601
 
3423
3602
 
3424
3603
 
3604
+
3605
+
3606
+
3607
+
3425
3608
 
3426
3609
 
3427
3610
 
@@ -3467,6 +3650,10 @@ var Deque = class extends LinearBase {
3467
3650
 
3468
3651
 
3469
3652
 
3653
+
3654
+
3655
+
3656
+
3470
3657
 
3471
3658
 
3472
3659
 
@@ -3516,6 +3703,10 @@ var Deque = class extends LinearBase {
3516
3703
 
3517
3704
 
3518
3705
 
3706
+
3707
+
3708
+
3709
+
3519
3710
 
3520
3711
 
3521
3712
 
@@ -3716,6 +3907,10 @@ var Deque = class extends LinearBase {
3716
3907
 
3717
3908
 
3718
3909
 
3910
+
3911
+
3912
+
3913
+
3719
3914
 
3720
3915
 
3721
3916
 
@@ -3803,6 +3998,10 @@ var Deque = class extends LinearBase {
3803
3998
 
3804
3999
 
3805
4000
 
4001
+
4002
+
4003
+
4004
+
3806
4005
 
3807
4006
 
3808
4007
 
@@ -3915,6 +4114,10 @@ var Deque = class extends LinearBase {
3915
4114
 
3916
4115
 
3917
4116
 
4117
+
4118
+
4119
+
4120
+
3918
4121
 
3919
4122
 
3920
4123
 
@@ -3986,6 +4189,10 @@ var Deque = class extends LinearBase {
3986
4189
 
3987
4190
 
3988
4191
 
4192
+
4193
+
4194
+
4195
+
3989
4196
 
3990
4197
 
3991
4198
 
@@ -4040,6 +4247,10 @@ var Deque = class extends LinearBase {
4040
4247
 
4041
4248
 
4042
4249
 
4250
+
4251
+
4252
+
4253
+
4043
4254
 
4044
4255
 
4045
4256
 
@@ -4114,6 +4325,10 @@ var Deque = class extends LinearBase {
4114
4325
 
4115
4326
 
4116
4327
 
4328
+
4329
+
4330
+
4331
+
4117
4332
 
4118
4333
 
4119
4334
 
@@ -288,6 +288,10 @@ var Stack = class 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 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 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 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 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 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 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 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 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 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 extends IterableElementBase {
820
856
 
821
857
 
822
858
 
859
+
860
+
861
+
862
+
823
863
 
824
864
 
825
865