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: TreeMultiMap\<K, V, R\>
8
8
 
9
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:28](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L28)
9
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:28](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L28)
10
10
 
11
11
  TreeMultiMap (ordered MultiMap) — key → bucket (Array of values).
12
12
 
@@ -51,7 +51,7 @@ Semantics (RFC):
51
51
  new TreeMultiMap<K, V, R>(keysNodesEntriesOrRaws?, options?): TreeMultiMap<K, V, R>;
52
52
  ```
53
53
 
54
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:45](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L45)
54
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:45](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L45)
55
55
 
56
56
  Creates a new TreeMultiMap.
57
57
 
@@ -103,7 +103,7 @@ const mmap = new TreeMultiMap(players, { toEntryFn: p => [p.score, p.items] });
103
103
  get comparator(): Comparator<K>;
104
104
  ```
105
105
 
106
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3632](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L3632)
106
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4533](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L4533)
107
107
 
108
108
  Expose comparator for advanced usage/testing (read-only).
109
109
 
@@ -125,7 +125,7 @@ Time O(1), Space O(1)
125
125
  get size(): number;
126
126
  ```
127
127
 
128
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:109](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L109)
128
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:109](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L109)
129
129
 
130
130
  Number of distinct keys.
131
131
 
@@ -147,7 +147,7 @@ Time O(1), Space O(1)
147
147
  get totalSize(): number;
148
148
  ```
149
149
 
150
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:448](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L448)
150
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:532](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L532)
151
151
 
152
152
  Total number of values across all buckets (Σ bucket.length).
153
153
 
@@ -180,7 +180,7 @@ Time O(n), Space O(1)
180
180
  iterator: Iterator<[K, V[]]>;
181
181
  ```
182
182
 
183
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1413](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1413)
183
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1721](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L1721)
184
184
 
185
185
  Iterates over all entries as [key, bucket] pairs.
186
186
 
@@ -206,7 +206,7 @@ Iterable.[iterator]
206
206
  add(key, value): boolean;
207
207
  ```
208
208
 
209
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:920](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L920)
209
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1123](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L1123)
210
210
 
211
211
  Append a single value.
212
212
 
@@ -249,7 +249,7 @@ Time O(log n), Space O(1)
249
249
  ceiling(key): [K, V[]] | undefined;
250
250
  ```
251
251
 
252
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2148](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L2148)
252
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2624](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2624)
253
253
 
254
254
  Returns the entry with the smallest key >= given key.
255
255
 
@@ -288,7 +288,7 @@ Time O(log n), Space O(1)
288
288
  clear(): void;
289
289
  ```
290
290
 
291
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:380](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L380)
291
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:450](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L450)
292
292
 
293
293
  Removes all entries from the map.
294
294
 
@@ -320,20 +320,16 @@ Time O(1), Space O(1)
320
320
  clone(): TreeMultiMap<K, V, R>;
321
321
  ```
322
322
 
323
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3624](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L3624)
323
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4525](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L4525)
324
324
 
325
- Creates a shallow clone of this map.
325
+ Deep copy
326
+
327
+ *
326
328
 
327
329
  #### Returns
328
330
 
329
331
  `TreeMultiMap`\<`K`, `V`, `R`\>
330
332
 
331
- #### Remarks
332
-
333
- Time O(n log n), Space O(n)
334
-
335
- *
336
-
337
333
  #### Example
338
334
 
339
335
  ```ts
@@ -353,7 +349,7 @@ Time O(n log n), Space O(n)
353
349
  count(key): number;
354
350
  ```
355
351
 
356
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:413](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L413)
352
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:490](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L490)
357
353
 
358
354
  Bucket length for a key (missing => 0).
359
355
 
@@ -391,7 +387,7 @@ Time O(log n), Space O(1)
391
387
  delete(key): boolean;
392
388
  ```
393
389
 
394
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1282](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1282)
390
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1569](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L1569)
395
391
 
396
392
  Deletes a key and its entire bucket.
397
393
 
@@ -433,7 +429,7 @@ deleteValue(
433
429
  eq?): boolean;
434
430
  ```
435
431
 
436
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1352](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1352)
432
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1653](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L1653)
437
433
 
438
434
  Delete a single occurrence of a value from a key's bucket.
439
435
 
@@ -483,7 +479,7 @@ deleteValues(
483
479
  eq?): number;
484
480
  ```
