data-structure-typed 2.5.1 → 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 (172) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/README.md +75 -17
  3. package/dist/cjs/binary-tree.cjs +2723 -139
  4. package/dist/cjs/graph.cjs +192 -6
  5. package/dist/cjs/hash.cjs +63 -15
  6. package/dist/cjs/heap.cjs +93 -31
  7. package/dist/cjs/index.cjs +3514 -379
  8. package/dist/cjs/linked-list.cjs +237 -31
  9. package/dist/cjs/matrix.cjs +47 -9
  10. package/dist/cjs/priority-queue.cjs +92 -30
  11. package/dist/cjs/queue.cjs +176 -2
  12. package/dist/cjs/stack.cjs +48 -2
  13. package/dist/cjs/trie.cjs +78 -28
  14. package/dist/cjs-legacy/binary-tree.cjs +2725 -136
  15. package/dist/cjs-legacy/graph.cjs +192 -6
  16. package/dist/cjs-legacy/hash.cjs +63 -15
  17. package/dist/cjs-legacy/heap.cjs +93 -31
  18. package/dist/cjs-legacy/index.cjs +3389 -249
  19. package/dist/cjs-legacy/linked-list.cjs +237 -31
  20. package/dist/cjs-legacy/matrix.cjs +47 -9
  21. package/dist/cjs-legacy/priority-queue.cjs +92 -30
  22. package/dist/cjs-legacy/queue.cjs +176 -2
  23. package/dist/cjs-legacy/stack.cjs +48 -2
  24. package/dist/cjs-legacy/trie.cjs +78 -28
  25. package/dist/esm/binary-tree.mjs +2723 -139
  26. package/dist/esm/graph.mjs +192 -6
  27. package/dist/esm/hash.mjs +63 -15
  28. package/dist/esm/heap.mjs +93 -31
  29. package/dist/esm/index.mjs +3514 -380
  30. package/dist/esm/linked-list.mjs +237 -31
  31. package/dist/esm/matrix.mjs +47 -9
  32. package/dist/esm/priority-queue.mjs +92 -30
  33. package/dist/esm/queue.mjs +176 -2
  34. package/dist/esm/stack.mjs +48 -2
  35. package/dist/esm/trie.mjs +78 -28
  36. package/dist/esm-legacy/binary-tree.mjs +2725 -136
  37. package/dist/esm-legacy/graph.mjs +192 -6
  38. package/dist/esm-legacy/hash.mjs +63 -15
  39. package/dist/esm-legacy/heap.mjs +93 -31
  40. package/dist/esm-legacy/index.mjs +3389 -250
  41. package/dist/esm-legacy/linked-list.mjs +237 -31
  42. package/dist/esm-legacy/matrix.mjs +47 -9
  43. package/dist/esm-legacy/priority-queue.mjs +92 -30
  44. package/dist/esm-legacy/queue.mjs +176 -2
  45. package/dist/esm-legacy/stack.mjs +48 -2
  46. package/dist/esm-legacy/trie.mjs +78 -28
  47. package/dist/types/common/error.d.ts +9 -0
  48. package/dist/types/common/index.d.ts +1 -1
  49. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +48 -0
  50. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
  51. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +102 -2
  52. package/dist/types/data-structures/binary-tree/bst.d.ts +195 -0
  53. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +76 -0
  54. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
  55. package/dist/types/data-structures/binary-tree/tree-map.d.ts +528 -0
  56. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +531 -6
  57. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +435 -6
  58. package/dist/types/data-structures/binary-tree/tree-set.d.ts +505 -0
  59. package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
  60. package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
  61. package/dist/types/data-structures/hash/hash-map.d.ts +44 -0
  62. package/dist/types/data-structures/heap/heap.d.ts +56 -0
  63. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +68 -0
  64. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +60 -0
  65. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
  66. package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
  67. package/dist/types/data-structures/queue/deque.d.ts +60 -0
  68. package/dist/types/data-structures/queue/queue.d.ts +48 -0
  69. package/dist/types/data-structures/stack/stack.d.ts +40 -0
  70. package/dist/types/data-structures/trie/trie.d.ts +48 -0
  71. package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
  72. package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
  73. package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
  74. package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
  75. package/dist/umd/data-structure-typed.js +3404 -265
  76. package/dist/umd/data-structure-typed.min.js +5 -5
  77. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +650 -136
  78. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
  79. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +71 -71
  80. package/docs-site-docusaurus/docs/api/classes/BST.md +591 -129
  81. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
  82. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
  83. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +107 -107
  84. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
  85. package/docs-site-docusaurus/docs/api/classes/Deque.md +82 -82
  86. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +82 -82
  87. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +74 -74
  88. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
  89. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +9 -9
  90. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  91. package/docs-site-docusaurus/docs/api/classes/HashMap.md +47 -47
  92. package/docs-site-docusaurus/docs/api/classes/Heap.md +45 -45
  93. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
  94. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +33 -33
  95. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +50 -50
  96. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +55 -55
  97. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +49 -49
  98. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
  99. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +78 -78
  100. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +82 -82
  101. package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
  102. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +45 -45
  103. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +45 -45
  104. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +45 -45
  105. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +45 -45
  106. package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
  107. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +44 -44
  108. package/docs-site-docusaurus/docs/api/classes/Queue.md +60 -60
  109. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +660 -146
  110. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
  111. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +78 -78
  112. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
  113. package/docs-site-docusaurus/docs/api/classes/SkipList.md +44 -44
  114. package/docs-site-docusaurus/docs/api/classes/Stack.md +39 -39
  115. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +165 -33
  116. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +162 -46
  117. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +161 -32
  118. package/docs-site-docusaurus/docs/api/classes/Trie.md +47 -47
  119. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
  120. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +81 -81
  121. package/docs-site-docusaurus/docs/guide/architecture.md +2 -0
  122. package/docs-site-docusaurus/docs/guide/concepts.md +32 -1
  123. package/docs-site-docusaurus/docs/guide/faq.md +180 -0
  124. package/docs-site-docusaurus/docs/guide/guides.md +40 -54
  125. package/docs-site-docusaurus/docs/guide/installation.md +2 -0
  126. package/docs-site-docusaurus/docs/guide/integrations.md +2 -0
  127. package/docs-site-docusaurus/docs/guide/overview.md +7 -0
  128. package/docs-site-docusaurus/docs/guide/performance.md +2 -0
  129. package/docs-site-docusaurus/docs/guide/quick-start.md +31 -0
  130. package/docs-site-docusaurus/docs/guide/use-cases/_category_.json +6 -0
  131. package/docs-site-docusaurus/docs/guide/use-cases/array-sort-alternative.md +158 -0
  132. package/docs-site-docusaurus/docs/guide/use-cases/heap-vs-sorting.md +92 -0
  133. package/docs-site-docusaurus/docs/guide/use-cases/map-vs-treemap.md +151 -0
  134. package/docs-site-docusaurus/docs/guide/use-cases/priority-queue-typescript.md +113 -0
  135. package/docs-site-docusaurus/docs/guide/use-cases/treemap-javascript.md +151 -0
  136. package/docs-site-docusaurus/docusaurus.config.ts +1 -1
  137. package/docs-site-docusaurus/src/pages/index.tsx +51 -2
  138. package/docs-site-docusaurus/static/llms.txt +37 -0
  139. package/llms.txt +37 -0
  140. package/package.json +64 -56
  141. package/src/common/error.ts +19 -1
  142. package/src/common/index.ts +1 -1
  143. package/src/data-structures/base/iterable-element-base.ts +3 -2
  144. package/src/data-structures/binary-tree/avl-tree.ts +47 -0
  145. package/src/data-structures/binary-tree/binary-indexed-tree.ts +46 -4
  146. package/src/data-structures/binary-tree/binary-tree.ts +79 -4
  147. package/src/data-structures/binary-tree/bst.ts +441 -6
  148. package/src/data-structures/binary-tree/red-black-tree.ts +73 -0
  149. package/src/data-structures/binary-tree/segment-tree.ts +18 -0
  150. package/src/data-structures/binary-tree/tree-map.ts +434 -9
  151. package/src/data-structures/binary-tree/tree-multi-map.ts +426 -5
  152. package/src/data-structures/binary-tree/tree-multi-set.ts +350 -6
  153. package/src/data-structures/binary-tree/tree-set.ts +410 -8
  154. package/src/data-structures/graph/abstract-graph.ts +2 -2
  155. package/src/data-structures/graph/directed-graph.ts +30 -0
  156. package/src/data-structures/graph/undirected-graph.ts +27 -0
  157. package/src/data-structures/hash/hash-map.ts +35 -4
  158. package/src/data-structures/heap/heap.ts +46 -4
  159. package/src/data-structures/heap/max-heap.ts +2 -2
  160. package/src/data-structures/linked-list/doubly-linked-list.ts +51 -0
  161. package/src/data-structures/linked-list/singly-linked-list.ts +45 -0
  162. package/src/data-structures/linked-list/skip-linked-list.ts +59 -5
  163. package/src/data-structures/matrix/matrix.ts +33 -9
  164. package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
  165. package/src/data-structures/queue/deque.ts +45 -0
  166. package/src/data-structures/queue/queue.ts +36 -0
  167. package/src/data-structures/stack/stack.ts +30 -0
  168. package/src/data-structures/trie/trie.ts +38 -2
  169. package/src/types/data-structures/binary-tree/bst.ts +1 -0
  170. package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
  171. package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
  172. package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: TreeSet\<K, R\>
