data-structure-typed 2.5.1 → 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 (184) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/MIGRATION.md +169 -0
  3. package/README.md +135 -23
  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 +6460 -1591
  8. package/dist/cjs/graph.cjs +440 -20
  9. package/dist/cjs/hash.cjs +125 -22
  10. package/dist/cjs/heap.cjs +196 -47
  11. package/dist/cjs/index.cjs +8486 -2429
  12. package/dist/cjs/linked-list.cjs +456 -31
  13. package/dist/cjs/matrix.cjs +79 -9
  14. package/dist/cjs/priority-queue.cjs +193 -44
  15. package/dist/cjs/queue.cjs +391 -2
  16. package/dist/cjs/stack.cjs +92 -6
  17. package/dist/cjs/trie.cjs +122 -28
  18. package/dist/cjs-legacy/binary-tree.cjs +6484 -1612
  19. package/dist/cjs-legacy/graph.cjs +440 -20
  20. package/dist/cjs-legacy/hash.cjs +125 -22
  21. package/dist/cjs-legacy/heap.cjs +196 -47
  22. package/dist/cjs-legacy/index.cjs +8654 -2594
  23. package/dist/cjs-legacy/linked-list.cjs +456 -31
  24. package/dist/cjs-legacy/matrix.cjs +79 -9
  25. package/dist/cjs-legacy/priority-queue.cjs +193 -44
  26. package/dist/cjs-legacy/queue.cjs +391 -2
  27. package/dist/cjs-legacy/stack.cjs +92 -6
  28. package/dist/cjs-legacy/trie.cjs +122 -28
  29. package/dist/esm/binary-tree.mjs +6460 -1591
  30. package/dist/esm/graph.mjs +440 -20
  31. package/dist/esm/hash.mjs +125 -22
  32. package/dist/esm/heap.mjs +196 -47
  33. package/dist/esm/index.mjs +8486 -2430
  34. package/dist/esm/linked-list.mjs +456 -31
  35. package/dist/esm/matrix.mjs +79 -9
  36. package/dist/esm/priority-queue.mjs +193 -44
  37. package/dist/esm/queue.mjs +391 -2
  38. package/dist/esm/stack.mjs +92 -6
  39. package/dist/esm/trie.mjs +122 -28
  40. package/dist/esm-legacy/binary-tree.mjs +6484 -1612
  41. package/dist/esm-legacy/graph.mjs +440 -20
  42. package/dist/esm-legacy/hash.mjs +125 -22
  43. package/dist/esm-legacy/heap.mjs +196 -47
  44. package/dist/esm-legacy/index.mjs +8654 -2595
  45. package/dist/esm-legacy/linked-list.mjs +456 -31
  46. package/dist/esm-legacy/matrix.mjs +79 -9
  47. package/dist/esm-legacy/priority-queue.mjs +193 -44
  48. package/dist/esm-legacy/queue.mjs +391 -2
  49. package/dist/esm-legacy/stack.mjs +92 -6
  50. package/dist/esm-legacy/trie.mjs +122 -28
  51. package/dist/types/common/error.d.ts +9 -0
  52. package/dist/types/common/index.d.ts +1 -1
  53. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +98 -2
  54. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +112 -0
  55. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +214 -13
  56. package/dist/types/data-structures/binary-tree/bst.d.ts +294 -3
  57. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +155 -8
  58. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +48 -0
  59. package/dist/types/data-structures/binary-tree/tree-map.d.ts +1370 -323
  60. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1329 -316
  61. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +1116 -295
  62. package/dist/types/data-structures/binary-tree/tree-set.d.ts +1330 -326
  63. package/dist/types/data-structures/graph/directed-graph.d.ts +80 -0
  64. package/dist/types/data-structures/graph/undirected-graph.d.ts +72 -0
  65. package/dist/types/data-structures/hash/hash-map.d.ts +95 -6
  66. package/dist/types/data-structures/heap/heap.d.ts +154 -12
  67. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +143 -0
  68. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +121 -1
  69. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +144 -0
  70. package/dist/types/data-structures/matrix/matrix.d.ts +64 -0
  71. package/dist/types/data-structures/queue/deque.d.ts +142 -0
  72. package/dist/types/data-structures/queue/queue.d.ts +109 -0
  73. package/dist/types/data-structures/stack/stack.d.ts +82 -2
  74. package/dist/types/data-structures/trie/trie.d.ts +96 -0
  75. package/dist/types/interfaces/binary-tree.d.ts +2 -3
  76. package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
  77. package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
  78. package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
  79. package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
  80. package/dist/umd/data-structure-typed.js +8623 -2564
  81. package/dist/umd/data-structure-typed.min.js +5 -5
  82. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +696 -194
  83. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
  84. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +71 -71
  85. package/docs-site-docusaurus/docs/api/classes/BST.md +639 -189
  86. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
  87. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
  88. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +148 -160
  89. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
  90. package/docs-site-docusaurus/docs/api/classes/Deque.md +105 -91
  91. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +82 -82
  92. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +104 -74
  93. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
  94. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +12 -12
  95. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  96. package/docs-site-docusaurus/docs/api/classes/HashMap.md +51 -51
  97. package/docs-site-docusaurus/docs/api/classes/Heap.md +96 -85
  98. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
  99. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +33 -33
  100. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +50 -50
  101. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +55 -55
  102. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +55 -55
  103. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
  104. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +78 -78
  105. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +82 -82
  106. package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
  107. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +104 -89
  108. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +104 -89
  109. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +104 -89
  110. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +104 -89
  111. package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
  112. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +103 -88
  113. package/docs-site-docusaurus/docs/api/classes/Queue.md +112 -60
  114. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +708 -206
  115. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
  116. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +79 -79
  117. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
  118. package/docs-site-docusaurus/docs/api/classes/SkipList.md +44 -44
  119. package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
  120. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +236 -33
  121. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +162 -46
  122. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +232 -32
  123. package/docs-site-docusaurus/docs/api/classes/Trie.md +47 -47
  124. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
  125. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +81 -81
  126. package/docs-site-docusaurus/docs/guide/architecture.md +75 -5
  127. package/docs-site-docusaurus/docs/guide/concepts.md +53 -3
  128. package/docs-site-docusaurus/docs/guide/faq.md +233 -0
  129. package/docs-site-docusaurus/docs/guide/guides.md +43 -58
  130. package/docs-site-docusaurus/docs/guide/installation.md +2 -0
  131. package/docs-site-docusaurus/docs/guide/integrations.md +75 -176
  132. package/docs-site-docusaurus/docs/guide/overview.md +132 -11
  133. package/docs-site-docusaurus/docs/guide/performance.md +2 -0
  134. package/docs-site-docusaurus/docs/guide/quick-start.md +31 -0
  135. package/docs-site-docusaurus/docs/guide/use-cases/_category_.json +6 -0
  136. package/docs-site-docusaurus/docs/guide/use-cases/array-sort-alternative.md +158 -0
  137. package/docs-site-docusaurus/docs/guide/use-cases/heap-vs-sorting.md +92 -0
  138. package/docs-site-docusaurus/docs/guide/use-cases/map-vs-treemap.md +151 -0
  139. package/docs-site-docusaurus/docs/guide/use-cases/priority-queue-typescript.md +113 -0
  140. package/docs-site-docusaurus/docs/guide/use-cases/treemap-javascript.md +151 -0
  141. package/docs-site-docusaurus/docusaurus.config.ts +1 -1
  142. package/docs-site-docusaurus/src/pages/index.tsx +55 -2
  143. package/docs-site-docusaurus/static/llms.txt +37 -0
  144. package/docs-site-docusaurus/typedoc.json +1 -0
  145. package/llms.txt +37 -0
  146. package/package.json +65 -56
  147. package/src/common/error.ts +19 -1
  148. package/src/common/index.ts +1 -1
  149. package/src/data-structures/base/iterable-element-base.ts +3 -2
  150. package/src/data-structures/binary-tree/avl-tree.ts +99 -5
  151. package/src/data-structures/binary-tree/binary-indexed-tree.ts +102 -4
  152. package/src/data-structures/binary-tree/binary-tree.ts +239 -78
  153. package/src/data-structures/binary-tree/bst.ts +542 -13
  154. package/src/data-structures/binary-tree/red-black-tree.ts +155 -15
  155. package/src/data-structures/binary-tree/segment-tree.ts +42 -0
  156. package/src/data-structures/binary-tree/tree-map.ts +1223 -261
  157. package/src/data-structures/binary-tree/tree-multi-map.ts +939 -30
  158. package/src/data-structures/binary-tree/tree-multi-set.ts +746 -10
  159. package/src/data-structures/binary-tree/tree-set.ts +1018 -99
  160. package/src/data-structures/graph/abstract-graph.ts +2 -2
  161. package/src/data-structures/graph/directed-graph.ts +71 -1
  162. package/src/data-structures/graph/undirected-graph.ts +64 -1
  163. package/src/data-structures/hash/hash-map.ts +102 -16
  164. package/src/data-structures/heap/heap.ts +153 -23
  165. package/src/data-structures/heap/max-heap.ts +2 -2
  166. package/src/data-structures/linked-list/doubly-linked-list.ts +139 -0
  167. package/src/data-structures/linked-list/singly-linked-list.ts +106 -1
  168. package/src/data-structures/linked-list/skip-linked-list.ts +131 -5
  169. package/src/data-structures/matrix/matrix.ts +65 -9
  170. package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
  171. package/src/data-structures/queue/deque.ts +130 -0
  172. package/src/data-structures/queue/queue.ts +109 -0
  173. package/src/data-structures/stack/stack.ts +75 -5
  174. package/src/data-structures/trie/trie.ts +86 -2
  175. package/src/interfaces/binary-tree.ts +1 -9
  176. package/src/types/data-structures/binary-tree/bst.ts +1 -0
  177. package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
  178. package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
  179. package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
  180. package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +0 -12984
  181. package/.vitepress/cache/deps_temp_51f5f1b0/package.json +0 -3
  182. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +0 -4505
  183. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +0 -9731
  184. package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +0 -347
