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: TreeMap\<K, V, R\>
8
8
 
9
- Defined in: [data-structures/binary-tree/tree-map.ts:26](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L26)
9
+ Defined in: [data-structures/binary-tree/tree-map.ts:26](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L26)
10
10
 
11
11
  An ordered Map backed by a red-black tree.
12
12
 
@@ -48,7 +48,7 @@ An ordered Map backed by a red-black tree.
48
48
  new TreeMap<K, V, R>(entries?, options?): TreeMap<K, V, R>;
49
49
  ```
50
50
 
51
- Defined in: [data-structures/binary-tree/tree-map.ts:46](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L46)
51
+ Defined in: [data-structures/binary-tree/tree-map.ts:46](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L46)
52
52
 
53
53
  Create a TreeMap from an iterable of `[key, value]` entries or raw elements.
54
54
 
@@ -97,7 +97,7 @@ const map = new TreeMap<number, User, User>(users, { toEntryFn: u => [u.id, u] }
97
97
  get size(): number;
98
98
  ```
99
99
 
100
- Defined in: [data-structures/binary-tree/tree-map.ts:134](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L134)
100
+ Defined in: [data-structures/binary-tree/tree-map.ts:134](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L134)
101
101
 
102
102
  Number of entries in the map.
103
103
 
@@ -113,7 +113,7 @@ Number of entries in the map.
113
113
  ceiling(key): [K, V | undefined] | undefined;
114
114
  ```
115
115
 
116
- Defined in: [data-structures/binary-tree/tree-map.ts:3061](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L3061)
116
+ Defined in: [data-structures/binary-tree/tree-map.ts:3747](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3747)
117
117
 
118
118
  Smallest entry whose key is >= the given key.
119
119
 
@@ -172,7 +172,7 @@ Smallest entry whose key is >= the given key.
172
172
  clear(): void;
173
173
  ```
174
174
 
175
- Defined in: [data-structures/binary-tree/tree-map.ts:1028](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L1028)
175
+ Defined in: [data-structures/binary-tree/tree-map.ts:1238](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1238)
176
176
 
177
177
  Remove all entries.
178
178
 
@@ -199,7 +199,7 @@ Remove all entries.
199
199
  clone(): TreeMap<K, V>;
200
200
  ```
201
201
 
202
- Defined in: [data-structures/binary-tree/tree-map.ts:3751](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L3751)
202
+ Defined in: [data-structures/binary-tree/tree-map.ts:4652](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4652)
203
203
 
204
204
  Creates a shallow clone of this map.
205
205
 
@@ -231,7 +231,7 @@ Time O(n log n), Space O(n)
231
231
  delete(key): boolean;
232
232
  ```
233
233
 
234
- Defined in: [data-structures/binary-tree/tree-map.ts:891](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L891)
234
+ Defined in: [data-structures/binary-tree/tree-map.ts:1066](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1066)
235
235
 
236
236
  Delete a key.
237
237
 
@@ -277,7 +277,7 @@ Expected time O(log n)
277
277
  entries(): IterableIterator<[K, V | undefined]>;
278
278
  ```
279
279
 
280
- Defined in: [data-structures/binary-tree/tree-map.ts:1440](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L1440)
280
+ Defined in: [data-structures/binary-tree/tree-map.ts:1755](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1755)
281
281
 
282
282
  Iterate over `[key, value]` entries in ascending key order.
283
283
 
@@ -305,7 +305,7 @@ Note: values may be `undefined`.
305
305
  every(callbackfn, thisArg?): boolean;
306
306
  ```
307
307
 
308
- Defined in: [data-structures/binary-tree/tree-map.ts:2147](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L2147)
308
+ Defined in: [data-structures/binary-tree/tree-map.ts:2637](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2637)
309
309
 
310
310
  Test whether all entries satisfy a predicate.
311
311
 
@@ -345,7 +345,7 @@ Time O(n), Space O(1)
345
345
  filter(callbackfn, thisArg?): TreeMap<K, V>;
346
346
  ```
347
347
 
348
- Defined in: [data-structures/binary-tree/tree-map.ts:1868](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L1868)
348
+ Defined in: [data-structures/binary-tree/tree-map.ts:2288](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2288)
349
349
 
350
350
  Create a new TreeMap containing only entries that satisfy the predicate.
351
351
 
@@ -386,7 +386,7 @@ Time O(n log n) expected, Space O(n)
386
386
  find(callbackfn, thisArg?): [K, V | undefined] | undefined;
387
387
  ```
388
388
 
389
- Defined in: [data-structures/binary-tree/tree-map.ts:2428](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L2428)
389
+ Defined in: [data-structures/binary-tree/tree-map.ts:2988](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2988)
390
390
 