8
8
 
9
- Defined in: [data-structures/binary-tree/tree-set.ts:26](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L26)
9
+ Defined in: [data-structures/binary-tree/tree-set.ts:26](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L26)
10
10
 
11
11
  An ordered Set backed by a red-black tree.
12
12
 
@@ -44,7 +44,7 @@ An ordered Set backed by a red-black tree.
44
44
  new TreeSet<K, R>(elements?, options?): TreeSet<K, R>;
45
45
  ```
46
46
 
47
- Defined in: [data-structures/binary-tree/tree-set.ts:46](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L46)
47
+ Defined in: [data-structures/binary-tree/tree-set.ts:46](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L46)
48
48
 
49
49
  Create a TreeSet from an iterable of keys or raw elements.
50
50
 
@@ -92,7 +92,7 @@ const set = new TreeSet<number, User>(users, { toElementFn: u => u.id });
92
92
  get size(): number;
93
93
  ```
94
94
 
95
- Defined in: [data-structures/binary-tree/tree-set.ts:101](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L101)
95
+ Defined in: [data-structures/binary-tree/tree-set.ts:101](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L101)
96
96
 
97
97
  Number of elements in the set.
98
98
 
@@ -108,7 +108,7 @@ Number of elements in the set.
108
108
  add(key): this;