@@ -3,6 +3,12 @@
3
3
  var __defProp = Object.defineProperty;
4
4
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
5
 
6
+ // src/common/error.ts
7
+ function raise(ErrorClass, message) {
8
+ throw new ErrorClass(message);
9
+ }
10
+ __name(raise, "raise");
11
+
6
12
  // src/data-structures/base/iterable-element-base.ts
7
13
  var IterableElementBase = class {
8
14
  static {
@@ -21,7 +27,7 @@ var IterableElementBase = class {
21
27
  if (options) {
22
28
  const { toElementFn } = options;
23
29
  if (typeof toElementFn === "function") this._toElementFn = toElementFn;
24
- else if (toElementFn) throw new TypeError("toElementFn must be a function type");
30
+ else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
25
31
  }
26
32
  }
27
33
  /**
@@ -184,7 +190,7 @@ var IterableElementBase = class {
184
190
  acc = initialValue;
185
191
  } else {
186
192
  const first = iter.next();
187
- if (first.done) throw new TypeError("Reduce of empty structure with no initial value");
193
+ if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
188
194
  acc = first.value;
189
195
  index = 1;
190
196
  }
@@ -751,6 +757,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
751
757
 
752
758
 
753
759
 
760
+
761
+
762
+
763
+
764
+
765
+
766
+
767
+
754
768
 
755
769
 
756
770
 
@@ -814,6 +828,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
814
828
 
815
829
 
816
830
 
831
+
832
+
833
+
834
+
835
+
836
+
837
+
838
+
817
839
 
818
840
 
819
841
 
@@ -882,6 +904,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
882
904
 
883
905
 
884
906
 
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+
885
915
 
886
916
 
887
917
 
@@ -932,6 +962,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
932
962
 
933
963
 
934
964
 
965
+
966
+
967
+
968
+
969
+
970
+
971
+
972
+
935
973
 
936
974
 
937
975
 
@@ -1043,6 +1081,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1043
1081
 
1044
1082
 
1045
1083
 
1084
+
1085
+
1086
+
1087
+
1088
+
1089
+
1090
+
1091
+
1046
1092
 
1047
1093
 
1048
1094
 
@@ -1098,6 +1144,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1098
1144
 
1099
1145
 
1100
1146
 
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+
1101
1155
 
1102
1156
 
1103
1157
 
@@ -1142,6 +1196,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1142
1196
 
1143
1197
 
1144
1198
 
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+
1145
1207
 
1146
1208
 
1147
1209
 
@@ -1192,6 +1254,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1192
1254
 
1193
1255
 
1194
1256
 
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1195
1265
 
1196
1266
 
1197
1267
 
@@ -1247,6 +1317,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1247
1317
 
1248
1318
 
1249
1319
 
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+
1250
1328
 
1251
1329
 
1252
1330
 
@@ -1310,6 +1388,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1310
1388
 
1311
1389
 
1312
1390
 
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1313
1399
 
1314
1400
 
1315
1401
 
@@ -1350,6 +1436,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1350
1436
 
1351
1437
 
1352
1438
 
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+
1446
+
1353
1447
 
1354
1448
 
1355
1449
 
@@ -1396,6 +1490,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1396
1490
 
1397
1491
 
1398
1492
 
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1399
1501
 
1400
1502
 
1401
1503
 
@@ -1608,6 +1710,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1608
1710
 
1609
1711
 
1610
1712
 
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1611
1721
 
1612
1722
 
1613
1723
 
@@ -1658,6 +1768,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1658
1768
 
1659
1769
 
1660
1770
 
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1661
1779
 
1662
1780
 
1663
1781
 
@@ -1736,6 +1854,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1736
1854
 
1737
1855
 
1738
1856
 
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+
1739
1865
 
1740
1866
 
1741
1867
 
@@ -1967,6 +2093,14 @@ var Queue = class _Queue extends LinearBase {
1967
2093
 
1968
2094
 
1969
2095
 
2096
+
2097
+
2098
+
2099
+
2100
+
2101
+
2102
+
2103
+
1970
2104
 
1971
2105
 
1972
2106
 
@@ -2013,6 +2147,14 @@ var Queue = class _Queue extends LinearBase {
2013
2147
 
2014
2148
 
2015
2149
 
2150
+
2151
+
2152
+
2153
+
2154
+
2155
+
2156
+
2157
+
2016
2158
 
2017
2159
 
2018
2160
 
@@ -2031,6 +2173,14 @@ var Queue = class _Queue extends LinearBase {
2031
2173
  get first() {
2032
2174
  return this.length > 0 ? this.elements[this._offset] : void 0;
2033
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
+ }
2034
2184
  /**
2035
2185
  * Get the last element (back) without removing it.
2036
2186
  * @remarks Time O(1), Space O(1)
@@ -2075,6 +2225,14 @@ var Queue = class _Queue extends LinearBase {
2075
2225
 
2076
2226
 
2077
2227
 
2228
+
2229
+
2230
+
2231
+
2232
+
2233
+
2234
+
2235
+
2078
2236
 
2079
2237
 
2080
2238
 
@@ -2133,6 +2291,14 @@ var Queue = class _Queue extends LinearBase {
2133
2291
 
2134
2292
 
2135
2293
 
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2300
+
2301
+
2136
2302
 
2137
2303
 
2138
2304
 
@@ -2198,6 +2364,14 @@ var Queue = class _Queue extends LinearBase {
2198
2364
 
2199
2365
 
2200
2366
 
2367
+
2368
+
2369
+
2370
+
2371
+
2372
+
2373
+
2374
+
2201
2375
 
2202
2376
 
2203
2377
 
@@ -2253,6 +2427,14 @@ var Queue = class _Queue extends LinearBase {
2253
2427
 
2254
2428
 
2255
2429
 
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+
2437
+
2256
2438
 
2257
2439
 
2258
2440
 
@@ -2301,6 +2483,14 @@ var Queue = class _Queue extends LinearBase {
2301
2483
 
2302
2484
 
2303
2485
 
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+
2304
2494
 
2305
2495
 
2306
2496
 
@@ -2356,6 +2546,21 @@ var Queue = class _Queue extends LinearBase {
2356
2546
  this._elements[this._offset + index] = newElement;
2357
2547
  return true;
2358
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
+ }
2359
2564
  /**
2360
2565
  * Reverse the queue in-place by compacting then reversing.
2361
2566
  * @remarks Time O(N), Space O(N)
@@ -2390,6 +2595,14 @@ var Queue = class _Queue extends LinearBase {
2390
2595
 
2391
2596
 
2392
2597
 
2598
+
2599
+
2600
+
2601
+
2602
+
2603
+
2604
+
2605
+
2393
2606
 
2394
2607
 
2395
2608
 
@@ -2432,6 +2645,14 @@ var Queue = class _Queue extends LinearBase {
2432
2645
 
2433
2646
 
2434
2647
 
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2435
2656
 
2436
2657
 
2437
2658
 
@@ -2497,6 +2718,14 @@ var Queue = class _Queue extends LinearBase {
2497
2718
 
2498
2719
 
2499
2720
 
2721
+
2722
+
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2500
2729
 
2501
2730
 
2502
2731
 
@@ -2546,6 +2775,14 @@ var Queue = class _Queue extends LinearBase {
2546
2775
 
2547
2776
 
2548
2777
 
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+
2784
+
2785
+
2549
2786
 
2550
2787
 
2551
2788
 
@@ -2599,6 +2836,14 @@ var Queue = class _Queue extends LinearBase {
2599
2836
 
2600
2837
 
2601
2838
 
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+
2846
+
2602
2847
 
2603
2848
 
2604
2849
 
@@ -2874,6 +3119,13 @@ var Deque = class extends LinearBase {
2874
3119
 
2875
3120
 
2876
3121
 
3122
+
3123
+
3124
+
3125
+
3126
+
3127
+
3128
+
2877
3129
 
2878
3130
 
2879
3131
 
@@ -2895,6 +3147,31 @@ var Deque = class extends LinearBase {
2895
3147
  * console.log(last); // 50;
2896
3148
  *
2897
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
2898
3175
  * console.log(deque.length); // 5;
2899
3176
  */
2900
3177
  get first() {
@@ -2927,6 +3204,14 @@ var Deque = class extends LinearBase {
2927
3204
 
2928
3205
 
2929
3206
 
3207
+
3208
+
3209
+
3210
+
3211
+
3212
+
3213
+
3214
+
2930
3215
 
2931
3216
 
2932
3217
 
@@ -2986,6 +3271,14 @@ var Deque = class extends LinearBase {
2986
3271
 
2987
3272
 
2988
3273
 
3274
+
3275
+
3276
+
3277
+
3278
+
3279
+
3280
+
3281
+
2989
3282
 
2990
3283
 
2991
3284
 
@@ -3058,6 +3351,14 @@ var Deque = class extends LinearBase {
3058
3351
 
3059
3352
 
3060
3353
 
3354
+
3355
+
3356
+
3357
+
3358
+
3359
+
3360
+
3361
+
3061
3362
 
3062
3363
 
3063
3364
 
@@ -3117,6 +3418,14 @@ var Deque = class extends LinearBase {
3117
3418
 
3118
3419
 
3119
3420
 
3421
+
3422
+
3423
+
3424
+
3425
+
3426
+
3427
+
3428
+
3120
3429
 
3121
3430
 
3122
3431
 
@@ -3177,6 +3486,14 @@ var Deque = class extends LinearBase {
3177
3486
 
3178
3487
 
3179
3488
 
3489
+
3490
+
3491
+
3492
+
3493
+
3494
+
3495
+
3496
+
3180
3497
 
3181
3498
 
3182
3499
 
@@ -3278,6 +3595,14 @@ var Deque = class extends LinearBase {
3278
3595
 
3279
3596
 
3280
3597
 
3598
+
3599
+
3600
+
3601
+
3602
+
3603
+
3604
+
3605
+
3281
3606
 
3282
3607
 
3283
3608
 
@@ -3319,6 +3644,14 @@ var Deque = class extends LinearBase {
3319
3644
 
3320
3645
 
3321
3646
 
3647
+
3648
+
3649
+
3650
+
3651
+
3652
+
3653
+
3654
+
3322
3655
 
3323
3656
 
3324
3657
 
@@ -3364,6 +3697,14 @@ var Deque = class extends LinearBase {
3364
3697
 
3365
3698
 
3366
3699
 
3700
+
3701
+
3702
+
3703
+
3704
+
3705
+
3706
+
3707
+
3367
3708
 
3368
3709
 
3369
3710
 
@@ -3560,6 +3901,14 @@ var Deque = class extends LinearBase {
3560
3901
 
3561
3902
 
3562
3903
 
3904
+
3905
+
3906
+
3907
+
3908
+
3909
+
3910
+
3911
+
3563
3912
 
3564
3913
 
3565
3914
 
@@ -3643,6 +3992,14 @@ var Deque = class extends LinearBase {
3643
3992
 
3644
3993
 
3645
3994
 
3995
+
3996
+
3997
+
3998
+
3999
+
4000
+
4001
+
4002
+
3646
4003
 
3647
4004
 
3648
4005
 
@@ -3751,6 +4108,14 @@ var Deque = class extends LinearBase {
3751
4108
 
3752
4109
 
3753
4110
 
4111
+
4112
+
4113
+
4114
+
4115
+
4116
+
4117
+
4118
+
3754
4119
 
3755
4120
 
3756
4121
 
@@ -3818,6 +4183,14 @@ var Deque = class extends LinearBase {
3818
4183
 
3819
4184
 
3820
4185
 
4186
+
4187
+
4188
+
4189
+
4190
+
4191
+
4192
+
4193
+
3821
4194
 
3822
4195
 
3823
4196
 
@@ -3868,6 +4241,14 @@ var Deque = class extends LinearBase {
3868
4241
 
3869
4242
 
3870
4243
 
4244
+
4245
+
4246
+
4247
+
4248
+
4249
+
4250
+
4251
+
3871
4252
 
3872
4253
 
3873
4254
 
@@ -3938,6 +4319,14 @@ var Deque = class extends LinearBase {
3938
4319
 
3939
4320
 
3940
4321
 
4322
+
4323
+
4324
+
4325
+
4326
+
4327
+
4328
+
4329
+
3941
4330
 
3942
4331
 
3943
4332