data-structure-typed 2.5.0 → 2.5.2

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 (246) hide show
  1. package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +12984 -0
  2. package/.vitepress/cache/deps_temp_51f5f1b0/package.json +3 -0
  3. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +4505 -0
  4. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +9731 -0
  5. package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +347 -0
  6. package/CHANGELOG.md +5 -1
  7. package/README.md +124 -29
  8. package/dist/cjs/binary-tree.cjs +26282 -0
  9. package/dist/cjs/graph.cjs +5422 -0
  10. package/dist/cjs/hash.cjs +1310 -0
  11. package/dist/cjs/heap.cjs +1602 -0
  12. package/dist/cjs/index.cjs +31257 -14673
  13. package/dist/cjs/linked-list.cjs +4576 -0
  14. package/dist/cjs/matrix.cjs +1080 -0
  15. package/dist/cjs/priority-queue.cjs +1376 -0
  16. package/dist/cjs/queue.cjs +4264 -0
  17. package/dist/cjs/stack.cjs +907 -0
  18. package/dist/cjs/trie.cjs +1223 -0
  19. package/dist/cjs-legacy/binary-tree.cjs +26319 -0
  20. package/dist/cjs-legacy/graph.cjs +5420 -0
  21. package/dist/cjs-legacy/hash.cjs +1310 -0
  22. package/dist/cjs-legacy/heap.cjs +1599 -0
  23. package/dist/cjs-legacy/index.cjs +31268 -14679
  24. package/dist/cjs-legacy/linked-list.cjs +4582 -0
  25. package/dist/cjs-legacy/matrix.cjs +1083 -0
  26. package/dist/cjs-legacy/priority-queue.cjs +1374 -0
  27. package/dist/cjs-legacy/queue.cjs +4262 -0
  28. package/dist/cjs-legacy/stack.cjs +907 -0
  29. package/dist/cjs-legacy/trie.cjs +1222 -0
  30. package/dist/esm/binary-tree.mjs +26267 -0
  31. package/dist/esm/graph.mjs +5409 -0
  32. package/dist/esm/hash.mjs +1307 -0
  33. package/dist/esm/heap.mjs +1596 -0
  34. package/dist/esm/index.mjs +31254 -14674
  35. package/dist/esm/linked-list.mjs +4569 -0
  36. package/dist/esm/matrix.mjs +1076 -0
  37. package/dist/esm/priority-queue.mjs +1372 -0
  38. package/dist/esm/queue.mjs +4260 -0
  39. package/dist/esm/stack.mjs +905 -0
  40. package/dist/esm/trie.mjs +1220 -0
  41. package/dist/esm-legacy/binary-tree.mjs +26304 -0
  42. package/dist/esm-legacy/graph.mjs +5407 -0
  43. package/dist/esm-legacy/hash.mjs +1307 -0
  44. package/dist/esm-legacy/heap.mjs +1593 -0
  45. package/dist/esm-legacy/index.mjs +31265 -14680
  46. package/dist/esm-legacy/linked-list.mjs +4575 -0
  47. package/dist/esm-legacy/matrix.mjs +1079 -0
  48. package/dist/esm-legacy/priority-queue.mjs +1370 -0
  49. package/dist/esm-legacy/queue.mjs +4258 -0
  50. package/dist/esm-legacy/stack.mjs +905 -0
  51. package/dist/esm-legacy/trie.mjs +1219 -0
  52. package/dist/types/common/error.d.ts +9 -0
  53. package/dist/types/common/index.d.ts +1 -1
  54. package/dist/types/data-structures/base/index.d.ts +1 -0
  55. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  56. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  57. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +288 -0
  58. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +336 -0
  59. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +618 -18
  60. package/dist/types/data-structures/binary-tree/bst.d.ts +676 -1
  61. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +456 -0
  62. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +144 -1
  63. package/dist/types/data-structures/binary-tree/tree-map.d.ts +3307 -399
  64. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3285 -360
  65. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2674 -325
  66. package/dist/types/data-structures/binary-tree/tree-set.d.ts +3072 -287
  67. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  68. package/dist/types/data-structures/graph/directed-graph.d.ts +240 -0
  69. package/dist/types/data-structures/graph/undirected-graph.d.ts +216 -0
  70. package/dist/types/data-structures/hash/hash-map.d.ts +274 -10
  71. package/dist/types/data-structures/heap/heap.d.ts +336 -0
  72. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +411 -3
  73. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +363 -3
  74. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +434 -2
  75. package/dist/types/data-structures/matrix/matrix.d.ts +192 -0
  76. package/dist/types/data-structures/queue/deque.d.ts +364 -4
  77. package/dist/types/data-structures/queue/queue.d.ts +288 -0
  78. package/dist/types/data-structures/stack/stack.d.ts +240 -0
  79. package/dist/types/data-structures/trie/trie.d.ts +292 -4
  80. package/dist/types/interfaces/graph.d.ts +1 -1
  81. package/dist/types/types/common.d.ts +2 -2
  82. package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
  83. package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
  84. package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
  85. package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
  86. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  87. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  88. package/dist/types/types/utils/validate-type.d.ts +4 -4
  89. package/dist/umd/data-structure-typed.js +31196 -14608
  90. package/dist/umd/data-structure-typed.min.js +11 -5
  91. package/docs-site-docusaurus/README.md +41 -0
  92. package/docs-site-docusaurus/docs/api/README.md +52 -0
  93. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +6644 -0
  94. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +282 -0
  95. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +2266 -0
  96. package/docs-site-docusaurus/docs/api/classes/BST.md +6293 -0
  97. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +333 -0
  98. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +455 -0
  99. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +4647 -0
  100. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +331 -0
  101. package/docs-site-docusaurus/docs/api/classes/Deque.md +2767 -0
  102. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +2999 -0
  103. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +2685 -0
  104. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +221 -0
  105. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +253 -0
  106. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +21 -0
  107. package/docs-site-docusaurus/docs/api/classes/HashMap.md +1333 -0
  108. package/docs-site-docusaurus/docs/api/classes/Heap.md +1881 -0
  109. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +800 -0
  110. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +644 -0
  111. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +1632 -0
  112. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +1853 -0
  113. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +1108 -0
  114. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +156 -0
  115. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +2824 -0
  116. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +2929 -0
  117. package/docs-site-docusaurus/docs/api/classes/Matrix.md +1026 -0
  118. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +1866 -0
  119. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +1883 -0
  120. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +1879 -0
  121. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +1882 -0
  122. package/docs-site-docusaurus/docs/api/classes/Navigator.md +109 -0
  123. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +1839 -0
  124. package/docs-site-docusaurus/docs/api/classes/Queue.md +2244 -0
  125. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +6888 -0
  126. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +372 -0
  127. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +2897 -0
  128. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +169 -0
  129. package/docs-site-docusaurus/docs/api/classes/SkipList.md +1229 -0
  130. package/docs-site-docusaurus/docs/api/classes/Stack.md +1573 -0
  131. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +1389 -0
  132. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +1591 -0
  133. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +1246 -0
  134. package/docs-site-docusaurus/docs/api/classes/Trie.md +1708 -0
  135. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +199 -0
  136. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +2979 -0
  137. package/docs-site-docusaurus/docs/guide/_category_.json +6 -0
  138. package/docs-site-docusaurus/docs/guide/architecture.md +615 -0
  139. package/docs-site-docusaurus/docs/guide/concepts.md +451 -0
  140. package/docs-site-docusaurus/docs/guide/faq.md +180 -0
  141. package/docs-site-docusaurus/docs/guide/guides.md +597 -0
  142. package/docs-site-docusaurus/docs/guide/installation.md +62 -0
  143. package/docs-site-docusaurus/docs/guide/integrations.md +825 -0
  144. package/docs-site-docusaurus/docs/guide/overview.md +645 -0
  145. package/docs-site-docusaurus/docs/guide/performance.md +835 -0
  146. package/docs-site-docusaurus/docs/guide/quick-start.md +104 -0
  147. package/docs-site-docusaurus/docs/guide/use-cases/_category_.json +6 -0
  148. package/docs-site-docusaurus/docs/guide/use-cases/array-sort-alternative.md +158 -0
  149. package/docs-site-docusaurus/docs/guide/use-cases/heap-vs-sorting.md +92 -0
  150. package/docs-site-docusaurus/docs/guide/use-cases/map-vs-treemap.md +151 -0
  151. package/docs-site-docusaurus/docs/guide/use-cases/priority-queue-typescript.md +113 -0
  152. package/docs-site-docusaurus/docs/guide/use-cases/treemap-javascript.md +151 -0
  153. package/docs-site-docusaurus/docusaurus.config.ts +159 -0
  154. package/docs-site-docusaurus/fix-mdx-generics.mjs +75 -0
  155. package/docs-site-docusaurus/package-lock.json +18667 -0
  156. package/docs-site-docusaurus/package.json +50 -0
  157. package/docs-site-docusaurus/prefix-class-to-methods.mjs +48 -0
  158. package/docs-site-docusaurus/sidebars.ts +23 -0
  159. package/docs-site-docusaurus/sort-protected.mjs +87 -0
  160. package/docs-site-docusaurus/src/css/custom.css +96 -0
  161. package/docs-site-docusaurus/src/pages/index.module.css +13 -0
  162. package/docs-site-docusaurus/src/pages/index.tsx +120 -0
  163. package/docs-site-docusaurus/src/pages/markdown-page.md +7 -0
  164. package/docs-site-docusaurus/src/theme/TOCItems/index.tsx +34 -0
  165. package/docs-site-docusaurus/static/.nojekyll +0 -0
  166. package/docs-site-docusaurus/static/img/docusaurus-social-card.jpg +0 -0
  167. package/docs-site-docusaurus/static/img/docusaurus.png +0 -0
  168. package/docs-site-docusaurus/static/img/favicon.ico +0 -0
  169. package/docs-site-docusaurus/static/img/favicon.png +0 -0
  170. package/docs-site-docusaurus/static/img/logo-180.png +0 -0
  171. package/docs-site-docusaurus/static/img/logo.jpg +0 -0
  172. package/docs-site-docusaurus/static/img/logo.png +0 -0
  173. package/docs-site-docusaurus/static/img/logo.svg +1 -0
  174. package/docs-site-docusaurus/static/img/og-image.png +0 -0
  175. package/docs-site-docusaurus/static/img/undraw_docusaurus_mountain.svg +171 -0
  176. package/docs-site-docusaurus/static/img/undraw_docusaurus_react.svg +170 -0
  177. package/docs-site-docusaurus/static/img/undraw_docusaurus_tree.svg +40 -0
  178. package/docs-site-docusaurus/static/llms.txt +37 -0
  179. package/docs-site-docusaurus/static/robots.txt +4 -0
  180. package/docs-site-docusaurus/typedoc.json +23 -0
  181. package/llms.txt +37 -0
  182. package/package.json +159 -55
  183. package/src/common/error.ts +19 -1
  184. package/src/common/index.ts +1 -1
  185. package/src/data-structures/base/index.ts +1 -0
  186. package/src/data-structures/base/iterable-element-base.ts +3 -2
  187. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  188. package/src/data-structures/base/linear-base.ts +3 -3
  189. package/src/data-structures/binary-tree/avl-tree.ts +287 -0
  190. package/src/data-structures/binary-tree/binary-indexed-tree.ts +327 -5
  191. package/src/data-structures/binary-tree/binary-tree.ts +581 -6
  192. package/src/data-structures/binary-tree/bst.ts +922 -7
  193. package/src/data-structures/binary-tree/red-black-tree.ts +453 -0
  194. package/src/data-structures/binary-tree/segment-tree.ts +139 -2
  195. package/src/data-structures/binary-tree/tree-map.ts +3300 -495
  196. package/src/data-structures/binary-tree/tree-multi-map.ts +3384 -563
  197. package/src/data-structures/binary-tree/tree-multi-set.ts +2757 -493
  198. package/src/data-structures/binary-tree/tree-set.ts +3122 -440
  199. package/src/data-structures/graph/abstract-graph.ts +6 -6
  200. package/src/data-structures/graph/directed-graph.ts +230 -0
  201. package/src/data-structures/graph/undirected-graph.ts +207 -0
  202. package/src/data-structures/hash/hash-map.ts +270 -19
  203. package/src/data-structures/heap/heap.ts +326 -4
  204. package/src/data-structures/heap/max-heap.ts +2 -2
  205. package/src/data-structures/linked-list/doubly-linked-list.ts +394 -3
  206. package/src/data-structures/linked-list/singly-linked-list.ts +348 -3
  207. package/src/data-structures/linked-list/skip-linked-list.ts +421 -7
  208. package/src/data-structures/matrix/matrix.ts +194 -10
  209. package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
  210. package/src/data-structures/queue/deque.ts +350 -5
  211. package/src/data-structures/queue/queue.ts +276 -0
  212. package/src/data-structures/stack/stack.ts +230 -0
  213. package/src/data-structures/trie/trie.ts +283 -7
  214. package/src/interfaces/graph.ts +1 -1
  215. package/src/types/common.ts +2 -2
  216. package/src/types/data-structures/binary-tree/bst.ts +1 -0
  217. package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
  218. package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
  219. package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
  220. package/src/types/data-structures/heap/heap.ts +1 -0
  221. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  222. package/src/types/utils/validate-type.ts +4 -4
  223. package/vercel.json +6 -0
  224. package/dist/leetcode/avl-tree-counter.mjs +0 -2957
  225. package/dist/leetcode/avl-tree-multi-map.mjs +0 -2889
  226. package/dist/leetcode/avl-tree.mjs +0 -2720
  227. package/dist/leetcode/binary-tree.mjs +0 -1594
  228. package/dist/leetcode/bst.mjs +0 -2398
  229. package/dist/leetcode/deque.mjs +0 -683
  230. package/dist/leetcode/directed-graph.mjs +0 -1733
  231. package/dist/leetcode/doubly-linked-list.mjs +0 -709
  232. package/dist/leetcode/hash-map.mjs +0 -493
  233. package/dist/leetcode/heap.mjs +0 -542
  234. package/dist/leetcode/max-heap.mjs +0 -375
  235. package/dist/leetcode/max-priority-queue.mjs +0 -383
  236. package/dist/leetcode/min-heap.mjs +0 -363
  237. package/dist/leetcode/min-priority-queue.mjs +0 -371
  238. package/dist/leetcode/priority-queue.mjs +0 -363
  239. package/dist/leetcode/queue.mjs +0 -943
  240. package/dist/leetcode/red-black-tree.mjs +0 -2765
  241. package/dist/leetcode/singly-linked-list.mjs +0 -754
  242. package/dist/leetcode/stack.mjs +0 -217
  243. package/dist/leetcode/tree-counter.mjs +0 -3039
  244. package/dist/leetcode/tree-multi-map.mjs +0 -2913
  245. package/dist/leetcode/trie.mjs +0 -413
  246. package/dist/leetcode/undirected-graph.mjs +0 -1650