109
109
  ```
110
110
 
111
- Defined in: [data-structures/binary-tree/tree-set.ts:398](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L398)
111
+ Defined in: [data-structures/binary-tree/tree-set.ts:468](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L468)
112
112
 
113
113
  Add a key to the set (no-op if already present).
114
114
 
@@ -151,7 +151,7 @@ Expected time O(log n)
151
151
  ceiling(key): K | undefined;
152
152
  ```
153
153
 
154
- Defined in: [data-structures/binary-tree/tree-set.ts:2832](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L2832)
154
+ Defined in: [data-structures/binary-tree/tree-set.ts:3483](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3483)
155
155
 
156
156
  Smallest key that is >= the given key.
157
157
 
@@ -195,7 +195,7 @@ Smallest key that is >= the given key.
195
195
  clear(): void;
196
196
  ```
197
197
 
198
- Defined in: [data-structures/binary-tree/tree-set.ts:837](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L837)
198
+ Defined in: [data-structures/binary-tree/tree-set.ts:1012](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1012)
199
199
 
200
200
  Remove all keys.
201
201
 
@@ -222,7 +222,7 @@ Remove all keys.
222
222
  clone(): TreeSet<K>;
223
223
  ```
224
224
 
225
- Defined in: [data-structures/binary-tree/tree-set.ts:3483](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L3483)
225
+ Defined in: [data-structures/binary-tree/tree-set.ts:4341](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L4341)
226
226
 