391
391
  Find the first entry that satisfies a predicate.
392
392
 
@@ -428,7 +428,7 @@ Time O(n), Space O(1)
428
428
  first(): [K, V | undefined] | undefined;
429
429
  ```
430
430
 
431
- Defined in: [data-structures/binary-tree/tree-map.ts:2770](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L2770)
431
+ Defined in: [data-structures/binary-tree/tree-map.ts:3407](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3407)
432
432
 
433
433
  Smallest entry by key.
434
434
 
@@ -476,7 +476,7 @@ Smallest entry by key.
476
476
  floor(key): [K, V | undefined] | undefined;
477
477
  ```
478
478
 
479
- Defined in: [data-structures/binary-tree/tree-map.ts:3191](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L3191)
479
+ Defined in: [data-structures/binary-tree/tree-map.ts:3905](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3905)
480
480
 
481
481
  Largest entry whose key is <= the given key.
482
482
 
@@ -519,7 +519,7 @@ Largest entry whose key is <= the given key.
519
519
  forEach(cb, thisArg?): void;
520
520
  ```
521
521
 
522
- Defined in: [data-structures/binary-tree/tree-map.ts:1582](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L1582)
522
+ Defined in: [data-structures/binary-tree/tree-map.ts:1932](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1932)
523
523
 
524
524
  Visit each entry in ascending key order.
525
525
 
@@ -535,7 +535,7 @@ Note: callback value may be `undefined`.
535
535
 
536
536
  ##### thisArg?
537
537
 
538
- `any`
538
+ `unknown`
539
539
 
540
540
  #### Returns
541
541
 
@@ -559,7 +559,7 @@ Note: callback value may be `undefined`.
559
559
  get(key): V | undefined;
560
560
  ```
561
561
 
562
- Defined in: [data-structures/binary-tree/tree-map.ts:582](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L582)
562
+ Defined in: [data-structures/binary-tree/tree-map.ts:687](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L687)
563
563
 
564
564
  Get the value under a key.
565
565
 
@@ -596,13 +596,95 @@ Expected time O(log n)
596
596
 
597
597
  ***
598
598
 
599
+ ### getByRank()
600
+
601
+ ```ts
602
+ getByRank(k): [K, V | undefined] | undefined;
603
+ ```
604
+
605
+ Defined in: [data-structures/binary-tree/tree-map.ts:4433](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4433)
606
+
607
+ Returns the entry at the k-th position in tree order (0-indexed).
608
+
609
+ #### Parameters
610
+
611
+ ##### k
612
+
613
+ `number`
614
+
615
+ #### Returns
616
+
617
+ \[`K`, `V` \| `undefined`\] \| `undefined`
618
+
619
+ #### Remarks
620
+
621
+ Time O(log n). Requires `enableOrderStatistic: true`.
622
+
623
+ *
624
+
625
+ #### Example
626
+
627
+ ```ts
628
+ // Find k-th entry in a TreeMap
629
+ const map = new TreeMap<string, number>(
630
+ [['alice', 95], ['bob', 87], ['charlie', 92]],
631
+ { enableOrderStatistic: true }
632
+ );
633
+ console.log(map.getByRank(0)); // 'alice';
634
+ console.log(map.getByRank(1)); // 'bob';
635
+ console.log(map.getByRank(2)); // 'charlie';
636
+ ```
637
+
638
+ ***
639
+
640
+ ### getRank()
641
+
642
+ ```ts
643
+ getRank(key): number;
644
+ ```
645
+
646
+ Defined in: [data-structures/binary-tree/tree-map.ts:4453](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4453)
647
+
648
+ Returns the 0-based rank of a key (number of elements that precede it in tree order).
649
+
650
+ #### Parameters
651
+
652
+ ##### key
653
+
654
+ `K`
655
+
656
+ #### Returns
657
+
658
+ `number`
659
+
660
+ #### Remarks
661
+
662
+ Time O(log n). Requires `enableOrderStatistic: true`.
663
+ *
664
+
665
+ #### Example
666
+
667
+ ```ts
668
+ // Get the rank of a key in sorted order
669
+ const tree = new TreeMap<number>(
670
+ [10, 20, 30, 40, 50],
671
+ { enableOrderStatistic: true }
672
+ );
673
+ console.log(tree.getRank(10)); // 0; // smallest → rank 0
674
+ console.log(tree.getRank(30)); // 2; // 2 elements before 30 in tree order
675
+ console.log(tree.getRank(50)); // 4; // largest → rank 4
676
+ console.log(tree.getRank(25)); // 2;
677
+ ```
678
+
679
+ ***
680
+
599
681
  ### has()
600
682
 
