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
@@ -1,6 +1,12 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
+ // src/common/error.ts
5
+ function raise(ErrorClass, message) {
6
+ throw new ErrorClass(message);
7
+ }
8
+ __name(raise, "raise");
9
+
4
10
  // src/data-structures/base/iterable-element-base.ts
5
11
  var IterableElementBase = class {
6
12
  static {
@@ -19,7 +25,7 @@ var IterableElementBase = class {
19
25
  if (options) {
20
26
  const { toElementFn } = options;
21
27
  if (typeof toElementFn === "function") this._toElementFn = toElementFn;
22
- else if (toElementFn) throw new TypeError("toElementFn must be a function type");
28
+ else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
23
29
  }
24
30
  }
25
31
  /**
@@ -182,7 +188,7 @@ var IterableElementBase = class {
182
188
  acc = initialValue;
183
189
  } else {
184
190
  const first = iter.next();
185
- if (first.done) throw new TypeError("Reduce of empty structure with no initial value");
191
+ if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
186
192
  acc = first.value;
187
193
  index = 1;
188
194
  }
@@ -749,6 +755,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
749
755
 
750
756
 
751
757
 
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
752
766
 
753
767
 
754
768
 
@@ -812,6 +826,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
812
826
 
813
827
 
814
828
 
829
+
830
+
831
+
832
+
833
+
834
+
835
+
836
+
815
837
 
816
838
 
817
839
 
@@ -880,6 +902,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
880
902
 
881
903
 
882
904
 
905
+
906
+
907
+
908
+
909
+
910
+
911
+
912
+
883
913
 
884
914
 
885
915
 
@@ -930,6 +960,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
930
960
 
931
961
 
932
962
 
963
+
964
+
965
+
966
+
967
+
968
+
969
+
970
+
933
971
 
934
972
 
935
973
 
@@ -1041,6 +1079,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1041
1079
 
1042
1080
 
1043
1081
 
1082
+
1083
+
1084
+
1085
+
1086
+
1087
+
1088
+
1089
+
1044
1090
 
1045
1091
 
1046
1092
 
@@ -1096,6 +1142,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1096
1142
 
1097
1143
 
1098
1144
 
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1099
1153
 
1100
1154
 
1101
1155
 
@@ -1140,6 +1194,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1140
1194
 
1141
1195
 
1142
1196
 
1197
+
1198
+
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1143
1205
 
1144
1206
 
1145
1207
 
@@ -1190,6 +1252,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1190
1252
 
1191
1253
 
1192
1254
 
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1193
1263
 
1194
1264
 
1195
1265
 
@@ -1245,6 +1315,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1245
1315
 
1246
1316
 
1247
1317
 
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1248
1326
 
1249
1327
 
1250
1328
 
@@ -1308,6 +1386,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1308
1386
 
1309
1387
 
1310
1388
 
1389
+
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1311
1397
 
1312
1398
 
1313
1399
 
@@ -1348,6 +1434,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1348
1434
 
1349
1435
 
1350
1436
 
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1351
1445
 
1352
1446
 
1353
1447
 
@@ -1394,6 +1488,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1394
1488
 
1395
1489
 
1396
1490
 
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1397
1499
 
1398
1500
 
1399
1501
 
@@ -1606,6 +1708,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1606
1708
 
1607
1709
 
1608
1710
 
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1609
1719
 
1610
1720
 
1611
1721
 
@@ -1656,6 +1766,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1656
1766
 
1657
1767
 
1658
1768
 
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1659
1777
 
1660
1778
 
1661
1779
 
@@ -1734,6 +1852,14 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1734
1852
 
1735
1853
 
1736
1854
 
1855
+
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+
1737
1863
 
1738
1864
 
1739
1865
 
@@ -1965,6 +2091,14 @@ var Queue = class _Queue extends LinearBase {
1965
2091
 
1966
2092
 
1967
2093
 
2094
+
2095
+
2096
+
2097
+
2098
+
2099
+
2100
+
2101
+
1968
2102
 
1969
2103
 
1970
2104
 
@@ -2011,6 +2145,14 @@ var Queue = class _Queue extends LinearBase {
2011
2145
 
2012
2146
 
2013
2147
 
2148
+
2149
+
2150
+
2151
+
2152
+
2153
+
2154
+
2155
+
2014
2156
 
2015
2157
 
2016
2158
 
@@ -2029,6 +2171,14 @@ var Queue = class _Queue extends LinearBase {
2029
2171
  get first() {
2030
2172
  return this.length > 0 ? this.elements[this._offset] : void 0;
2031
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
+ }
2032
2182
  /**
2033
2183
  * Get the last element (back) without removing it.
2034
2184
  * @remarks Time O(1), Space O(1)
@@ -2073,6 +2223,14 @@ var Queue = class _Queue extends LinearBase {
2073
2223
 
2074
2224
 
2075
2225
 
2226
+
2227
+
2228
+
2229
+
2230
+
2231
+
2232
+
2233
+
2076
2234
 
2077
2235
 
2078
2236
 
@@ -2131,6 +2289,14 @@ var Queue = class _Queue extends LinearBase {
2131
2289
 
2132
2290
 
2133
2291
 
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2134
2300
 
2135
2301
 
2136
2302
 
@@ -2196,6 +2362,14 @@ var Queue = class _Queue extends LinearBase {
2196
2362
 
2197
2363
 
2198
2364
 
2365
+
2366
+
2367
+
2368
+
2369
+
2370
+
2371
+
2372
+
2199
2373
 
2200
2374
 
2201
2375
 
@@ -2251,6 +2425,14 @@ var Queue = class _Queue extends LinearBase {
2251
2425
 
2252
2426
 
2253
2427
 
2428
+
2429
+
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2254
2436
 
2255
2437
 
2256
2438
 
@@ -2299,6 +2481,14 @@ var Queue = class _Queue extends LinearBase {
2299
2481
 
2300
2482
 
2301
2483
 
2484
+
2485
+
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+
2302
2492
 
2303
2493
 
2304
2494
 
@@ -2354,6 +2544,21 @@ var Queue = class _Queue extends LinearBase {
2354
2544
  this._elements[this._offset + index] = newElement;
2355
2545
  return true;
2356
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
+ }
2357
2562
  /**
2358
2563
  * Reverse the queue in-place by compacting then reversing.
2359
2564
  * @remarks Time O(N), Space O(N)
@@ -2388,6 +2593,14 @@ var Queue = class _Queue extends LinearBase {
2388
2593
 
2389
2594
 
2390
2595
 
2596
+
2597
+
2598
+
2599
+
2600
+
2601
+
2602
+
2603
+
2391
2604
 
2392
2605
 
2393
2606
 
@@ -2430,6 +2643,14 @@ var Queue = class _Queue extends LinearBase {
2430
2643
 
2431
2644
 
2432
2645
 
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2433
2654
 
2434
2655
 
2435
2656
 
@@ -2495,6 +2716,14 @@ var Queue = class _Queue extends LinearBase {
2495
2716
 
2496
2717
 
2497
2718
 
2719
+
2720
+
2721
+
2722
+
2723
+
2724
+
2725
+
2726
+
2498
2727
 
2499
2728
 
2500
2729
 
@@ -2544,6 +2773,14 @@ var Queue = class _Queue extends LinearBase {
2544
2773
 
2545
2774
 
2546
2775
 
2776
+
2777
+
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+
2547
2784
 
2548
2785
 
2549
2786
 
@@ -2597,6 +2834,14 @@ var Queue = class _Queue extends LinearBase {
2597
2834
 
2598
2835
 
2599
2836
 
2837
+
2838
+
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2600
2845
 
2601
2846
 
2602
2847
 
@@ -2872,6 +3117,13 @@ var Deque = class extends LinearBase {
2872
3117
 
2873
3118
 
2874
3119
 
3120
+
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+
2875
3127
 
2876
3128
 
2877
3129
 
@@ -2893,6 +3145,31 @@ var Deque = class extends LinearBase {
2893
3145
  * console.log(last); // 50;
2894
3146
  *
2895
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
2896
3173
  * console.log(deque.length); // 5;
2897
3174
  */
2898
3175
  get first() {
@@ -2925,6 +3202,14 @@ var Deque = class extends LinearBase {
2925
3202
 
2926
3203
 
2927
3204
 
3205
+
3206
+
3207
+
3208
+
3209
+
3210
+
3211
+
3212
+
2928
3213
 
2929
3214
 
2930
3215
 
@@ -2984,6 +3269,14 @@ var Deque = class extends LinearBase {
2984
3269
 
2985
3270
 
2986
3271
 
3272
+
3273
+
3274
+
3275
+
3276
+
3277
+
3278
+
3279
+
2987
3280
 
2988
3281
 
2989
3282
 
@@ -3056,6 +3349,14 @@ var Deque = class extends LinearBase {
3056
3349
 
3057
3350
 
3058
3351
 
3352
+
3353
+
3354
+
3355
+
3356
+
3357
+
3358
+
3359
+
3059
3360
 
3060
3361
 
3061
3362
 
@@ -3115,6 +3416,14 @@ var Deque = class extends LinearBase {
3115
3416
 
3116
3417
 
3117
3418
 
3419
+
3420
+
3421
+
3422
+
3423
+
3424
+
3425
+
3426
+
3118
3427
 
3119
3428
 
3120
3429
 
@@ -3175,6 +3484,14 @@ var Deque = class extends LinearBase {
3175
3484
 
3176
3485
 
3177
3486
 
3487
+
3488
+
3489
+
3490
+
3491
+
3492
+
3493
+
3494
+
3178
3495
 
3179
3496
 
3180
3497
 
@@ -3276,6 +3593,14 @@ var Deque = class extends LinearBase {
3276
3593
 
3277
3594
 
3278
3595
 
3596
+
3597
+
3598
+
3599
+
3600
+
3601
+
3602
+
3603
+
3279
3604
 
3280
3605
 
3281
3606
 
@@ -3317,6 +3642,14 @@ var Deque = class extends LinearBase {
3317
3642
 
3318
3643
 
3319
3644
 
3645
+
3646
+
3647
+
3648
+
3649
+
3650
+
3651
+
3652
+
3320
3653
 
3321
3654
 
3322
3655
 
@@ -3362,6 +3695,14 @@ var Deque = class extends LinearBase {
3362
3695
 
3363
3696
 
3364
3697
 
3698
+
3699
+
3700
+
3701
+
3702
+
3703
+
3704
+
3705
+
3365
3706
 
3366
3707
 
3367
3708
 
@@ -3558,6 +3899,14 @@ var Deque = class extends LinearBase {
3558
3899
 
3559
3900
 
3560
3901
 
3902
+
3903
+
3904
+
3905
+
3906
+
3907
+
3908
+
3909
+
3561
3910
 
3562
3911
 
3563
3912
 
@@ -3641,6 +3990,14 @@ var Deque = class extends LinearBase {
3641
3990
 
3642
3991
 
3643
3992
 
3993
+
3994
+
3995
+
3996
+
3997
+
3998
+
3999
+
4000
+
3644
4001
 
3645
4002
 
3646
4003
 
@@ -3749,6 +4106,14 @@ var Deque = class extends LinearBase {
3749
4106
 
3750
4107
 
3751
4108
 
4109
+
4110
+
4111
+
4112
+
4113
+
4114
+
4115
+
4116
+
3752
4117
 
3753
4118
 
3754
4119
 
@@ -3816,6 +4181,14 @@ var Deque = class extends LinearBase {
3816
4181
 
3817
4182
 
3818
4183
 
4184
+
4185
+
4186
+
4187
+
4188
+
4189
+
4190
+
4191
+
3819
4192
 
3820
4193
 
3821
4194
 
@@ -3866,6 +4239,14 @@ var Deque = class extends LinearBase {
3866
4239
 
3867
4240
 
3868
4241
 
4242
+
4243
+
4244
+
4245
+
4246
+
4247
+
4248
+
4249
+
3869
4250
 
3870
4251
 
3871
4252
 
@@ -3936,6 +4317,14 @@ var Deque = class extends LinearBase {
3936
4317
 
3937
4318
 
3938
4319
 
4320
+
4321
+
4322
+
4323
+
4324
+
4325
+
4326
+
4327
+
3939
4328
 
3940
4329
 
3941
4330