227
227
  Creates a shallow clone of this set.
228
228
 
@@ -254,7 +254,7 @@ Time O(n log n), Space O(n)
254
254
  delete(key): boolean;
255
255
  ```
256
256
 
257
- Defined in: [data-structures/binary-tree/tree-set.ts:700](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L700)
257
+ Defined in: [data-structures/binary-tree/tree-set.ts:840](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L840)
258
258
 
259
259
  Delete a key.
260
260
 
@@ -295,7 +295,7 @@ Expected time O(log n)
295
295
  entries(): IterableIterator<[K, K]>;
296
296
  ```
297
297
 
298
- Defined in: [data-structures/binary-tree/tree-set.ts:1243](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L1243)
298
+ Defined in: [data-structures/binary-tree/tree-set.ts:1523](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1523)
299
299
 
300
300
  Iterate over `[value, value]` pairs (native Set convention).
301
301
 
@@ -323,7 +323,7 @@ Note: TreeSet stores only keys internally; `[k, k]` is created on-the-fly during
323
323
  every(callbackfn, thisArg?): boolean;
324
324
  ```
325
325
 
326
- Defined in: [data-structures/binary-tree/tree-set.ts:1951](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L1951)
326
+ Defined in: [data-structures/binary-tree/tree-set.ts:2406](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2406)
327
327
 
328
328
  Test whether all values satisfy a predicate.
329
329
 
@@ -363,7 +363,7 @@ Time O(n), Space O(1)
363
363
  filter(callbackfn, thisArg?): TreeSet<K>;
364
364
  ```
365
365
 
366
- Defined in: [data-structures/binary-tree/tree-set.ts:1671](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L1671)
366
+ Defined in: [data-structures/binary-tree/tree-set.ts:2056](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2056)
367
367
 
368
368
  Create a new TreeSet containing only values that satisfy the predicate.
369
369
 
@@ -404,7 +404,7 @@ Time O(n log n) expected, Space O(n)
404
404
  find(callbackfn, thisArg?): K | undefined;
405
405
  ```
406
406
 
407
- Defined in: [data-structures/binary-tree/tree-set.ts:2232](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L2232)
407
+ Defined in: [data-structures/binary-tree/tree-set.ts:2757](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2757)
408
408
 
409
409
  Find the first value that satisfies a predicate.
410
410
 
@@ -445,7 +445,7 @@ Time O(n), Space O(1)
445
445
  first(): K | undefined;
446
446
  ```
447
447
 
448
- Defined in: [data-structures/binary-tree/tree-set.ts:2574](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L2574)
448
+ Defined in: [data-structures/binary-tree/tree-set.ts:3176](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3176)
449
449
 
450
450
  Smallest key in the set.
451
451
 
@@ -494,7 +494,7 @@ Smallest key in the set.
494
494
  floor(key): K | undefined;
495
495
  ```
496
496
 
497
- Defined in: [data-structures/binary-tree/tree-set.ts:2954](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L2954)
497
+ Defined in: [data-structures/binary-tree/tree-set.ts:3633](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3633)
498
498
 
499
499
  Largest key that is <= the given key.
500
500
 
@@ -530,7 +530,7 @@ Largest key that is <= the given key.
530
530
  forEach(cb, thisArg?): void;
531
531
  ```