601
683
  ```ts
602
684
  has(key): boolean;
603
685
  ```
604
686
 
605
- Defined in: [data-structures/binary-tree/tree-map.ts:735](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L735)
687
+ Defined in: [data-structures/binary-tree/tree-map.ts:875](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L875)
606
688
 
607
689
  Test whether a key exists.
608
690
 
@@ -644,7 +726,7 @@ Expected time O(log n)
644
726
  higher(key): [K, V | undefined] | undefined;
645
727
  ```
646
728
 
647
- Defined in: [data-structures/binary-tree/tree-map.ts:3321](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L3321)
729
+ Defined in: [data-structures/binary-tree/tree-map.ts:4063](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4063)
648
730
 
649
731
  Smallest entry whose key is > the given key.
650
732
 
@@ -687,7 +769,7 @@ Smallest entry whose key is > the given key.
687
769
  isEmpty(): boolean;
688
770
  ```
689
771
 
690
- Defined in: [data-structures/binary-tree/tree-map.ts:267](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L267)
772
+ Defined in: [data-structures/binary-tree/tree-map.ts:302](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L302)
691
773
 
692
774
  Whether the map is empty.
693
775
 
@@ -712,7 +794,7 @@ Whether the map is empty.
712
794
  keys(): IterableIterator<K>;
713
795
  ```
714
796
 
715
- Defined in: [data-structures/binary-tree/tree-map.ts:1162](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L1162)
797
+ Defined in: [data-structures/binary-tree/tree-map.ts:1407](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1407)
716
798
 
717
799
  Iterate over keys in ascending order.
718
800
 
@@ -738,7 +820,7 @@ Iterate over keys in ascending order.
738
820
  last(): [K, V | undefined] | undefined;
739
821
  ```
740
822
 
741
- Defined in: [data-structures/binary-tree/tree-map.ts:2816](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L2816)
823
+ Defined in: [data-structures/binary-tree/tree-map.ts:3460](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3460)
742
824
 
743
825
  Largest entry by key.
744
826
 
@@ -770,7 +852,7 @@ Largest entry by key.
770
852
  lower(key): [K, V | undefined] | undefined;
771
853
  ```
772
854
 
773
- Defined in: [data-structures/binary-tree/tree-map.ts:3449](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L3449)
855
+ Defined in: [data-structures/binary-tree/tree-map.ts:4219](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4219)
774
856
 
775
857
  Largest entry whose key is < the given key.
776
858
 
@@ -814,7 +896,7 @@ map<MK, MV>(
814
896
  thisArg?): TreeMap<MK, MV>;
815
897
  ```
816
898
 
817
- Defined in: [data-structures/binary-tree/tree-map.ts:1720](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L1720)
899
+ Defined in: [data-structures/binary-tree/tree-map.ts:2105](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2105)
818
900
 
819
901
  Create a new TreeMap by mapping each entry to a new `[key, value]` entry.
820
902
 
@@ -871,7 +953,7 @@ Time O(n log n) expected, Space O(n)
871
953
  pollFirst(): [K, V | undefined] | undefined;
872
954
  ```
873
955
 
874
- Defined in: [data-structures/binary-tree/tree-map.ts:2864](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L2864)
956
+ Defined in: [data-structures/binary-tree/tree-map.ts:3515](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3515)
875
957
 
876
958
  Remove and return the smallest entry.
877
959
 
@@ -905,7 +987,7 @@ Remove and return the smallest entry.
905
987
  pollLast(): [K, V | undefined] | undefined;
906
988
  ```
907
989
 
908
- Defined in: [data-structures/binary-tree/tree-map.ts:2914](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L2914)
990
+ Defined in: [data-structures/binary-tree/tree-map.ts:3572](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3572)
909
991
 
910
992
  Remove and return the largest entry.
911
993
 
@@ -939,7 +1021,7 @@ Remove and return the largest entry.
939
1021
  print(): void;