485
481
 
486
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1393](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1393)
482
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1701](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L1701)
487
483
 
488
484
  Delete all occurrences of a value from a key's bucket.
489
485
 
@@ -531,7 +527,7 @@ Time O(log n + m), Space O(1) where m is bucket size
531
527
  entriesOf(key): IterableIterator<[K, V]>;
532
528
  ```
533
529
 
534
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1725](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1725)
530
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2110](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2110)
535
531
 
536
532
  Iterates over all entries for a specific key.
537
533
 
@@ -569,7 +565,7 @@ Time O(log n + m), Space O(1) where m is bucket size
569
565
  filter(predicate): TreeMultiMap<K, V, R>;
570
566
  ```
571
567
 
572
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2947](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L2947)
568
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3619](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L3619)
573
569
 
574
570
  Creates a new map with entries that pass the predicate.
575
571
 
@@ -609,7 +605,7 @@ Time O(n), Space O(n)
609
605
  first(): [K, V[]] | undefined;
610
606
  ```
611
607
 
612
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1862](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1862)
608
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2275](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2275)
613
609
 
614
610
  Returns the entry with the smallest key.
615
611
 
@@ -641,7 +637,7 @@ Time O(log n), Space O(1)
641
637
  flatEntries(): IterableIterator<[K, V]>;
642
638
  ```
643
639
 
644
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1796](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1796)
640
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2195](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2195)
645
641
 
646
642
  Iterates over all [key, value] pairs (flattened from buckets).
647
643
 
@@ -674,7 +670,7 @@ Time O(T), Space O(1) where T is totalSize
674
670
  floor(key): [K, V[]] | undefined;
675
671
  ```
676
672
 
677
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2293](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L2293)
673
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2804](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2804)
678
674
 
679
675
  Returns the entry with the largest key <= given key.
680
676
 
@@ -713,7 +709,7 @@ Time O(log n), Space O(1)
713
709
  forEach(callback): void;
714
710
  ```
715
711
 
716
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2806](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L2806)
712
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3443](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L3443)
717
713
 
718
714
  Executes a callback for each entry.
719
715
 
@@ -753,7 +749,7 @@ Time O(n), Space O(1)
753
749
  get(key): V[] | undefined;
754
750
  ```
755
751
 
756
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:787](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L787)
752
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:955](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L955)
757
753
 
758
754
  Live bucket reference (do not auto-delete key if bucket becomes empty via mutation).
759
755
 
@@ -785,13 +781,87 @@ Time O(log n), Space O(1)
785
781
 
786
782
  ***
787
783
 
784
+ ### getByRank()
785
+
786
+ ```ts
787
+ getByRank(k): [K, V[]] | undefined;
788
+ ```
789
+
790
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4463](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L4463)
791
+
792
+ Creates a shallow clone of this map.
793
+
794
+ #### Parameters
795
+
796
+ ##### k
797
+
798
+ `number`
799
+
800
+ #### Returns
801
+
802
+ \[`K`, `V`[]\] \| `undefined`
803
+
804
+ #### Remarks
805
+
806
+ Time O(n log n), Space O(n)
807
+
808
+ *
809
+
810
+ #### Example
811
+
812
+ ```ts
813
+ // Order-statistic on BST
814
+ const tree = new TreeMultiMap<number>([30, 10, 50, 20, 40], { enableOrderStatistic: true });
815
+ console.log(tree.getByRank(0)); // 10;
816
+ console.log(tree.getByRank(4)); // 50;
817
+ console.log(tree.getRank(30)); // 2;
818
+ ```
819
+
820
+ ***
821
+
822
+ ### getRank()
823
+
824
+ ```ts
825
+ getRank(key): number;
826
+ ```
827
+
828
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4482](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L4482)
829
+
830
+ Get the rank of a key in sorted order
831
+
832
+ #### Parameters
833
+
834
+ ##### key
835
+
836
+ `K`
837
+
838
+ #### Returns
839
+
840
+ `number`
841
+
842
+ #### Example
843
+
844
+ ```ts
845
+ // Get the rank of a key in sorted order
846
+ const tree = new TreeMultiMap<number>(
847
+ [10, 20, 30, 40, 50],
848
+ { enableOrderStatistic: true }
849
+ );
850
+ console.log(tree.getRank(10)); // 0; // smallest → rank 0
851
+ console.log(tree.getRank(30)); // 2; // 2 elements before 30 in tree order
852
+ console.log(tree.getRank(50)); // 4; // largest → rank 4
853
+ console.log(tree.getRank(25)); // 2;
854
+ ```
855
+
856
+ ***
857
+
788
858
  ### has()
789
859
 
790
860
  ```ts