532
532
 
533
- Defined in: [data-structures/binary-tree/tree-set.ts:1385](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L1385)
533
+ Defined in: [data-structures/binary-tree/tree-set.ts:1700](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1700)
534
534
 
535
535
  Visit each value in ascending order.
536
536
 
@@ -546,7 +546,7 @@ Callback follows native Set convention: `(value, value2, set)`.
546
546
 
547
547
  ##### thisArg?
548
548
 
549
- `any`
549
+ `unknown`
550
550
 
551
551
  #### Returns
552
552
 
@@ -564,13 +564,92 @@ Callback follows native Set convention: `(value, value2, set)`.
564
564
 
565
565
  ***
566
566
 
567
+ ### getByRank()
568
+
569
+ ```ts
570
+ getByRank(k): K | undefined;
571
+ ```
572
+
573
+ Defined in: [data-structures/binary-tree/tree-set.ts:4127](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L4127)
574
+
575
+ Returns the element at the k-th position in tree order (0-indexed).
576
+
577
+ #### Parameters
578
+
579
+ ##### k
580
+
581
+ `number`
582
+
583
+ #### Returns
584
+
585
+ `K` \| `undefined`
586
+
587
+ #### Remarks
588
+
589
+ Time O(log n). Requires `enableOrderStatistic: true`.
590
+
591
+ *
592
+
593
+ #### Example
594
+
595
+ ```ts
596
+ // Find k-th element in a TreeSet
597
+ const set = new TreeSet<number>([30, 10, 50, 20, 40], { enableOrderStatistic: true });
598
+ console.log(set.getByRank(0)); // 10;
599
+ console.log(set.getByRank(2)); // 30;
600
+ console.log(set.getRank(30)); // 2;
601
+ ```
602
+
603
+ ***
604
+
605
+ ### getRank()
606
+
607
+ ```ts
608
+ getRank(key): number;
609
+ ```
610
+
611
+ Defined in: [data-structures/binary-tree/tree-set.ts:4145](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L4145)
612
+
613
+ Returns the 0-based rank of a key (number of elements that precede it in tree order).
614
+
615
+ #### Parameters
616
+
617
+ ##### key
618
+
619
+ `K`
620
+
621
+ #### Returns
622
+
623
+ `number`
624
+
625
+ #### Remarks
626
+
627
+ Time O(log n). Requires `enableOrderStatistic: true`.
628
+ *
629
+
630
+ #### Example
631
+
632
+ ```ts
633
+ // Get the rank of a key in sorted order
634
+ const tree = new TreeSet<number>(
635
+ [10, 20, 30, 40, 50],
636
+ { enableOrderStatistic: true }
637
+ );
638
+ console.log(tree.getRank(10)); // 0; // smallest → rank 0
639
+ console.log(tree.getRank(30)); // 2; // 2 elements before 30 in tree order
640
+ console.log(tree.getRank(50)); // 4; // largest → rank 4
641
+ console.log(tree.getRank(25)); // 2;
642
+ ```
643
+
644
+ ***
645
+
567
646
  ### has()
568
647
 
569
648
  ```ts
570
649
  has(key): boolean;
571
650
  ```
572
651
 
573
- Defined in: [data-structures/binary-tree/tree-set.ts:549](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L549)
652
+ Defined in: [data-structures/binary-tree/tree-set.ts:654](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L654)
574
653
 
575
654
  Test whether a key exists.
576
655
 
@@ -608,7 +687,7 @@ Expected time O(log n)
608
687
  higher(key): K | undefined;
609
688
  ```
610
689
 
611
- Defined in: [data-structures/binary-tree/tree-set.ts:3074](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L3074)
690
+ Defined in: [data-structures/binary-tree/tree-set.ts:3781](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3781)
612
691
 
613
692
  Smallest key that is > the given key.
614
693
 
@@ -642,7 +721,7 @@ Smallest key that is > the given key.
642
721
  isEmpty(): boolean;
643
722
  ```