940
1022
  ```
941
1023
 
942
- Defined in: [data-structures/binary-tree/tree-map.ts:2705](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L2705)
1024
+ Defined in: [data-structures/binary-tree/tree-map.ts:3335](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3335)
943
1025
 
944
1026
  Print a human-friendly representation.
945
1027
 
@@ -963,13 +1045,63 @@ Time O(n), Space O(n)
963
1045
 
964
1046
  ***
965
1047
 
1048
+ ### rangeByRank()
1049
+
1050
+ ```ts
1051
+ rangeByRank(start, end): [K, V | undefined][];
1052
+ ```
1053
+
1054
+ Defined in: [data-structures/binary-tree/tree-map.ts:4476](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4476)
1055
+
1056
+ Returns keys by rank range (0-indexed, inclusive on both ends).
1057
+
1058
+ #### Parameters
1059
+
1060
+ ##### start
1061
+
1062
+ `number`
1063
+
1064
+ ##### end
1065
+
1066
+ `number`
1067
+
1068
+ #### Returns
1069
+
1070
+ \[`K`, `V` \| `undefined`\][]
1071
+
1072
+ #### Remarks
1073
+
1074
+ Time O(log n + k). Requires `enableOrderStatistic: true`.
1075
+
1076
+ *
1077
+
1078
+ #### Example
1079
+
1080
+ ```ts
1081
+ // Pagination with rangeByRank
1082
+ const tree = new TreeMap<number>(
1083
+ [10, 20, 30, 40, 50, 60, 70, 80, 90],
1084
+ { enableOrderStatistic: true }
1085
+ );
1086
+ const pageSize = 3;
1087
+
1088
+ // Page 1
1089
+ console.log(tree.rangeByRank(0, pageSize - 1)); // [10, 20, 30];
1090
+ // Page 2
1091
+ console.log(tree.rangeByRank(pageSize, 2 * pageSize - 1)); // [40, 50, 60];
1092
+ // Page 3
1093
+ console.log(tree.rangeByRank(2 * pageSize, 3 * pageSize - 1)); // [70, 80, 90];
1094
+ ```
1095
+
1096
+ ***
1097
+
966
1098
  ### rangeSearch()
967
1099
 
968
1100
  ```ts
969
1101
  rangeSearch(range, options?): [K, V | undefined][];
970
1102
  ```
971
1103
 
972
- Defined in: [data-structures/binary-tree/tree-map.ts:3597](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L3597)
1104
+ Defined in: [data-structures/binary-tree/tree-map.ts:4395](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4395)
973
1105
 
974
1106
  Return all entries in a given key range.
975
1107
 
@@ -1035,7 +1167,7 @@ Inclusive/exclusive bounds (defaults to inclusive).
1035
1167
  reduce<A>(callbackfn, initialValue): A;
1036
1168
  ```
1037
1169
 
1038
- Defined in: [data-structures/binary-tree/tree-map.ts:2011](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L2011)
1170
+ Defined in: [data-structures/binary-tree/tree-map.ts:2466](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2466)
1039
1171
 
1040
1172
  Reduce entries into a single accumulator.
1041
1173
 
@@ -1081,7 +1213,7 @@ Time O(n), Space O(1)
1081
1213
  set(key, value): this;
1082
1214
  ```
1083
1215
 
1084
- Defined in: [data-structures/binary-tree/tree-map.ts:427](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L427)
1216
+ Defined in: [data-structures/binary-tree/tree-map.ts:497](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L497)
1085
1217
 
1086
1218
  Set or overwrite a value for a key.
1087
1219
 
@@ -1137,7 +1269,7 @@ Expected time O(log n)
1137
1269
  some(callbackfn, thisArg?): boolean;
1138
1270
  ```
1139
1271
 
1140
- Defined in: [data-structures/binary-tree/tree-map.ts:2287](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L2287)
1272
+ Defined in: [data-structures/binary-tree/tree-map.ts:2812](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2812)
1141
1273
 
1142
1274
  Test whether any entry satisfies a predicate.
1143
1275
 
@@ -1177,7 +1309,7 @@ Time O(n), Space O(1)
1177
1309
  toArray(): [K, V | undefined][];
1178
1310
  ```
1179
1311
 
1180
- Defined in: [data-structures/binary-tree/tree-map.ts:2570](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L2570)
1312
+ Defined in: [data-structures/binary-tree/tree-map.ts:3165](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3165)
1181
1313
 
1182
1314
  Materialize the map into an array of `[key, value]` tuples.
1183
1315
 
@@ -1207,7 +1339,7 @@ Time O(n), Space O(n)
1207
1339
  values(): IterableIterator<V | undefined>;
1208
1340
  ```
1209
1341
 
1210
- Defined in: [data-structures/binary-tree/tree-map.ts:1304](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L1304)
1342
+ Defined in: [data-structures/binary-tree/tree-map.ts:1584](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1584)
1211
1343
 
1212
1344
  Iterate over values in ascending key order.
1213
1345
 
@@ -1235,7 +1367,7 @@ Note: values may be `undefined` (TreeMap allows storing `undefined`, like native
1235
1367
  static createDefaultComparator<K>(): Comparator<K>;
1236
1368
  ```
1237
1369
 
1238
- Defined in: [data-structures/binary-tree/tree-map.ts:87](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-map.ts#L87)
1370
+ Defined in: [data-structures/binary-tree/tree-map.ts:87](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L87)
1239
1371
 
1240
1372
  Create the strict default comparator.
1241
1373