791
861
  has(key): boolean;
792
862
  ```
793
863
 
794
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:618](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L618)
864
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:744](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L744)
795
865
 
796
866
  Whether the map contains the given key.
797
867
 
@@ -832,7 +902,7 @@ hasEntry(
832
902
  eq?): boolean;
833
903
  ```
834
904
 
835
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1316](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1316)
905
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1610](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L1610)
836
906
 
837
907
  Check if a specific value exists in a key's bucket.
838
908
 
@@ -878,7 +948,7 @@ Time O(log n + m), Space O(1) where m is bucket size
878
948
  higher(key): [K, V[]] | undefined;
879
949
  ```
880
950
 
881
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2409](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L2409)
951
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2948](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2948)
882
952
 
883
953
  Returns the entry with the smallest key > given key.
884
954
 
@@ -916,7 +986,7 @@ Time O(log n), Space O(1)
916
986
  isEmpty(): boolean;
917
987
  ```
918
988
 
919
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:243](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L243)
989
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:278](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L278)
920
990
 
921
991
  Whether the map is empty.
922
992
 
@@ -945,7 +1015,7 @@ Time O(1), Space O(1)
945
1015
  keys(): IterableIterator<K>;
946
1016
  ```
947
1017
 
948
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1553](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1553)
1018
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1896](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L1896)
949
1019
 
950
1020
  Iterates over all keys.
951
1021
 
@@ -977,7 +1047,7 @@ Time O(n), Space O(1)
977
1047
  last(): [K, V[]] | undefined;
978
1048
  ```
979
1049
 
980
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1927](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1927)
1050
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2354](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2354)
981
1051
 
982
1052
  Returns the entry with the largest key.
983
1053
 
@@ -1009,7 +1079,7 @@ Time O(log n), Space O(1)
1009
1079
  lower(key): [K, V[]] | undefined;
1010
1080
  ```
1011
1081
 
1012
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2525](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L2525)
1082
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3092](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L3092)
1013
1083
 
1014
1084
  Returns the entry with the largest key < given key.
1015
1085
 
@@ -1047,7 +1117,7 @@ Time O(log n), Space O(1)
1047
1117
  map<V2>(mapper): TreeMultiMap<K, V2, R>;
1048
1118
  ```
1049
1119
 
1050
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3088](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L3088)
1120
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3795](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L3795)
1051
1121
 
1052
1122
  Creates a new map by transforming each entry.
1053
1123
 
@@ -1091,7 +1161,7 @@ Time O(n log n), Space O(n)
1091
1161
  pollFirst(): [K, V[]] | undefined;
1092
1162
  ```
1093
1163
 
1094
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1966](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1966)
1164
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2400](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2400)
1095
1165
 
1096
1166
  Removes and returns the entry with the smallest key.
1097
1167
 
@@ -1125,7 +1195,7 @@ Time O(log n), Space O(1)
1125
1195
  pollLast(): [K, V[]] | undefined;
1126
1196
  ```
1127
1197
 
1128
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2004](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L2004)
1198
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2445](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2445)
1129
1199
 
1130
1200
  Removes and returns the entry with the largest key.
1131
1201
 
@@ -1158,7 +1228,7 @@ Time O(log n), Space O(1)
1158
1228
  print(): void;
