data-structure-typed 2.4.5 → 2.5.1

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 (240) 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 +3 -1
  7. package/README.md +78 -31
  8. package/dist/cjs/binary-tree.cjs +23698 -0
  9. package/dist/cjs/graph.cjs +5236 -0
  10. package/dist/cjs/hash.cjs +1262 -0
  11. package/dist/cjs/heap.cjs +1540 -0
  12. package/dist/cjs/index.cjs +24509 -2899
  13. package/dist/cjs/linked-list.cjs +4370 -0
  14. package/dist/cjs/matrix.cjs +1042 -0
  15. package/dist/cjs/priority-queue.cjs +1314 -0
  16. package/dist/cjs/queue.cjs +4090 -0
  17. package/dist/cjs/stack.cjs +861 -0
  18. package/dist/cjs/trie.cjs +1173 -0
  19. package/dist/cjs-legacy/binary-tree.cjs +23730 -0
  20. package/dist/cjs-legacy/graph.cjs +5234 -0
  21. package/dist/cjs-legacy/hash.cjs +1262 -0
  22. package/dist/cjs-legacy/heap.cjs +1537 -0
  23. package/dist/cjs-legacy/index.cjs +32555 -10936
  24. package/dist/cjs-legacy/linked-list.cjs +4376 -0
  25. package/dist/cjs-legacy/matrix.cjs +1045 -0
  26. package/dist/cjs-legacy/priority-queue.cjs +1312 -0
  27. package/dist/cjs-legacy/queue.cjs +4088 -0
  28. package/dist/cjs-legacy/stack.cjs +861 -0
  29. package/dist/cjs-legacy/trie.cjs +1172 -0
  30. package/dist/esm/binary-tree.mjs +23683 -0
  31. package/dist/esm/graph.mjs +5223 -0
  32. package/dist/esm/hash.mjs +1259 -0
  33. package/dist/esm/heap.mjs +1534 -0
  34. package/dist/esm/index.mjs +24507 -2898
  35. package/dist/esm/linked-list.mjs +4363 -0
  36. package/dist/esm/matrix.mjs +1038 -0
  37. package/dist/esm/priority-queue.mjs +1310 -0
  38. package/dist/esm/queue.mjs +4086 -0
  39. package/dist/esm/stack.mjs +859 -0
  40. package/dist/esm/trie.mjs +1170 -0
  41. package/dist/esm-legacy/binary-tree.mjs +23715 -0
  42. package/dist/esm-legacy/graph.mjs +5221 -0
  43. package/dist/esm-legacy/hash.mjs +1259 -0
  44. package/dist/esm-legacy/heap.mjs +1531 -0
  45. package/dist/esm-legacy/index.mjs +32553 -10935
  46. package/dist/esm-legacy/linked-list.mjs +4369 -0
  47. package/dist/esm-legacy/matrix.mjs +1041 -0
  48. package/dist/esm-legacy/priority-queue.mjs +1308 -0
  49. package/dist/esm-legacy/queue.mjs +4084 -0
  50. package/dist/esm-legacy/stack.mjs +859 -0
  51. package/dist/esm-legacy/trie.mjs +1169 -0
  52. package/dist/types/data-structures/base/index.d.ts +1 -0
  53. package/dist/types/data-structures/base/iterable-element-base.d.ts +1 -1
  54. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  55. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  56. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +368 -51
  57. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +473 -147
  58. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +931 -80
  59. package/dist/types/data-structures/binary-tree/bst.d.ts +792 -29
  60. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +592 -32
  61. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +320 -135
  62. package/dist/types/data-structures/binary-tree/tree-map.d.ts +3662 -6
  63. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3487 -201
  64. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2778 -65
  65. package/dist/types/data-structures/binary-tree/tree-set.d.ts +3414 -6
  66. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  67. package/dist/types/data-structures/graph/directed-graph.d.ts +419 -47
  68. package/dist/types/data-structures/graph/map-graph.d.ts +59 -1
  69. package/dist/types/data-structures/graph/undirected-graph.d.ts +384 -59
  70. package/dist/types/data-structures/hash/hash-map.d.ts +462 -89
  71. package/dist/types/data-structures/heap/heap.d.ts +567 -99
  72. package/dist/types/data-structures/heap/max-heap.d.ts +46 -0
  73. package/dist/types/data-structures/heap/min-heap.d.ts +59 -0
  74. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +631 -49
  75. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +581 -68
  76. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +775 -12
  77. package/dist/types/data-structures/matrix/matrix.d.ts +491 -0
  78. package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +57 -0
  79. package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +60 -0
  80. package/dist/types/data-structures/priority-queue/priority-queue.d.ts +60 -0
  81. package/dist/types/data-structures/queue/deque.d.ts +578 -71
  82. package/dist/types/data-structures/queue/queue.d.ts +451 -42
  83. package/dist/types/data-structures/stack/stack.d.ts +374 -32
  84. package/dist/types/data-structures/trie/trie.d.ts +458 -48
  85. package/dist/types/interfaces/graph.d.ts +1 -1
  86. package/dist/types/types/common.d.ts +2 -2
  87. package/dist/types/types/data-structures/binary-tree/segment-tree.d.ts +1 -1
  88. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  89. package/dist/types/types/data-structures/linked-list/skip-linked-list.d.ts +1 -4
  90. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  91. package/dist/types/types/utils/validate-type.d.ts +4 -4
  92. package/dist/umd/data-structure-typed.js +32432 -10808
  93. package/dist/umd/data-structure-typed.min.js +10 -4
  94. package/docs-site-docusaurus/README.md +41 -0
  95. package/docs-site-docusaurus/docs/api/README.md +52 -0
  96. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +6130 -0
  97. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +282 -0
  98. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +2266 -0
  99. package/docs-site-docusaurus/docs/api/classes/BST.md +5831 -0
  100. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +333 -0
  101. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +455 -0
  102. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +4647 -0
  103. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +331 -0
  104. package/docs-site-docusaurus/docs/api/classes/Deque.md +2767 -0
  105. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +2999 -0
  106. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +2685 -0
  107. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +221 -0
  108. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +253 -0
  109. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +21 -0
  110. package/docs-site-docusaurus/docs/api/classes/HashMap.md +1333 -0
  111. package/docs-site-docusaurus/docs/api/classes/Heap.md +1881 -0
  112. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +800 -0
  113. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +644 -0
  114. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +1632 -0
  115. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +1853 -0
  116. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +1108 -0
  117. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +156 -0
  118. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +2824 -0
  119. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +2929 -0
  120. package/docs-site-docusaurus/docs/api/classes/Matrix.md +1026 -0
  121. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +1866 -0
  122. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +1883 -0
  123. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +1879 -0
  124. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +1882 -0
  125. package/docs-site-docusaurus/docs/api/classes/Navigator.md +109 -0
  126. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +1839 -0
  127. package/docs-site-docusaurus/docs/api/classes/Queue.md +2244 -0
  128. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +6374 -0
  129. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +372 -0
  130. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +2897 -0
  131. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +169 -0
  132. package/docs-site-docusaurus/docs/api/classes/SkipList.md +1229 -0
  133. package/docs-site-docusaurus/docs/api/classes/Stack.md +1573 -0
  134. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +1257 -0
  135. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +1475 -0
  136. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +1117 -0
  137. package/docs-site-docusaurus/docs/api/classes/Trie.md +1708 -0
  138. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +199 -0
  139. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +2979 -0
  140. package/docs-site-docusaurus/docs/guide/_category_.json +6 -0
  141. package/docs-site-docusaurus/docs/guide/architecture.md +613 -0
  142. package/docs-site-docusaurus/docs/guide/concepts.md +420 -0
  143. package/docs-site-docusaurus/docs/guide/guides.md +611 -0
  144. package/docs-site-docusaurus/docs/guide/installation.md +60 -0
  145. package/docs-site-docusaurus/docs/guide/integrations.md +823 -0
  146. package/docs-site-docusaurus/docs/guide/overview.md +638 -0
  147. package/docs-site-docusaurus/docs/guide/performance.md +833 -0
  148. package/docs-site-docusaurus/docs/guide/quick-start.md +73 -0
  149. package/docs-site-docusaurus/docusaurus.config.ts +159 -0
  150. package/docs-site-docusaurus/fix-mdx-generics.mjs +75 -0
  151. package/docs-site-docusaurus/package-lock.json +18667 -0
  152. package/docs-site-docusaurus/package.json +50 -0
  153. package/docs-site-docusaurus/prefix-class-to-methods.mjs +48 -0
  154. package/docs-site-docusaurus/sidebars.ts +23 -0
  155. package/docs-site-docusaurus/sort-protected.mjs +87 -0
  156. package/docs-site-docusaurus/src/css/custom.css +96 -0
  157. package/docs-site-docusaurus/src/pages/index.module.css +13 -0
  158. package/docs-site-docusaurus/src/pages/index.tsx +71 -0
  159. package/docs-site-docusaurus/src/pages/markdown-page.md +7 -0
  160. package/docs-site-docusaurus/src/theme/TOCItems/index.tsx +34 -0
  161. package/docs-site-docusaurus/static/.nojekyll +0 -0
  162. package/docs-site-docusaurus/static/img/docusaurus-social-card.jpg +0 -0
  163. package/docs-site-docusaurus/static/img/docusaurus.png +0 -0
  164. package/docs-site-docusaurus/static/img/favicon.ico +0 -0
  165. package/docs-site-docusaurus/static/img/favicon.png +0 -0
  166. package/docs-site-docusaurus/static/img/logo-180.png +0 -0
  167. package/docs-site-docusaurus/static/img/logo.jpg +0 -0
  168. package/docs-site-docusaurus/static/img/logo.png +0 -0
  169. package/docs-site-docusaurus/static/img/logo.svg +1 -0
  170. package/docs-site-docusaurus/static/img/og-image.png +0 -0
  171. package/docs-site-docusaurus/static/img/undraw_docusaurus_mountain.svg +171 -0
  172. package/docs-site-docusaurus/static/img/undraw_docusaurus_react.svg +170 -0
  173. package/docs-site-docusaurus/static/img/undraw_docusaurus_tree.svg +40 -0
  174. package/docs-site-docusaurus/static/robots.txt +4 -0
  175. package/docs-site-docusaurus/typedoc.json +23 -0
  176. package/package.json +109 -12
  177. package/src/data-structures/base/index.ts +1 -0
  178. package/src/data-structures/base/iterable-element-base.ts +4 -5
  179. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  180. package/src/data-structures/base/linear-base.ts +3 -3
  181. package/src/data-structures/binary-tree/avl-tree.ts +386 -51
  182. package/src/data-structures/binary-tree/binary-indexed-tree.ts +596 -247
  183. package/src/data-structures/binary-tree/binary-tree.ts +956 -81
  184. package/src/data-structures/binary-tree/bst.ts +840 -35
  185. package/src/data-structures/binary-tree/red-black-tree.ts +689 -97
  186. package/src/data-structures/binary-tree/segment-tree.ts +498 -249
  187. package/src/data-structures/binary-tree/tree-map.ts +3784 -7
  188. package/src/data-structures/binary-tree/tree-multi-map.ts +3614 -211
  189. package/src/data-structures/binary-tree/tree-multi-set.ts +2874 -65
  190. package/src/data-structures/binary-tree/tree-set.ts +3531 -10
  191. package/src/data-structures/graph/abstract-graph.ts +4 -4
  192. package/src/data-structures/graph/directed-graph.ts +429 -47
  193. package/src/data-structures/graph/map-graph.ts +59 -1
  194. package/src/data-structures/graph/undirected-graph.ts +393 -59
  195. package/src/data-structures/hash/hash-map.ts +476 -92
  196. package/src/data-structures/heap/heap.ts +581 -99
  197. package/src/data-structures/heap/max-heap.ts +46 -0
  198. package/src/data-structures/heap/min-heap.ts +59 -0
  199. package/src/data-structures/linked-list/doubly-linked-list.ts +646 -47
  200. package/src/data-structures/linked-list/singly-linked-list.ts +596 -68
  201. package/src/data-structures/linked-list/skip-linked-list.ts +1067 -90
  202. package/src/data-structures/matrix/matrix.ts +584 -12
  203. package/src/data-structures/priority-queue/max-priority-queue.ts +57 -0
  204. package/src/data-structures/priority-queue/min-priority-queue.ts +60 -0
  205. package/src/data-structures/priority-queue/priority-queue.ts +60 -0
  206. package/src/data-structures/queue/deque.ts +592 -70
  207. package/src/data-structures/queue/queue.ts +463 -42
  208. package/src/data-structures/stack/stack.ts +384 -32
  209. package/src/data-structures/trie/trie.ts +470 -48
  210. package/src/interfaces/graph.ts +1 -1
  211. package/src/types/common.ts +2 -2
  212. package/src/types/data-structures/binary-tree/segment-tree.ts +1 -1
  213. package/src/types/data-structures/heap/heap.ts +1 -0
  214. package/src/types/data-structures/linked-list/skip-linked-list.ts +2 -1
  215. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  216. package/src/types/utils/validate-type.ts +4 -4
  217. package/vercel.json +6 -0
  218. package/dist/leetcode/avl-tree-counter.mjs +0 -2957
  219. package/dist/leetcode/avl-tree-multi-map.mjs +0 -2889
  220. package/dist/leetcode/avl-tree.mjs +0 -2720
  221. package/dist/leetcode/binary-tree.mjs +0 -1594
  222. package/dist/leetcode/bst.mjs +0 -2398
  223. package/dist/leetcode/deque.mjs +0 -683
  224. package/dist/leetcode/directed-graph.mjs +0 -1733
  225. package/dist/leetcode/doubly-linked-list.mjs +0 -709
  226. package/dist/leetcode/hash-map.mjs +0 -493
  227. package/dist/leetcode/heap.mjs +0 -542
  228. package/dist/leetcode/max-heap.mjs +0 -375
  229. package/dist/leetcode/max-priority-queue.mjs +0 -383
  230. package/dist/leetcode/min-heap.mjs +0 -363
  231. package/dist/leetcode/min-priority-queue.mjs +0 -371
  232. package/dist/leetcode/priority-queue.mjs +0 -363
  233. package/dist/leetcode/queue.mjs +0 -943
  234. package/dist/leetcode/red-black-tree.mjs +0 -2765
  235. package/dist/leetcode/singly-linked-list.mjs +0 -754
  236. package/dist/leetcode/stack.mjs +0 -217
  237. package/dist/leetcode/tree-counter.mjs +0 -3039
  238. package/dist/leetcode/tree-multi-map.mjs +0 -2913
  239. package/dist/leetcode/trie.mjs +0 -413
  240. package/dist/leetcode/undirected-graph.mjs +0 -1650