644
723
 
645
- Defined in: [data-structures/binary-tree/tree-set.ts:234](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L234)
724
+ Defined in: [data-structures/binary-tree/tree-set.ts:269](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L269)
646
725
 
647
726
  Whether the set is empty.
648
727
 
@@ -667,7 +746,7 @@ Whether the set is empty.
667
746
  keys(): IterableIterator<K>;
668
747
  ```
669
748
 
670
- Defined in: [data-structures/binary-tree/tree-set.ts:971](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L971)
749
+ Defined in: [data-structures/binary-tree/tree-set.ts:1181](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1181)
671
750
 
672
751
  Iterate over keys in ascending order.
673
752
 
@@ -693,7 +772,7 @@ Iterate over keys in ascending order.
693
772
  last(): K | undefined;
694
773
  ```
695
774
 
696
- Defined in: [data-structures/binary-tree/tree-set.ts:2614](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L2614)
775
+ Defined in: [data-structures/binary-tree/tree-set.ts:3223](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3223)
697
776
 
698
777
  Largest key in the set.
699
778
 
@@ -720,7 +799,7 @@ Largest key in the set.
720
799
  lower(key): K | undefined;
721
800
  ```
722
801
 
723
- Defined in: [data-structures/binary-tree/tree-set.ts:3194](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L3194)
802
+ Defined in: [data-structures/binary-tree/tree-set.ts:3929](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3929)
724
803
 
725
804
  Largest key that is < the given key.
726
805
 
@@ -757,7 +836,7 @@ map<MK>(
757
836
  thisArg?): TreeSet<MK>;
758
837
  ```
759
838
 
760
- Defined in: [data-structures/binary-tree/tree-set.ts:1523](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L1523)
839
+ Defined in: [data-structures/binary-tree/tree-set.ts:1873](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1873)
761
840
 
762
841
  Create a new TreeSet by mapping each value to a new key.
763
842
 
@@ -810,7 +889,7 @@ Time O(n log n) expected, Space O(n)
810
889
  pollFirst(): K | undefined;
811
890
  ```
812
891
 
813
- Defined in: [data-structures/binary-tree/tree-set.ts:2656](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L2656)
892
+ Defined in: [data-structures/binary-tree/tree-set.ts:3272](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3272)
814
893
 
815
894
  Remove and return the smallest key.
816
895
 
@@ -839,7 +918,7 @@ Remove and return the smallest key.
839
918
  pollLast(): K | undefined;
840
919
  ```
841
920
 
842
- Defined in: [data-structures/binary-tree/tree-set.ts:2700](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L2700)
921
+ Defined in: [data-structures/binary-tree/tree-set.ts:3323](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3323)
843
922
 
844
923
  Remove and return the largest key.
845
924
 
@@ -867,7 +946,7 @@ Remove and return the largest key.
867
946
  print(): void;