1159
1229
  ```
1160
1230
 
1161
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2667](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L2667)
1231
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3269](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L3269)
1162
1232
 
1163
1233
  Prints the internal tree structure (for debugging).
1164
1234
 
@@ -1183,13 +1253,59 @@ Time O(n), Space O(n)
1183
1253
 
1184
1254
  ***
1185
1255
 
1256
+ ### rangeByRank()
1257
+
1258
+ ```ts
1259
+ rangeByRank(start, end): [K, V[]][];
1260
+ ```
1261
+
1262
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4504](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L4504)
1263
+
1264
+ Get elements by rank range
1265
+
1266
+ *
1267
+
1268
+ #### Parameters
1269
+
1270
+ ##### start
1271
+
1272
+ `number`
1273
+
1274
+ ##### end
1275
+
1276
+ `number`
1277
+
1278
+ #### Returns
1279
+
1280
+ \[`K`, `V`[]\][]
1281
+
1282
+ #### Example
1283
+
1284
+ ```ts
1285
+ // Pagination with rangeByRank
1286
+ const tree = new TreeMultiMap<number>(
1287
+ [10, 20, 30, 40, 50, 60, 70, 80, 90],
1288
+ { enableOrderStatistic: true }
1289
+ );
1290
+ const pageSize = 3;
1291
+
1292
+ // Page 1
1293
+ console.log(tree.rangeByRank(0, pageSize - 1)); // [10, 20, 30];
1294
+ // Page 2
1295
+ console.log(tree.rangeByRank(pageSize, 2 * pageSize - 1)); // [40, 50, 60];
1296
+ // Page 3
1297
+ console.log(tree.rangeByRank(2 * pageSize, 3 * pageSize - 1)); // [70, 80, 90];
1298
+ ```
1299
+
1300
+ ***
1301
+
1186
1302
  ### rangeSearch()
1187
1303
 
1188
1304
  ```ts
1189
1305
  rangeSearch<C>(range, callback?): ReturnType<C>[];
1190
1306
  ```
1191
1307
 
1192
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3483](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L3483)
1308
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4288](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L4288)
1193
1309
 
1194
1310
  Searches for entries within a key range.
1195
1311
 
@@ -1239,7 +1355,7 @@ Time O(log n + k), Space O(k) where k is result size
1239
1355
  reduce<U>(callback, initialValue): U;
1240
1356
  ```
1241
1357
 
1242
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3232](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L3232)
1358
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3974](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L3974)
1243
1359
 
1244
1360
  Reduces all entries to a single value.
1245
1361
 
@@ -1290,7 +1406,7 @@ Time O(n), Space O(1)
1290
1406
  set(entry, value?): boolean;
1291
1407
  ```
1292
1408
 
1293
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1092](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1092)
1409
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1337](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L1337)
1294
1410
 
1295
1411
  Alias for compatibility with existing TreeMultiMap semantics.
1296
1412
 
@@ -1333,7 +1449,7 @@ Time O(log n), Space O(1) for single value; O(log n + m) for bucket append
1333
1449
  set(key, value): boolean;
1334
1450
  ```
1335
1451
 
1336
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1093](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1093)
1452
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1338](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L1338)
1337
1453
 
1338
1454
  Alias for compatibility with existing TreeMultiMap semantics.
1339
1455
 
@@ -1375,7 +1491,7 @@ Time O(log n), Space O(1) for single value; O(log n + m) for bucket append
1375
1491
  setMany(keysNodesEntriesOrRaws): boolean[];
1376
1492
  ```
1377
1493
 
1378
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3364](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L3364)
1494
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4141](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L4141)
1379
1495
 
1380
1496
  Sets multiple entries at once.
1381
1497
 
@@ -1412,7 +1528,7 @@ Time O(m log n), Space O(m) where m is input size
1412
1528
  values(): IterableIterator<V[]>;
1413
1529
  ```
1414
1530
 
1415
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1690](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1690)
1531
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2068](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2068)
1416
1532
 
1417
1533
  Iterates over all buckets.
1418
1534
 
@@ -1444,7 +1560,7 @@ Time O(n), Space O(1)
1444
1560
  valuesOf(key): IterableIterator<V>;
1445
1561
  ```
1446
1562
 
1447
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1760](https://github.com/zrwusa/data-structure-typed/blob/2f6ceb3aee852228efc88b111e19c0809753e805/src/data-structures/binary-tree/tree-multi-map.ts#L1760)
1563
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2152](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-multi-map.ts#L2152)
1448
1564
 
1449
1565
  Iterates over all values for a specific key.
1450
1566