@@ -0,0 +1,1229 @@
1
+ [**data-structure-typed**](../README.md)
2
+
3
+ ***
4
+
5
+ [data-structure-typed](../README.md) / SkipList
6
+
7
+ # Class: SkipList\<K, V, R\>
8
+
9
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:49](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L49)
10
+
11
+ SkipList — a probabilistic sorted key-value container.
12
+
13
+ API mirrors TreeMap: users can swap `TreeMap` ↔ `SkipList` with zero code changes.
14
+ Reference: Java ConcurrentSkipListMap (NavigableMap interface).
15
+
16
+ ## Example
17
+
18
+ ```ts
19
+ // Display skip list
20
+ const sl = new SkipList<number, string>([[1, 'a']]);
21
+ expect(() => sl.print()).not.toThrow();
22
+ ```
23
+
24
+ ## Extends
25
+
26
+ - [`IterableEntryBase`](IterableEntryBase.md)\<`K`, `V` \| `undefined`\>
27
+
28
+ ## Type Parameters
29
+
30
+ ### K
31
+
32
+ `K` = `any`
33
+
34
+ ### V
35
+
36
+ `V` = `any`
37
+
38
+ ### R
39
+
40
+ `R` = \[`K`, `V`\]
41
+
42
+ ## Accessors
43
+
44
+ ### size
45
+
46
+ #### Get Signature
47
+
48
+ ```ts
49
+ get size(): number;
50
+ ```
51
+
52
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:122](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L122)
53
+
54
+ Total number of entries.
55
+
56
+ ##### Remarks
57
+
58
+ Time O(1), Space O(1)
59
+
60
+ ##### Returns
61
+
62
+ `number`
63
+
64
+ Entry count.
65
+
66
+ #### Overrides
67
+
68
+ [`IterableEntryBase`](IterableEntryBase.md).[`size`](IterableEntryBase.md#size)
69
+
70
+ ## Methods
71
+
72
+ ### \[iterator\]()
73
+
74
+ ```ts
75
+ iterator: IterableIterator<[K, V | undefined]>;
76
+ ```
77
+
78
+ Defined in: [data-structures/base/iterable-entry-base.ts:22](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L22)
79
+
80
+ Default iterator yielding `[key, value]` entries.
81
+
82
+ #### Parameters
83
+
84
+ ##### args
85
+
86
+ ...`any`[]
87
+
88
+ #### Returns
89
+
90
+ `IterableIterator`\<\[`K`, `V` \| `undefined`\]\>
91
+
92
+ Iterator of `[K, V]`.
93
+
94
+ #### Remarks
95
+
96
+ Time O(n) to iterate, Space O(1)
97
+
98
+ #### Inherited from
99
+
100
+ [`IterableEntryBase`](IterableEntryBase.md).[`[iterator]`](IterableEntryBase.md#iterator)
101
+
102
+ ***
103
+
104
+ ### ceiling()
105
+
106
+ ```ts
107
+ ceiling(key): [K, V | undefined] | undefined;
108
+ ```
109
+
110
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:699](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L699)
111
+
112
+ Least entry ≥ key, or `undefined`.
113
+
114
+ *
115
+
116
+ #### Parameters
117
+
118
+ ##### key
119
+
120
+ `K`
121
+
122
+ #### Returns
123
+
124
+ \[`K`, `V` \| `undefined`\] \| `undefined`
125
+
126
+ #### Example
127
+
128
+ ```ts
129
+ // Least entry ≥ key
130
+ const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
131
+ console.log(sl.ceiling(15)); // [20, 'b'];
132
+ console.log(sl.ceiling(20)); // [20, 'b'];
133
+ ```
134
+
135
+ ***
136
+
137
+ ### clear()
138
+
139
+ ```ts
140
+ clear(): void;
141
+ ```
142
+
143
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:207](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L207)
144
+
145
+ Remove all entries
146
+
147
+ *
148
+
149
+ #### Returns
150
+
151
+ `void`
152
+
153
+ #### Example
154
+
155
+ ```ts
156
+ // Remove all entries
157
+ const sl = new SkipList<number, string>([[1, 'a'], [2, 'b']]);
158
+ sl.clear();
159
+ console.log(sl.isEmpty()); // true;
160
+ ```
161
+
162
+ #### Overrides
163
+
164
+ [`IterableEntryBase`](IterableEntryBase.md).[`clear`](IterableEntryBase.md#clear)
165
+
166
+ ***
167
+
168
+ ### clone()
169
+
170
+ ```ts
171
+ clone(): this;
172
+ ```
173
+
174
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:247](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L247)
175
+
176
+ Create independent copy
177
+
178
+ *
179
+
180
+ #### Returns
181
+
182
+ `this`
183
+
184
+ #### Example
185
+
186
+ ```ts
187
+ // Create independent copy
188
+ const sl = new SkipList<number, string>([[1, 'a'], [2, 'b']]);
189
+ const copy = sl.clone();
190
+ copy.delete(1);
191
+ console.log(sl.has(1)); // true;
192
+ ```
193
+
194
+ #### Overrides
195
+
196
+ [`IterableEntryBase`](IterableEntryBase.md).[`clone`](IterableEntryBase.md#clone)
197
+
198
+ ***
199
+
200
+ ### delete()
201
+
202
+ ```ts
203
+ delete(key): boolean;
204
+ ```
205
+
206
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:476](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L476)
207
+
208
+ Delete a key. Returns `true` if the key was found and removed.
209
+
210
+ *
211
+
212
+ #### Parameters
213
+
214
+ ##### key
215
+
216
+ `K`
217
+
218
+ #### Returns
219
+
220
+ `boolean`
221
+
222
+ #### Example
223
+
224
+ ```ts
225
+ // Fast lookup with deletion
226
+ const cache = new SkipList<string, number>();
227
+
228
+ cache.set('alpha', 1);
229
+ cache.set('beta', 2);
230
+ cache.set('gamma', 3);
231
+
232
+ console.log(cache.has('beta')); // true;
233
+ cache.delete('beta');
234
+ console.log(cache.has('beta')); // false;
235
+ console.log(cache.size); // 2;
236
+ ```
237
+
238
+ ***
239
+
240
+ ### entries()
241
+
242
+ ```ts
243
+ entries(): IterableIterator<[K, V | undefined]>;
244
+ ```
245
+
246
+ Defined in: [data-structures/base/iterable-entry-base.ts:31](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L31)
247
+
248
+ Iterate over `[key, value]` pairs (may yield `undefined` values).
249
+
250
+ #### Returns
251
+
252
+ `IterableIterator`\<\[`K`, `V` \| `undefined`\]\>
253
+
254
+ Iterator of `[K, V | undefined]`.
255
+
256
+ #### Remarks
257
+
258
+ Time O(n), Space O(1)
259
+
260
+ #### Inherited from
261
+
262
+ [`IterableEntryBase`](IterableEntryBase.md).[`entries`](IterableEntryBase.md#entries)
263
+
264
+ ***
265
+
266
+ ### every()
267
+
268
+ ```ts
269
+ every(predicate, thisArg?): boolean;
270
+ ```
271
+
272
+ Defined in: [data-structures/base/iterable-entry-base.ts:66](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L66)
273
+
274
+ Test whether all entries satisfy the predicate.
275
+
276
+ #### Parameters
277
+
278
+ ##### predicate
279
+
280
+ `EntryCallback`\<`K`, `V` \| `undefined`, `boolean`\>
281
+
282
+ `(key, value, index, self) => boolean`.
283
+
284
+ ##### thisArg?
285
+
286
+ `any`
287
+
288
+ Optional `this` for callback.
289
+
290
+ #### Returns
291
+
292
+ `boolean`
293
+
294
+ `true` if all pass; otherwise `false`.
295
+
296
+ #### Remarks
297
+
298
+ Time O(n), Space O(1)
299
+
300
+ #### Inherited from
301
+
302
+ [`IterableEntryBase`](IterableEntryBase.md).[`every`](IterableEntryBase.md#every)
303
+
304
+ ***
305
+
306
+ ### filter()
307
+
308
+ ```ts
309
+ filter(callbackfn, thisArg?): this;
310
+ ```
311
+
312
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:1003](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L1003)
313
+
314
+ Creates a new SkipList with entries that pass the predicate.
315
+
316
+ *
317
+
318
+ #### Parameters
319
+
320
+ ##### callbackfn
321
+
322
+ `EntryCallback`\<`K`, `V` \| `undefined`, `boolean`\>
323
+
324
+ ##### thisArg?
325
+
326
+ `unknown`
327
+
328
+ #### Returns
329
+
330
+ `this`
331
+
332
+ #### Example
333
+
334
+ ```ts
335
+ // Filter entries
336
+ const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
337
+ const result = sl.filter((v, k) => k > 1);
338
+ console.log(result.size); // 2;
339
+ ```
340
+
341
+ #### Overrides
342
+
343
+ [`IterableEntryBase`](IterableEntryBase.md).[`filter`](IterableEntryBase.md#filter)
344
+
345
+ ***
346
+
347
+ ### find()
348
+
349
+ ```ts
350
+ find(callbackfn, thisArg?): [K, V | undefined] | undefined;
351
+ ```
352
+
353
+ Defined in: [data-structures/base/iterable-entry-base.ts:114](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L114)
354
+
355
+ Find the first entry that matches a predicate.
356
+
357
+ #### Parameters
358
+
359
+ ##### callbackfn
360
+
361
+ `EntryCallback`\<`K`, `V` \| `undefined`, `boolean`\>
362
+
363
+ `(key, value, index, self) => boolean`.
364
+
365
+ ##### thisArg?
366
+
367
+ `any`
368
+
369
+ Optional `this` for callback.
370
+
371
+ #### Returns
372
+
373
+ \[`K`, `V` \| `undefined`\] \| `undefined`
374
+
375
+ Matching `[key, value]` or `undefined`.
376
+
377
+ #### Remarks
378
+
379
+ Time O(n), Space O(1)
380
+
381
+ #### Inherited from
382
+
383
+ [`IterableEntryBase`](IterableEntryBase.md).[`find`](IterableEntryBase.md#find)
384
+
385
+ ***
386
+
387
+ ### first()
388
+
389
+ ```ts
390
+ first(): [K, V | undefined] | undefined;
391
+ ```
392
+
393
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:533](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L533)
394
+
395
+ Returns the first (smallest key) entry, or `undefined` if empty.
396
+
397
+ *
398
+
399
+ #### Returns
400
+
401
+ \[`K`, `V` \| `undefined`\] \| `undefined`
402
+
403
+ #### Example
404
+
405
+ ```ts
406
+ // Access the minimum entry
407
+ const sl = new SkipList<number, string>([[5, 'e'], [1, 'a'], [3, 'c']]);
408
+ console.log(sl.first()); // [1, 'a'];
409
+ ```
410
+
411
+ ***
412
+
413
+ ### floor()
414
+
415
+ ```ts
416
+ floor(key): [K, V | undefined] | undefined;
417
+ ```
418
+
419
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:747](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L747)
420
+
421
+ Greatest entry ≤ key, or `undefined`.
422
+
423
+ *
424
+
425
+ #### Parameters
426
+
427
+ ##### key
428
+
429
+ `K`
430
+
431
+ #### Returns
432
+
433
+ \[`K`, `V` \| `undefined`\] \| `undefined`
434
+
435
+ #### Example
436
+
437
+ ```ts
438
+ // Greatest entry ≤ key
439
+ const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
440
+ console.log(sl.floor(25)); // [20, 'b'];
441
+ console.log(sl.floor(5)); // undefined;
442
+ ```
443
+
444
+ ***
445
+
446
+ ### forEach()
447
+
448
+ ```ts
449
+ forEach(callbackfn, thisArg?): void;
450
+ ```
451
+
452
+ Defined in: [data-structures/base/iterable-entry-base.ts:99](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L99)
453
+
454
+ Visit each entry, left-to-right.
455
+
456
+ #### Parameters
457
+
458
+ ##### callbackfn
459
+
460
+ `EntryCallback`\<`K`, `V` \| `undefined`, `void`\>
461
+
462
+ `(key, value, index, self) => void`.
463
+
464
+ ##### thisArg?
465
+
466
+ `any`
467
+
468
+ Optional `this` for callback.
469
+
470
+ #### Returns
471
+
472
+ `void`
473
+
474
+ #### Remarks
475
+
476
+ Time O(n), Space O(1)
477
+
478
+ #### Inherited from
479
+
480
+ [`IterableEntryBase`](IterableEntryBase.md).[`forEach`](IterableEntryBase.md#foreach)
481
+
482
+ ***
483
+
484
+ ### get()
485
+
486
+ ```ts
487
+ get(key): V | undefined;
488
+ ```
489
+
490
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:387](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L387)
491
+
492
+ Get the value for a key, or `undefined` if not found.
493
+ Overrides base O(n) with O(log n) skip-list search.
494
+
495
+ *
496
+
497
+ #### Parameters
498
+
499
+ ##### key
500
+
501
+ `K`
502
+
503
+ #### Returns
504
+
505
+ `V` \| `undefined`
506
+
507
+ #### Example
508
+
509
+ ```ts
510
+ // Building a sorted index
511
+ type Product = { id: number; name: string; price: number };
512
+ const products: Product[] = [
513
+ { id: 1, name: 'Widget', price: 25 },
514
+ { id: 2, name: 'Gadget', price: 50 },
515
+ { id: 3, name: 'Doohickey', price: 15 }
516
+ ];
517
+
518
+ const index = new SkipList<number, Product>(products as any, {
519
+ toEntryFn: (p: any) => [p.price, p]
520
+ });
521
+
522
+ // Iterate in sorted order by price
523
+ const names = [...index.values()].map(p => p!.name);
524
+ console.log(names); // ['Doohickey', 'Widget', 'Gadget'];
525
+
526
+ // Range search: products between $20 and $60
527
+ const range = index.rangeSearch([20, 60]);
528
+ console.log(range.map(([, p]) => p!.name)); // ['Widget', 'Gadget'];
529
+ ```
530
+
531
+ #### Overrides
532
+
533
+ [`IterableEntryBase`](IterableEntryBase.md).[`get`](IterableEntryBase.md#get)
534
+
535
+ ***
536
+
537
+ ### has()
538
+
539
+ ```ts
540
+ has(key): boolean;
541
+ ```
542
+
543
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:429](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L429)
544
+
545
+ Check if a key exists.
546
+ Overrides base O(n) with O(log n) skip-list search.
547
+
548
+ *
549
+
550
+ #### Parameters
551
+
552
+ ##### key
553
+
554
+ `K`
555
+
556
+ #### Returns
557
+
558
+ `boolean`
559
+
560
+ #### Example
561
+
562
+ ```ts
563
+ // Check key existence
564
+ const sl = new SkipList<number, string>([[1, 'a'], [3, 'c'], [5, 'e']]);
565
+ console.log(sl.has(3)); // true;
566
+ console.log(sl.has(4)); // false;
567
+ ```
568
+
569
+ #### Overrides
570
+
571
+ [`IterableEntryBase`](IterableEntryBase.md).[`has`](IterableEntryBase.md#has)
572
+
573
+ ***
574
+
575
+ ### hasValue()
576
+
577
+ ```ts
578
+ hasValue(value): boolean;
579
+ ```
580
+
581
+ Defined in: [data-structures/base/iterable-entry-base.ts:143](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L143)
582
+
583
+ Whether there exists an entry with the given value.
584
+
585
+ #### Parameters
586
+
587
+ ##### value
588
+
589
+ `V` \| `undefined`
590
+
591
+ Value to test.
592
+
593
+ #### Returns
594
+
595
+ `boolean`
596
+
597
+ `true` if found; otherwise `false`.
598
+
599
+ #### Remarks
600
+
601
+ Time O(n), Space O(1)
602
+
603
+ #### Inherited from
604
+
605
+ [`IterableEntryBase`](IterableEntryBase.md).[`hasValue`](IterableEntryBase.md#hasvalue)
606
+
607
+ ***
608
+
609
+ ### higher()
610
+
611
+ ```ts
612
+ higher(key): [K, V | undefined] | undefined;
613
+ ```
614
+
615
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:795](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L795)
616
+
617
+ Least entry strictly > key, or `undefined`.
618
+
619
+ *
620
+
621
+ #### Parameters
622
+
623
+ ##### key
624
+
625
+ `K`
626
+
627
+ #### Returns
628
+
629
+ \[`K`, `V` \| `undefined`\] \| `undefined`
630
+
631
+ #### Example
632
+
633
+ ```ts
634
+ // Strictly greater entry
635
+ const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
636
+ console.log(sl.higher(15)); // [20, 'b'];
637
+ console.log(sl.higher(30)); // undefined;
638
+ ```
639
+
640
+ ***
641
+
642
+ ### isEmpty()
643
+
644
+ ```ts
645
+ isEmpty(): boolean;
646
+ ```
647
+
648
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:170](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L170)
649
+
650
+ Check if empty
651
+
652
+ *
653
+
654
+ #### Returns
655
+
656
+ `boolean`
657
+
658
+ #### Example
659
+
660
+ ```ts
661
+ // Check if empty
662
+ const sl = new SkipList<number, string>();
663
+ console.log(sl.isEmpty()); // true;
664
+ ```
665
+
666
+ #### Overrides
667
+
668
+ [`IterableEntryBase`](IterableEntryBase.md).[`isEmpty`](IterableEntryBase.md#isempty)
669
+
670
+ ***
671
+
672
+ ### keys()
673
+
674
+ ```ts
675
+ keys(): IterableIterator<K>;
676
+ ```
677
+
678
+ Defined in: [data-structures/base/iterable-entry-base.ts:42](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L42)
679
+
680
+ Iterate over keys only.
681
+
682
+ #### Returns
683
+
684
+ `IterableIterator`\<`K`\>
685
+
686
+ Iterator of keys.
687
+
688
+ #### Remarks
689
+
690
+ Time O(n), Space O(1)
691
+
692
+ #### Inherited from
693
+
694
+ [`IterableEntryBase`](IterableEntryBase.md).[`keys`](IterableEntryBase.md#keys)
695
+
696
+ ***
697
+
698
+ ### last()
699
+
700
+ ```ts
701
+ last(): [K, V | undefined] | undefined;
702
+ ```
703
+
704
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:573](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L573)
705
+
706
+ Returns the last (largest key) entry, or `undefined` if empty.
707
+
708
+ *
709
+
710
+ #### Returns
711
+
712
+ \[`K`, `V` \| `undefined`\] \| `undefined`
713
+
714
+ #### Example
715
+
716
+ ```ts
717
+ // Access the maximum entry
718
+ const sl = new SkipList<number, string>([[5, 'e'], [1, 'a'], [3, 'c']]);
719
+ console.log(sl.last()); // [5, 'e'];
720
+ ```
721
+
722
+ ***
723
+
724
+ ### lower()
725
+
726
+ ```ts
727
+ lower(key): [K, V | undefined] | undefined;
728
+ ```
729
+
730
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:840](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L840)
731
+
732
+ Greatest entry strictly < key, or `undefined`.
733
+
734
+ *
735
+
736
+ #### Parameters
737
+
738
+ ##### key
739
+
740
+ `K`
741
+
742
+ #### Returns
743
+
744
+ \[`K`, `V` \| `undefined`\] \| `undefined`
745
+
746
+ #### Example
747
+
748
+ ```ts
749
+ // Strictly less entry
750
+ const sl = new SkipList<number, string>([[10, 'a'], [20, 'b'], [30, 'c']]);
751
+ console.log(sl.lower(25)); // [20, 'b'];
752
+ console.log(sl.lower(10)); // undefined;
753
+ ```
754
+
755
+ ***
756
+
757
+ ### map()
758
+
759
+ ```ts
760
+ map<MK, MV>(callback, options?): SkipList<MK, MV>;
761
+ ```
762
+
763
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:957](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L957)
764
+
765
+ Creates a new SkipList with entries transformed by callback.
766
+
767
+ *
768
+
769
+ #### Type Parameters
770
+
771
+ ##### MK
772
+
773
+ `MK`
774
+
775
+ ##### MV
776
+
777
+ `MV`
778
+
779
+ #### Parameters
780
+
781
+ ##### callback
782
+
783
+ `EntryCallback`\<`K`, `V` \| `undefined`, \[`MK`, `MV`\]\>
784
+
785
+ ##### options?
786
+
787
+ `SkipListOptions`\<`MK`, `MV`, \[`MK`, `MV`\]\>
788
+
789
+ #### Returns
790
+
791
+ `SkipList`\<`MK`, `MV`\>
792
+
793
+ #### Example
794
+
795
+ ```ts
796
+ // Transform entries
797
+ const sl = new SkipList<number, string>([[1, 'a'], [2, 'b']]);
798
+ const mapped = sl.map((v, k) => [k, v?.toUpperCase()] as [number, string]);
799
+ console.log([...mapped.values()]); // ['A', 'B'];
800
+ ```
801
+
802
+ #### Overrides
803
+
804
+ [`IterableEntryBase`](IterableEntryBase.md).[`map`](IterableEntryBase.md#map)
805
+
806
+ ***
807
+
808
+ ### pollFirst()
809
+
810
+ ```ts
811
+ pollFirst(): [K, V | undefined] | undefined;
812
+ ```
813
+
814
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:616](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L616)
815
+
816
+ Remove and return the first (smallest key) entry.
817
+
818
+ *
819
+
820
+ #### Returns
821
+
822
+ \[`K`, `V` \| `undefined`\] \| `undefined`
823
+
824
+ #### Example
825
+
826
+ ```ts
827
+ // Remove and return smallest
828
+ const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
829
+ console.log(sl.pollFirst()); // [1, 'a'];
830
+ console.log(sl.size); // 2;
831
+ ```
832
+
833
+ ***
834
+
835
+ ### pollLast()
836
+
837
+ ```ts
838
+ pollLast(): [K, V | undefined] | undefined;
839
+ ```
840
+
841
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:656](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L656)
842
+
843
+ Remove and return the last (largest key) entry.
844
+
845
+ *
846
+
847
+ #### Returns
848
+
849
+ \[`K`, `V` \| `undefined`\] \| `undefined`
850
+
851
+ #### Example
852
+
853
+ ```ts
854
+ // Remove and return largest
855
+ const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
856
+ console.log(sl.pollLast()); // [3, 'c'];
857
+ console.log(sl.size); // 2;
858
+ ```
859
+
860
+ ***
861
+
862
+ ### print()
863
+
864
+ ```ts
865
+ print(): void;
866
+ ```
867
+
868
+ Defined in: [data-structures/base/iterable-entry-base.ts:203](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L203)
869
+
870
+ Print a human-friendly representation to the console.
871
+
872
+ #### Returns
873
+
874
+ `void`
875
+
876
+ #### Remarks
877
+
878
+ Time O(n), Space O(n)
879
+
880
+ #### Inherited from
881
+
882
+ [`IterableEntryBase`](IterableEntryBase.md).[`print`](IterableEntryBase.md#print)
883
+
884
+ ***
885
+
886
+ ### rangeSearch()
887
+
888
+ ```ts
889
+ rangeSearch(range, options?): [K, V | undefined][];
890
+ ```
891
+
892
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:891](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L891)
893
+
894
+ Returns entries within the given key range.
895
+
896
+ *
897
+
898
+ #### Parameters
899
+
900
+ ##### range
901
+
902
+ \[`K`, `K`\]
903
+
904
+ ##### options?
905
+
906
+ `SkipListRangeOptions` = `{}`
907
+
908
+ #### Returns
909
+
910
+ \[`K`, `V` \| `undefined`\][]
911
+
912
+ #### Example
913
+
914
+ ```ts
915
+ // Find entries in a range
916
+ const sl = new SkipList<number, string>([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd'], [5, 'e']]);
917
+ const result = sl.rangeSearch([2, 4]);
918
+ console.log(result); // [[2, 'b'], [3, 'c'], [4, 'd']];
919
+ ```
920
+
921
+ ***
922
+
923
+ ### reduce()
924
+
925
+ ```ts
926
+ reduce<U>(callbackfn, initialValue): U;
927
+ ```
928
+
929
+ Defined in: [data-structures/base/iterable-entry-base.ts:171](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L171)
930
+
931
+ Reduce entries into a single accumulator.
932
+
933
+ #### Type Parameters
934
+
935
+ ##### U
936
+
937
+ `U`
938
+
939
+ #### Parameters
940
+
941
+ ##### callbackfn
942
+
943
+ `ReduceEntryCallback`\<`K`, `V` \| `undefined`, `U`\>
944
+
945
+ `(acc, value, key, index, self) => acc`.
946
+
947
+ ##### initialValue
948
+
949
+ `U`
950
+
951
+ Initial accumulator.
952
+
953
+ #### Returns
954
+
955
+ `U`
956
+
957
+ Final accumulator.
958
+
959
+ #### Remarks
960
+
961
+ Time O(n), Space O(1)
962
+
963
+ #### Inherited from
964
+
965
+ [`IterableEntryBase`](IterableEntryBase.md).[`reduce`](IterableEntryBase.md#reduce)
966
+
967
+ ***
968
+
969
+ ### set()
970
+
971
+ ```ts
972
+ set(key, value): this;
973
+ ```
974
+
975
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:305](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L305)
976
+
977
+ Insert or update a key-value pair. Returns `this` for chaining.
978
+ Unique keys only — if key exists, value is updated in place.
979
+
980
+ *
981
+
982
+ #### Parameters
983
+
984
+ ##### key
985
+
986
+ `K`
987
+
988
+ ##### value
989
+
990
+ `V`
991
+
992
+ #### Returns
993
+
994
+ `this`
995
+
996
+ #### Example
997
+
998
+ ```ts
999
+ // In-memory sorted key-value store
1000
+ const store = new SkipList<number, string>();
1001
+
1002
+ store.set(3, 'three');
1003
+ store.set(1, 'one');
1004
+ store.set(5, 'five');
1005
+ store.set(2, 'two');
1006
+
1007
+ console.log(store.get(3)); // 'three';
1008
+ console.log(store.get(1)); // 'one';
1009
+ console.log(store.get(5)); // 'five';
1010
+
1011
+ // Update existing key
1012
+ store.set(3, 'THREE');
1013
+ console.log(store.get(3)); // 'THREE';
1014
+ ```
1015
+
1016
+ ***
1017
+
1018
+ ### some()
1019
+
1020
+ ```ts
1021
+ some(predicate, thisArg?): boolean;
1022
+ ```
1023
+
1024
+ Defined in: [data-structures/base/iterable-entry-base.ts:83](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L83)
1025
+
1026
+ Test whether any entry satisfies the predicate.
1027
+
1028
+ #### Parameters
1029
+
1030
+ ##### predicate
1031
+
1032
+ `EntryCallback`\<`K`, `V` \| `undefined`, `boolean`\>
1033
+
1034
+ `(key, value, index, self) => boolean`.
1035
+
1036
+ ##### thisArg?
1037
+
1038
+ `any`
1039
+
1040
+ Optional `this` for callback.
1041
+
1042
+ #### Returns
1043
+
1044
+ `boolean`
1045
+
1046
+ `true` if any passes; otherwise `false`.
1047
+
1048
+ #### Remarks
1049
+
1050
+ Time O(n), Space O(1)
1051
+
1052
+ #### Inherited from
1053
+
1054
+ [`IterableEntryBase`](IterableEntryBase.md).[`some`](IterableEntryBase.md#some)
1055
+
1056
+ ***
1057
+
1058
+ ### toArray()
1059
+
1060
+ ```ts
1061
+ toArray(): [K, V | undefined][];
1062
+ ```
1063
+
1064
+ Defined in: [data-structures/base/iterable-entry-base.ts:186](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L186)
1065
+
1066
+ Converts data structure to `[key, value]` pairs.
1067
+
1068
+ #### Returns
1069
+
1070
+ \[`K`, `V` \| `undefined`\][]
1071
+
1072
+ Array of entries.
1073
+
1074
+ #### Remarks
1075
+
1076
+ Time O(n), Space O(n)
1077
+
1078
+ #### Inherited from
1079
+
1080
+ [`IterableEntryBase`](IterableEntryBase.md).[`toArray`](IterableEntryBase.md#toarray)
1081
+
1082
+ ***
1083
+
1084
+ ### toVisual()
1085
+
1086
+ ```ts
1087
+ toVisual(): string | [K, V | undefined][];
1088
+ ```
1089
+
1090
+ Defined in: [data-structures/base/iterable-entry-base.ts:195](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L195)
1091
+
1092
+ Visualize the iterable as an array of `[key, value]` pairs (or a custom string).
1093
+
1094
+ #### Returns
1095
+
1096
+ `string` \| \[`K`, `V` \| `undefined`\][]
1097
+
1098
+ Array of entries (default) or a string.
1099
+
1100
+ #### Remarks
1101
+
1102
+ Time O(n), Space O(n)
1103
+
1104
+ #### Inherited from
1105
+
1106
+ [`IterableEntryBase`](IterableEntryBase.md).[`toVisual`](IterableEntryBase.md#tovisual)
1107
+
1108
+ ***
1109
+
1110
+ ### values()
1111
+
1112
+ ```ts
1113
+ values(): IterableIterator<V | undefined>;
1114
+ ```
1115
+
1116
+ Defined in: [data-structures/base/iterable-entry-base.ts:53](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/base/iterable-entry-base.ts#L53)
1117
+
1118
+ Iterate over values only.
1119
+
1120
+ #### Returns
1121
+
1122
+ `IterableIterator`\<`V` \| `undefined`\>
1123
+
1124
+ Iterator of values.
1125
+
1126
+ #### Remarks
1127
+
1128
+ Time O(n), Space O(1)
1129
+
1130
+ #### Inherited from
1131
+
1132
+ [`IterableEntryBase`](IterableEntryBase.md).[`values`](IterableEntryBase.md#values)
1133
+
1134
+ ***
1135
+
1136
+ ### createDefaultComparator()
1137
+
1138
+ ```ts
1139
+ static createDefaultComparator<K>(): Comparator<K>;
1140
+ ```
1141
+
1142
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:86](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L86)
1143
+
1144
+ Creates a default comparator supporting number, string, Date, and bigint.
1145
+
1146
+ #### Type Parameters
1147
+
1148
+ ##### K
1149
+
1150
+ `K`
1151
+
1152
+ #### Returns
1153
+
1154
+ `Comparator`\<`K`\>
1155
+
1156
+
1157
+ ---
1158
+
1159
+ ## Protected Members
1160
+
1161
+ ### \_findNode()
1162
+
1163
+ ```ts
1164
+ protected _findNode(key): SkipListNode<K, V> | undefined;
1165
+ ```
1166
+
1167
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:1056](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L1056)
1168
+
1169
+ Finds the node for a given key, or undefined.
1170
+
1171
+ #### Parameters
1172
+
1173
+ ##### key
1174
+
1175
+ `K`
1176
+
1177
+ #### Returns
1178
+
1179
+ `SkipListNode`\<`K`, `V`\> \| `undefined`
1180
+
1181
+ ***
1182
+
1183
+ ### \_findUpdate()
1184
+
1185
+ ```ts
1186
+ protected _findUpdate(key): SkipListNode<K, V>[];
1187
+ ```
1188
+
1189
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:1038](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L1038)
1190
+
1191
+ Finds the update array (predecessors at each level) for a given key.
1192
+
1193
+ #### Parameters
1194
+
1195
+ ##### key
1196
+
1197
+ `K`
1198
+
1199
+ #### Returns
1200
+
1201
+ `SkipListNode`\<`K`, `V`\>[]
1202
+
1203
+ ***
1204
+
1205
+ ### \_getIterator()
1206
+
1207
+ ```ts
1208
+ protected _getIterator(): IterableIterator<[K, V | undefined]>;
1209
+ ```
1210
+
1211
+ Defined in: [data-structures/linked-list/skip-linked-list.ts:1022](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/linked-list/skip-linked-list.ts#L1022)
1212
+
1213
+ Underlying iterator for the default iteration protocol.
1214
+
1215
+ #### Returns
1216
+
1217
+ `IterableIterator`\<\[`K`, `V` \| `undefined`\]\>
1218
+
1219
+ Iterator of `[K, V]`.
1220
+
1221
+ #### Remarks
1222
+
1223
+ Time O(n), Space O(1)
1224
+
1225
+ #### Overrides
1226
+
1227
+ [`IterableEntryBase`](IterableEntryBase.md).[`_getIterator`](IterableEntryBase.md#_getiterator)
1228
+
1229
+ ***