@@ -0,0 +1,800 @@
1
+ [**data-structure-typed**](../README.md)
2
+
3
+ ***
4
+
5
+ [data-structure-typed](../README.md) / IterableElementBase
6
+
7
+ # Abstract Class: IterableElementBase\<E, R\>
8
+
9
+ Defined in: [data-structures/base/iterable-element-base.ts:15](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L15)
10
+
11
+ Base class that makes a data structure iterable and provides common
12
+ element-wise utilities (e.g., map/filter/reduce/find).
13
+
14
+ ## Remarks
15
+
16
+ This class implements the JavaScript iteration protocol (via `Symbol.iterator`)
17
+ and offers array-like helpers with predictable time/space complexity.
18
+
19
+ ## Extended by
20
+
21
+ - [`Stack`](Stack.md)
22
+ - [`Heap`](Heap.md)
23
+ - [`Trie`](Trie.md)
24
+ - [`LinearBase`](LinearBase.md)
25
+
26
+ ## Type Parameters
27
+
28
+ ### E
29
+
30
+ `E`
31
+
32
+ The public element type yielded by the structure.
33
+
34
+ ### R
35
+
36
+ `R`
37
+
38
+ The underlying "raw" element type used internally or by converters.
39
+
40
+ ## Implements
41
+
42
+ - `Iterable`\<`E`\>
43
+
44
+ ## Constructors
45
+
46
+ ### toElementFn
47
+
48
+ #### Get Signature
49
+
50
+ ```ts
51
+ get toElementFn(): ((rawElement) => E) | undefined;
52
+ ```
53
+
54
+ Defined in: [data-structures/base/iterable-element-base.ts:48](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L48)
55
+
56
+ Exposes the current `toElementFn`, if configured.
57
+
58
+ ##### Remarks
59
+
60
+ Time O(1), Space O(1).
61
+
62
+ ##### Returns
63
+
64
+ ((`rawElement`) => `E`) \| `undefined`
65
+
66
+ The converter function or `undefined` when not set.
67
+
68
+ ## Methods
69
+
70
+ ### \[iterator\]()
71
+
72
+ ```ts
73
+ iterator: IterableIterator<E>;
74
+ ```
75
+
76
+ Defined in: [data-structures/base/iterable-element-base.ts:61](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L61)
77
+
78
+ Returns an iterator over the structure's elements.
79
+
80
+ #### Parameters
81
+
82
+ ##### args
83
+
84
+ ...`unknown`[]
85
+
86
+ Optional iterator arguments forwarded to the internal iterator.
87
+
88
+ #### Returns
89
+
90
+ `IterableIterator`\<`E`\>
91
+
92
+ An `IterableIterator<E>` that yields the elements in traversal order.
93
+
94
+ #### Remarks
95
+
96
+ Producing the iterator is O(1); consuming the entire iterator is Time O(n) with O(1) extra space.
97
+
98
+ #### Implementation of
99
+
100
+ ```ts
101
+ Iterable.[iterator]
102
+ ```
103
+
104
+ ***
105
+
106
+ ### clear()
107
+
108
+ ```ts
109
+ abstract clear(): void;
110
+ ```
111
+
112
+ Defined in: [data-structures/base/iterable-element-base.ts:289](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L289)
113
+
114
+ Removes all elements from the structure.
115
+
116
+ #### Returns
117
+
118
+ `void`
119
+
120
+ `void`.
121
+
122
+ #### Remarks
123
+
124
+ Expected Time O(1) or O(n) depending on the implementation; Space O(1).
125
+
126
+ ***
127
+
128
+ ### clone()
129
+
130
+ ```ts
131
+ abstract clone(): this;
132
+ ```
133
+
134
+ Defined in: [data-structures/base/iterable-element-base.ts:298](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L298)
135
+
136
+ Creates a structural copy with the same element values and configuration.
137
+
138
+ #### Returns
139
+
140
+ `this`
141
+
142
+ A clone of the current instance (same concrete type).
143
+
144
+ #### Remarks
145
+
146
+ Expected Time O(n) to copy elements; Space O(n).
147
+
148
+ ***
149
+
150
+ ### every()
151
+
152
+ ```ts
153
+ every(predicate, thisArg?): boolean;
154
+ ```
155
+
156
+ Defined in: [data-structures/base/iterable-element-base.ts:87](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L87)
157
+
158
+ Tests whether all elements satisfy the predicate.
159
+
160
+ #### Parameters
161
+
162
+ ##### predicate
163
+
164
+ `ElementCallback`\<`E`, `R`, `boolean`\>
165
+
166
+ Function invoked for each element with signature `(value, index, self)`.
167
+
168
+ ##### thisArg?
169
+
170
+ `unknown`
171
+
172
+ Optional `this` binding for the predicate.
173
+
174
+ #### Returns
175
+
176
+ `boolean`
177
+
178
+ `true` if every element passes; otherwise `false`.
179
+
180
+ #### Remarks
181
+
182
+ Time O(n) in the worst case; may exit early when the first failure is found. Space O(1).
183
+
184
+ ***
185
+
186
+ ### filter()
187
+
188
+ ```ts
189
+ abstract filter(predicate, thisArg?): this;
190
+ ```
191
+
192
+ Defined in: [data-structures/base/iterable-element-base.ts:341](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L341)
193
+
194
+ Filters elements using the provided predicate and returns the same concrete structure type.
195
+
196
+ #### Parameters
197
+
198
+ ##### predicate
199
+
200
+ `ElementCallback`\<`E`, `R`, `boolean`\>
201
+
202
+ Function with signature `(value, index, self) => boolean`.
203
+
204
+ ##### thisArg?
205
+
206
+ `unknown`
207
+
208
+ Optional `this` binding for the predicate.
209
+
210
+ #### Returns
211
+
212
+ `this`
213
+
214
+ A new instance of the same concrete type containing only elements that pass the predicate.
215
+
216
+ #### Remarks
217
+
218
+ Time O(n), Space O(k) where `k` is the number of kept elements.
219
+
220
+ ***
221
+
222
+ ### find()
223
+
224
+ #### Call Signature
225
+
226
+ ```ts
227
+ find<S>(predicate, thisArg?): S | undefined;
228
+ ```
229
+
230
+ Defined in: [data-structures/base/iterable-element-base.ts:163](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L163)
231
+
232
+ Finds the first element that satisfies the predicate and returns it.
233
+
234
+ Finds the first element of type `S` (a subtype of `E`) that satisfies the predicate and returns it.
235
+
236
+ ##### Type Parameters
237
+
238
+ ###### S
239
+
240
+ `S`
241
+
242
+ ##### Parameters
243
+
244
+ ###### predicate
245
+
246
+ `ElementCallback`\<`E`, `R`, `S`\>
247
+
248
+ Type-guard predicate: `(value, index, self) => value is S`.
249
+
250
+ ###### thisArg?
251
+
252
+ `unknown`
253
+
254
+ Optional `this` binding for the predicate.
255
+
256
+ ##### Returns
257
+
258
+ `S` \| `undefined`
259
+
260
+ The matched element typed as `S`, or `undefined` if not found.
261
+
262
+ ##### Remarks
263
+
264
+ Time O(n) in the worst case; may exit early on the first match. Space O(1).
265
+
266
+ #### Call Signature
267
+
268
+ ```ts
269
+ find(predicate, thisArg?): E | undefined;
270
+ ```
271
+
272
+ Defined in: [data-structures/base/iterable-element-base.ts:164](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L164)
273
+
274
+ Finds the first element that satisfies the predicate and returns it.
275
+
276
+ Finds the first element of type `S` (a subtype of `E`) that satisfies the predicate and returns it.
277
+
278
+ ##### Parameters
279
+
280
+ ###### predicate
281
+
282
+ `ElementCallback`\<`E`, `R`, `unknown`\>
283
+
284
+ Type-guard predicate: `(value, index, self) => value is S`.
285
+
286
+ ###### thisArg?
287
+
288
+ `unknown`
289
+
290
+ Optional `this` binding for the predicate.
291
+
292
+ ##### Returns
293
+
294
+ `E` \| `undefined`
295
+
296
+ The matched element typed as `S`, or `undefined` if not found.
297
+
298
+ ##### Remarks
299
+
300
+ Time O(n) in the worst case; may exit early on the first match. Space O(1).
301
+
302
+ ***
303
+
304
+ ### forEach()
305
+
306
+ ```ts
307
+ forEach(callbackfn, thisArg?): void;
308
+ ```
309
+
310
+ Defined in: [data-structures/base/iterable-element-base.ts:133](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L133)
311
+
312
+ Invokes a callback for each element in iteration order.
313
+
314
+ #### Parameters
315
+
316
+ ##### callbackfn
317
+
318
+ `ElementCallback`\<`E`, `R`, `void`\>
319
+
320
+ Function invoked per element with signature `(value, index, self)`.
321
+
322
+ ##### thisArg?
323
+
324
+ `unknown`
325
+
326
+ Optional `this` binding for the callback.
327
+
328
+ #### Returns
329
+
330
+ `void`
331
+
332
+ `void`.
333
+
334
+ #### Remarks
335
+
336
+ Time O(n), Space O(1).
337
+
338
+ ***
339
+
340
+ ### has()
341
+
342
+ ```ts
343
+ has(element): boolean;
344
+ ```
345
+
346
+ Defined in: [data-structures/base/iterable-element-base.ts:189](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L189)
347
+
348
+ Checks whether a strictly-equal element exists in the structure.
349
+
350
+ #### Parameters
351
+
352
+ ##### element
353
+
354
+ `E`
355
+
356
+ The element to test with `===` equality.
357
+
358
+ #### Returns
359
+
360
+ `boolean`
361
+
362
+ `true` if an equal element is found; otherwise `false`.
363
+
364
+ #### Remarks
365
+
366
+ Time O(n) in the worst case. Space O(1).
367
+
368
+ ***
369
+
370
+ ### isEmpty()
371
+
372
+ ```ts
373
+ abstract isEmpty(): boolean;
374
+ ```
375
+
376
+ Defined in: [data-structures/base/iterable-element-base.ts:280](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L280)
377
+
378
+ Indicates whether the structure currently contains no elements.
379
+
380
+ #### Returns
381
+
382
+ `boolean`
383
+
384
+ `true` if empty; otherwise `false`.
385
+
386
+ #### Remarks
387
+
388
+ Expected Time O(1), Space O(1) for most implementations.
389
+
390
+ ***
391
+
392
+ ### map()
393
+
394
+ ```ts
395
+ abstract map<EM, RM>(
396
+ callback,
397
+ options?,
398
+ thisArg?): IterableElementBase<EM, RM>;
399
+ ```
400
+
401
+ Defined in: [data-structures/base/iterable-element-base.ts:313](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L313)
402
+
403
+ Maps each element to a new element and returns a new iterable structure.
404
+
405
+ #### Type Parameters
406
+
407
+ ##### EM
408
+
409
+ `EM`
410
+
411
+ The mapped element type.
412
+
413
+ ##### RM
414
+
415
+ `RM`
416
+
417
+ The mapped raw element type used internally by the target structure.
418
+
419
+ #### Parameters
420
+
421
+ ##### callback
422
+
423
+ `ElementCallback`\<`E`, `R`, `EM`\>
424
+
425
+ Function with signature `(value, index, self) => mapped`.
426
+
427
+ ##### options?
428
+
429
+ `IterableElementBaseOptions`\<`EM`, `RM`\>
430
+
431
+ Optional options for the returned structure, including its `toElementFn`.
432
+
433
+ ##### thisArg?
434
+
435
+ `unknown`
436
+
437
+ Optional `this` binding for the callback.
438
+
439
+ #### Returns
440
+
441
+ `IterableElementBase`\<`EM`, `RM`\>
442
+
443
+ A new `IterableElementBase<EM, RM>` containing mapped elements.
444
+
445
+ #### Remarks
446
+
447
+ Time O(n), Space O(n).
448
+
449
+ ***
450
+
451
+ ### mapSame()
452
+
453
+ ```ts
454
+ abstract mapSame(callback, thisArg?): this;
455
+ ```
456
+
457
+ Defined in: [data-structures/base/iterable-element-base.ts:329](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L329)
458
+
459
+ Maps each element to the same element type and returns the same concrete structure type.
460
+
461
+ #### Parameters
462
+
463
+ ##### callback
464
+
465
+ `ElementCallback`\<`E`, `R`, `E`\>
466
+
467
+ Function with signature `(value, index, self) => mappedValue`.
468
+
469
+ ##### thisArg?
470
+
471
+ `unknown`
472
+
473
+ Optional `this` binding for the callback.
474
+
475
+ #### Returns
476
+
477
+ `this`
478
+
479
+ A new instance of the same concrete type with mapped elements.
480
+
481
+ #### Remarks
482
+
483
+ Time O(n), Space O(n).
484
+
485
+ ***
486
+
487
+ ### print()
488
+
489
+ ```ts
490
+ print(): void;
491
+ ```
492
+
493
+ Defined in: [data-structures/base/iterable-element-base.ts:269](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L269)
494
+
495
+ Prints `toVisual()` to the console. Intended for quick debugging.
496
+
497
+ #### Returns
498
+
499
+ `void`
500
+
501
+ `void`.
502
+
503
+ #### Remarks
504
+
505
+ Time O(n) due to materialization, Space O(n) for the intermediate representation.
506
+
507
+ ***
508
+
509
+ ### reduce()
510
+
511
+ Reduces all elements to a single accumulated value.
512
+
513
+ #### Param
514
+
515
+ Reducer of signature `(acc, value, index, self) => nextAcc`. The first element is used as the initial accumulator.
516
+
517
+ #### Param
518
+
519
+ Reducer of signature `(acc, value, index, self) => nextAcc`.
520
+
521
+ #### Param
522
+
523
+ The initial accumulator value of type `E`.
524
+
525
+ #### Template
526
+
527
+ The accumulator type when it differs from `E`.
528
+
529
+ #### Param
530
+
531
+ Reducer of signature `(acc: U, value, index, self) => U`.
532
+
533
+ #### Param
534
+
535
+ The initial accumulator value of type `U`.
536
+
537
+ #### Remarks
538
+
539
+ Time O(n), Space O(1). Throws if called on an empty structure without `initialValue`.
540
+
541
+ #### Call Signature
542
+
543
+ ```ts
544
+ reduce(callbackfn): E;
545
+ ```
546
+
547
+ Defined in: [data-structures/base/iterable-element-base.ts:194](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L194)
548
+
549
+ ##### Parameters
550
+
551
+ ###### callbackfn
552
+
553
+ `ReduceElementCallback`\<`E`, `R`\>
554
+
555
+ ##### Returns
556
+
557
+ `E`
558
+
559
+ #### Call Signature
560
+
561
+ ```ts
562
+ reduce(callbackfn, initialValue): E;
563
+ ```
564
+
565
+ Defined in: [data-structures/base/iterable-element-base.ts:195](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L195)
566
+
567
+ ##### Parameters
568
+
569
+ ###### callbackfn
570
+
571
+ `ReduceElementCallback`\<`E`, `R`\>
572
+
573
+ ###### initialValue
574
+
575
+ `E`
576
+
577
+ ##### Returns
578
+
579
+ `E`
580
+
581
+ #### Call Signature
582
+
583
+ ```ts
584
+ reduce<U>(callbackfn, initialValue): U;
585
+ ```
586
+
587
+ Defined in: [data-structures/base/iterable-element-base.ts:196](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L196)
588
+
589
+ ##### Type Parameters
590
+
591
+ ###### U
592
+
593
+ `U`
594
+
595
+ ##### Parameters
596
+
597
+ ###### callbackfn
598
+
599
+ `ReduceElementCallback`\<`E`, `R`, `U`\>
600
+
601
+ ###### initialValue
602
+
603
+ `U`
604
+
605
+ ##### Returns
606
+
607
+ `U`
608
+
609
+ ***
610
+
611
+ ### some()
612
+
613
+ ```ts
614
+ some(predicate, thisArg?): boolean;
615
+ ```
616
+
617
+ Defined in: [data-structures/base/iterable-element-base.ts:110](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L110)
618
+
619
+ Tests whether at least one element satisfies the predicate.
620
+
621
+ #### Parameters
622
+
623
+ ##### predicate
624
+
625
+ `ElementCallback`\<`E`, `R`, `boolean`\>
626
+
627
+ Function invoked for each element with signature `(value, index, self)`.
628
+
629
+ ##### thisArg?
630
+
631
+ `unknown`
632
+
633
+ Optional `this` binding for the predicate.
634
+
635
+ #### Returns
636
+
637
+ `boolean`
638
+
639
+ `true` if any element passes; otherwise `false`.
640
+
641
+ #### Remarks
642
+
643
+ Time O(n) in the worst case; may exit early on first success. Space O(1).
644
+
645
+ ***
646
+
647
+ ### toArray()
648
+
649
+ ```ts
650
+ toArray(): E[];
651
+ ```
652
+
653
+ Defined in: [data-structures/base/iterable-element-base.ts:246](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L246)
654
+
655
+ Materializes the elements into a new array.
656
+
657
+ #### Returns
658
+
659
+ `E`[]
660
+
661
+ A shallow array copy of the iteration order.
662
+
663
+ #### Remarks
664
+
665
+ Time O(n), Space O(n).
666
+
667
+ ***
668
+
669
+ ### toVisual()
670
+
671
+ ```ts
672
+ toVisual(): E[];
673
+ ```
674
+
675
+ Defined in: [data-structures/base/iterable-element-base.ts:258](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L258)
676
+
677
+ Returns a representation of the structure suitable for quick visualization.
678
+ Defaults to an array of elements; subclasses may override to provide richer visuals.
679
+
680
+ #### Returns
681
+
682
+ `E`[]
683
+
684
+ A visual representation (array by default).
685
+
686
+ #### Remarks
687
+
688
+ Time O(n), Space O(n).
689
+
690
+ ***
691
+
692
+ ### values()
693
+
694
+ ```ts
695
+ values(): IterableIterator<E>;
696
+ ```
697
+
698
+ Defined in: [data-structures/base/iterable-element-base.ts:72](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L72)
699
+
700
+ Returns an iterator over the values (alias of the default iterator).
701
+
702
+ #### Returns
703
+
704
+ `IterableIterator`\<`E`\>
705
+
706
+ An `IterableIterator<E>` over all elements.
707
+
708
+ #### Remarks
709
+
710
+ Creating the iterator is O(1); full iteration is Time O(n), Space O(1).
711
+
712
+
713
+ ---
714
+
715
+ ## Protected Members
716
+
717
+ ### Constructor
718
+
719
+ ```ts
720
+ protected new IterableElementBase<E, R>(options?): IterableElementBase<E, R>;
721
+ ```
722
+
723
+ Defined in: [data-structures/base/iterable-element-base.ts:25](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L25)
724
+
725
+ Create a new iterable base.
726
+
727
+ #### Parameters
728
+
729
+ ##### options?
730
+
731
+ `IterableElementBaseOptions`\<`E`, `R`\>
732
+
733
+ Optional behavior overrides. When provided, a `toElementFn`
734
+ is used to convert a raw element (`R`) into a public element (`E`).
735
+
736
+ #### Returns
737
+
738
+ `IterableElementBase`\<`E`, `R`\>
739
+
740
+ #### Remarks
741
+
742
+ Time O(1), Space O(1).
743
+
744
+ ## Properties
745
+
746
+ ### \_toElementFn?
747
+
748
+ ```ts
749
+ protected optional _toElementFn?: (rawElement) => E;
750
+ ```
751
+
752
+ Defined in: [data-structures/base/iterable-element-base.ts:39](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L39)
753
+
754
+ The converter used to transform a raw element (`R`) into a public element (`E`).
755
+
756
+ #### Parameters
757
+
758
+ ##### rawElement
759
+
760
+ `R`
761
+
762
+ #### Returns
763
+
764
+ `E`
765
+
766
+ #### Remarks
767
+
768
+ Time O(1), Space O(1).
769
+
770
+ ## Accessors
771
+
772
+ ### \_getIterator()
773
+
774
+ ```ts
775
+ abstract protected _getIterator(...args): IterableIterator<E>;
776
+ ```
777
+
778
+ Defined in: [data-structures/base/iterable-element-base.ts:352](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/base/iterable-element-base.ts#L352)
779
+
780
+ Internal iterator factory used by the default iterator.
781
+
782
+ #### Parameters
783
+
784
+ ##### args
785
+
786
+ ...`unknown`[]
787
+
788
+ Optional iterator arguments.
789
+
790
+ #### Returns
791
+
792
+ `IterableIterator`\<`E`\>
793
+
794
+ An iterator over elements.
795
+
796
+ #### Remarks
797
+
798
+ Implementations should yield in O(1) per element with O(1) extra space when possible.
799
+
800
+ ***