868
947
  ```
869
948
 
870
- Defined in: [data-structures/binary-tree/tree-set.ts:2509](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L2509)
949
+ Defined in: [data-structures/binary-tree/tree-set.ts:3104](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3104)
871
950
 
872
951
  Print a human-friendly representation.
873
952
 
@@ -891,13 +970,63 @@ Time O(n), Space O(n)
891
970
 
892
971
  ***
893
972
 
973
+ ### rangeByRank()
974
+
975
+ ```ts
976
+ rangeByRank(start, end): K[];
977
+ ```
978
+
979
+ Defined in: [data-structures/binary-tree/tree-set.ts:4168](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L4168)
980
+
981
+ Returns elements by rank range (0-indexed, inclusive on both ends).
982
+
983
+ #### Parameters
984
+
985
+ ##### start
986
+
987
+ `number`
988
+
989
+ ##### end
990
+
991
+ `number`
992
+
993
+ #### Returns
994
+
995
+ `K`[]
996
+
997
+ #### Remarks
998
+
999
+ Time O(log n + k). Requires `enableOrderStatistic: true`.
1000
+
1001
+ *
1002
+
1003
+ #### Example
1004
+
1005
+ ```ts
1006
+ // Pagination with rangeByRank
1007
+ const tree = new TreeSet<number>(
1008
+ [10, 20, 30, 40, 50, 60, 70, 80, 90],
1009
+ { enableOrderStatistic: true }
1010
+ );
1011
+ const pageSize = 3;
1012
+
1013
+ // Page 1
1014
+ console.log(tree.rangeByRank(0, pageSize - 1)); // [10, 20, 30];
1015
+ // Page 2
1016
+ console.log(tree.rangeByRank(pageSize, 2 * pageSize - 1)); // [40, 50, 60];
1017
+ // Page 3
1018
+ console.log(tree.rangeByRank(2 * pageSize, 3 * pageSize - 1)); // [70, 80, 90];
1019
+ ```
1020
+
1021
+ ***
1022
+
894
1023
  ### rangeSearch()
895
1024
 
896
1025
  ```ts
897
1026
  rangeSearch(range, options?): K[];
898
1027
  ```
899
1028
 
900
- Defined in: [data-structures/binary-tree/tree-set.ts:3328](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L3328)
1029
+ Defined in: [data-structures/binary-tree/tree-set.ts:4091](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L4091)
901
1030
 
902
1031
  Return all keys in a given range.
903
1032
 
@@ -950,7 +1079,7 @@ Inclusive/exclusive bounds (defaults to inclusive).
950
1079
  reduce<A>(callbackfn, initialValue): A;
951
1080
  ```
952
1081
 
953
- Defined in: [data-structures/binary-tree/tree-set.ts:1815](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L1815)
1082
+ Defined in: [data-structures/binary-tree/tree-set.ts:2235](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2235)
954
1083
 
955
1084
  Reduce values into a single accumulator.
956
1085
 
@@ -997,7 +1126,7 @@ Time O(n), Space O(1)
997
1126
  some(callbackfn, thisArg?): boolean;
998
1127
  ```
999
1128
 
1000
- Defined in: [data-structures/binary-tree/tree-set.ts:2091](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L2091)
1129
+ Defined in: [data-structures/binary-tree/tree-set.ts:2581](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2581)
1001
1130
 
1002
1131
  Test whether any value satisfies a predicate.
1003
1132
 
@@ -1037,7 +1166,7 @@ Time O(n), Space O(1)
1037
1166
  toArray(): K[];
1038
1167
  ```
1039
1168
 
1040
- Defined in: [data-structures/binary-tree/tree-set.ts:2374](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L2374)
1169
+ Defined in: [data-structures/binary-tree/tree-set.ts:2934](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2934)
1041
1170
 
1042
1171
  Materialize the set into an array of keys.
1043
1172
 
@@ -1067,7 +1196,7 @@ Time O(n), Space O(n)
1067
1196
  values(): IterableIterator<K>;
1068
1197
  ```
1069
1198
 
1070
- Defined in: [data-structures/binary-tree/tree-set.ts:1107](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L1107)
1199
+ Defined in: [data-structures/binary-tree/tree-set.ts:1352](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1352)
1071
1200
 
1072
1201
  Iterate over values in ascending order.
1073
1202
 
@@ -1095,7 +1224,7 @@ Note: for Set-like containers, `values()` is the same as `keys()`.
1095
1224
  static createDefaultComparator<K>(): Comparator<K>;
1096
1225
  ```
1097
1226
 
1098
- Defined in: [data-structures/binary-tree/tree-set.ts:71](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-set.ts#L71)
1227
+ Defined in: [data-structures/binary-tree/tree-set.ts:71](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L71)
1099
1228
 
1100
1229
  Create the strict default comparator.
1101
1230