data-structure-typed 2.5.3 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/.github/workflows/ci.yml +7 -2
  2. package/.github/workflows/release-package.yml +9 -2
  3. package/.husky/pre-commit +3 -0
  4. package/CHANGELOG.md +1 -1
  5. package/MIGRATION.md +48 -0
  6. package/README.md +20 -2
  7. package/README_CN.md +20 -2
  8. package/SPECIFICATION.md +24 -0
  9. package/SPECIFICATION.zh-CN.md +24 -0
  10. package/dist/cjs/binary-tree.cjs +1897 -19
  11. package/dist/cjs/graph.cjs +174 -0
  12. package/dist/cjs/hash.cjs +33 -0
  13. package/dist/cjs/heap.cjs +71 -0
  14. package/dist/cjs/index.cjs +2383 -3
  15. package/dist/cjs/linked-list.cjs +224 -2
  16. package/dist/cjs/matrix.cjs +24 -0
  17. package/dist/cjs/priority-queue.cjs +71 -0
  18. package/dist/cjs/queue.cjs +221 -1
  19. package/dist/cjs/stack.cjs +59 -0
  20. package/dist/cjs/trie.cjs +62 -0
  21. package/dist/cjs-legacy/binary-tree.cjs +1897 -19
  22. package/dist/cjs-legacy/graph.cjs +174 -0
  23. package/dist/cjs-legacy/hash.cjs +33 -0
  24. package/dist/cjs-legacy/heap.cjs +71 -0
  25. package/dist/cjs-legacy/index.cjs +2383 -3
  26. package/dist/cjs-legacy/linked-list.cjs +224 -2
  27. package/dist/cjs-legacy/matrix.cjs +24 -0
  28. package/dist/cjs-legacy/priority-queue.cjs +71 -0
  29. package/dist/cjs-legacy/queue.cjs +221 -1
  30. package/dist/cjs-legacy/stack.cjs +59 -0
  31. package/dist/cjs-legacy/trie.cjs +62 -0
  32. package/dist/esm/binary-tree.mjs +1897 -19
  33. package/dist/esm/graph.mjs +174 -0
  34. package/dist/esm/hash.mjs +33 -0
  35. package/dist/esm/heap.mjs +71 -0
  36. package/dist/esm/index.mjs +2383 -3
  37. package/dist/esm/linked-list.mjs +224 -2
  38. package/dist/esm/matrix.mjs +24 -0
  39. package/dist/esm/priority-queue.mjs +71 -0
  40. package/dist/esm/queue.mjs +221 -1
  41. package/dist/esm/stack.mjs +59 -0
  42. package/dist/esm/trie.mjs +62 -0
  43. package/dist/esm-legacy/binary-tree.mjs +1897 -19
  44. package/dist/esm-legacy/graph.mjs +174 -0
  45. package/dist/esm-legacy/hash.mjs +33 -0
  46. package/dist/esm-legacy/heap.mjs +71 -0
  47. package/dist/esm-legacy/index.mjs +2383 -3
  48. package/dist/esm-legacy/linked-list.mjs +224 -2
  49. package/dist/esm-legacy/matrix.mjs +24 -0
  50. package/dist/esm-legacy/priority-queue.mjs +71 -0
  51. package/dist/esm-legacy/queue.mjs +221 -1
  52. package/dist/esm-legacy/stack.mjs +59 -0
  53. package/dist/esm-legacy/trie.mjs +62 -0
  54. package/dist/types/data-structures/base/iterable-element-base.d.ts +17 -0
  55. package/dist/types/data-structures/base/linear-base.d.ts +6 -0
  56. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +36 -0
  57. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +42 -0
  58. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +75 -0
  59. package/dist/types/data-structures/binary-tree/bst.d.ts +72 -0
  60. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +57 -0
  61. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +18 -0
  62. package/dist/types/data-structures/binary-tree/tree-map.d.ts +375 -0
  63. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +389 -0
  64. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +330 -0
  65. package/dist/types/data-structures/binary-tree/tree-set.d.ts +438 -0
  66. package/dist/types/data-structures/graph/directed-graph.d.ts +30 -0
  67. package/dist/types/data-structures/graph/undirected-graph.d.ts +27 -0
  68. package/dist/types/data-structures/hash/hash-map.d.ts +33 -0
  69. package/dist/types/data-structures/heap/heap.d.ts +42 -0
  70. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -2
  71. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +45 -0
  72. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +54 -0
  73. package/dist/types/data-structures/matrix/matrix.d.ts +24 -0
  74. package/dist/types/data-structures/queue/deque.d.ts +90 -1
  75. package/dist/types/data-structures/queue/queue.d.ts +36 -0
  76. package/dist/types/data-structures/stack/stack.d.ts +30 -0
  77. package/dist/types/data-structures/trie/trie.d.ts +36 -0
  78. package/dist/umd/data-structure-typed.js +2383 -3
  79. package/dist/umd/data-structure-typed.min.js +3 -3
  80. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +108 -108
  81. package/docs-site-docusaurus/docs/api/classes/BST.md +101 -101
  82. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +13 -13
  83. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +66 -66
  84. package/docs-site-docusaurus/docs/api/classes/Deque.md +235 -51
  85. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +21 -21
  86. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +231 -67
  87. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +9 -9
  88. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  89. package/docs-site-docusaurus/docs/api/classes/HashMap.md +14 -14
  90. package/docs-site-docusaurus/docs/api/classes/Heap.md +117 -34
  91. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +83 -13
  92. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +124 -20
  93. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +140 -32
  94. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +30 -26
  95. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +159 -51
  96. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +20 -20
  97. package/docs-site-docusaurus/docs/api/classes/Matrix.md +23 -23
  98. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +117 -34
  99. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +117 -34
  100. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +117 -34
  101. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +117 -34
  102. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +117 -34
  103. package/docs-site-docusaurus/docs/api/classes/Queue.md +142 -34
  104. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +117 -117
  105. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +8 -8
  106. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +158 -50
  107. package/docs-site-docusaurus/docs/api/classes/SkipList.md +21 -21
  108. package/docs-site-docusaurus/docs/api/classes/Stack.md +108 -26
  109. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +33 -33
  110. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +75 -39
  111. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +301 -39
  112. package/docs-site-docusaurus/docs/api/classes/Trie.md +110 -28
  113. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +20 -20
  114. package/jest.integration.config.js +1 -2
  115. package/package.json +51 -50
  116. package/src/common/error.ts +15 -32
  117. package/src/common/index.ts +0 -3
  118. package/src/data-structures/base/iterable-element-base.ts +32 -3
  119. package/src/data-structures/base/linear-base.ts +13 -36
  120. package/src/data-structures/binary-tree/avl-tree.ts +31 -493
  121. package/src/data-structures/binary-tree/binary-indexed-tree.ts +47 -530
  122. package/src/data-structures/binary-tree/binary-tree.ts +326 -1236
  123. package/src/data-structures/binary-tree/bst.ts +158 -1010
  124. package/src/data-structures/binary-tree/red-black-tree.ts +451 -1233
  125. package/src/data-structures/binary-tree/segment-tree.ts +73 -333
  126. package/src/data-structures/binary-tree/tree-map.ts +462 -4749
  127. package/src/data-structures/binary-tree/tree-multi-map.ts +310 -4530
  128. package/src/data-structures/binary-tree/tree-multi-set.ts +300 -3652
  129. package/src/data-structures/binary-tree/tree-set.ts +437 -4443
  130. package/src/data-structures/graph/abstract-graph.ts +98 -167
  131. package/src/data-structures/graph/directed-graph.ts +137 -532
  132. package/src/data-structures/graph/map-graph.ts +0 -3
  133. package/src/data-structures/graph/undirected-graph.ts +132 -484
  134. package/src/data-structures/hash/hash-map.ts +154 -549
  135. package/src/data-structures/heap/heap.ts +200 -753
  136. package/src/data-structures/linked-list/doubly-linked-list.ts +153 -809
  137. package/src/data-structures/linked-list/singly-linked-list.ts +122 -749
  138. package/src/data-structures/linked-list/skip-linked-list.ts +211 -864
  139. package/src/data-structures/matrix/matrix.ts +179 -494
  140. package/src/data-structures/matrix/navigator.ts +0 -1
  141. package/src/data-structures/priority-queue/max-priority-queue.ts +1 -6
  142. package/src/data-structures/priority-queue/min-priority-queue.ts +6 -11
  143. package/src/data-structures/priority-queue/priority-queue.ts +1 -2
  144. package/src/data-structures/queue/deque.ts +241 -807
  145. package/src/data-structures/queue/queue.ts +102 -589
  146. package/src/data-structures/stack/stack.ts +76 -475
  147. package/src/data-structures/trie/trie.ts +98 -592
  148. package/src/types/common.ts +0 -10
  149. package/src/types/data-structures/binary-tree/bst.ts +0 -7
  150. package/src/types/data-structures/binary-tree/red-black-tree.ts +0 -1
  151. package/src/types/data-structures/graph/abstract-graph.ts +0 -2
  152. package/src/types/data-structures/hash/hash-map.ts +0 -3
  153. package/src/types/data-structures/hash/index.ts +0 -1
  154. package/src/types/data-structures/matrix/navigator.ts +0 -2
  155. package/src/types/utils/utils.ts +0 -7
  156. package/src/types/utils/validate-type.ts +0 -7
  157. package/src/utils/number.ts +0 -2
  158. package/src/utils/utils.ts +0 -5
@@ -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:5021](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L5021)
106
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:5413](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L5413)
107
107
 
108
108
  Expose comparator for advanced usage/testing (read-only).
109
109
 
@@ -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:580](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L580)
150
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:616](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L616)
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:1897](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1897)
183
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2029](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2029)
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:1239](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1239)
209
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1326](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1326)
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:2896](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2896)
252
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3126](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L3126)
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:490](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L490)
291
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:520](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L520)
292
292
 
293
293
  Removes all entries from the map.
294
294
 
@@ -320,7 +320,7 @@ 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:5013](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L5013)
323
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:5405](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L5405)
324
324
 
325
325
  Deep copy
326
326
 
@@ -349,7 +349,7 @@ Deep copy
349
349
  count(key): number;
350
350
  ```
351
351
 
352
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:534](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L534)
352
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:567](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L567)
353
353
 
354
354
  Bucket length for a key (missing => 0).
355
355
 
@@ -387,7 +387,7 @@ Time O(log n), Space O(1)
387
387
  delete(key): boolean;
388
388
  ```
389
389
 
390
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1733](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1733)
390
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1856](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1856)
391
391
 
392
392
  Deletes a key and its entire bucket.
393
393
 
@@ -429,7 +429,7 @@ deleteValue(
429
429
  eq?): boolean;
430
430
  ```
431
431
 
432
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1825](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1825)
432
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1954](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1954)
433
433
 
434
434
  Delete a single occurrence of a value from a key's bucket.
435
435
 
@@ -479,7 +479,7 @@ deleteValues(
479
479
  eq?): number;
480
480
  ```
481
481
 
482
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1877](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1877)
482
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2009](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2009)
483
483
 
484
484
  Delete all occurrences of a value from a key's bucket.
485
485
 
@@ -521,13 +521,49 @@ Time O(log n + m), Space O(1) where m is bucket size
521
521
 
522
522
  ***
523
523
 
524
+ ### entries()
525
+
526
+ ```ts
527
+ entries(): IterableIterator<[K, V[]]>;
528
+ ```
529
+
530
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2472](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2472)
531
+
532
+ Iterate over all `[key, values[]]` entries (Map-compatible).
533
+
534
+ #### Returns
535
+
536
+ `IterableIterator`\<\[`K`, `V`[]\]\>
537
+
538
+ #### Remarks
539
+
540
+ Time O(n), Space O(1) per step.
541
+
542
+ *
543
+
544
+ #### Example
545
+
546
+ ```ts
547
+ // Iterate over entries
548
+ const mm = new TreeMultiMap<number, string>();
549
+ mm.set(1, 'a');
550
+ mm.set(1, 'b');
551
+ mm.set(2, 'c');
552
+ console.log([...mm.entries()]); // [
553
+ // [1, ['a', 'b']],
554
+ // [2, ['c']]
555
+ // ];
556
+ ```
557
+
558
+ ***
559
+
524
560
  ### entriesOf()
525
561
 
526
562
  ```ts
527
563
  entriesOf(key): IterableIterator<[K, V]>;
528
564
  ```
529
565
 
530
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2330](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2330)
566
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2521](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2521)
531
567
 
532
568
  Iterates over all entries for a specific key.
533
569
 
@@ -565,7 +601,7 @@ Time O(log n + m), Space O(1) where m is bucket size
565
601
  filter(predicate): TreeMultiMap<K, V, R>;
566
602
  ```
567
603
 
568
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:4003](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4003)
604
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4317](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4317)
569
605
 
570
606
  Creates a new map with entries that pass the predicate.
571
607
 
@@ -605,7 +641,7 @@ Time O(n), Space O(n)
605
641
  first(): [K, V[]] | undefined;
606
642
  ```
607
643
 
608
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2511](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2511)
644
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2714](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2714)
609
645
 
610
646
  Returns the entry with the smallest key.
611
647
 
@@ -637,7 +673,7 @@ Time O(log n), Space O(1)
637
673
  flatEntries(): IterableIterator<[K, V]>;
638
674
  ```
639
675
 
640
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2423](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2423)
676
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2620](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2620)
641
677
 
642
678
  Iterates over all [key, value] pairs (flattened from buckets).
643
679
 
@@ -670,7 +706,7 @@ Time O(T), Space O(1) where T is totalSize
670
706
  floor(key): [K, V[]] | undefined;
671
707
  ```
672
708
 
673
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3096](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L3096)
709
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3341](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L3341)
674
710
 
675
711
  Returns the entry with the largest key <= given key.
676
712
 
@@ -709,7 +745,7 @@ Time O(log n), Space O(1)
709
745
  forEach(callback): void;
710
746
  ```
711
747
 
712
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3807](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L3807)
748
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4106](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4106)
713
749
 
714
750
  Executes a callback for each entry.
715
751
 
@@ -749,7 +785,7 @@ Time O(n), Space O(1)
749
785
  get(key): V[] | undefined;
750
786
  ```
751
787
 
752
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1051](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1051)
788
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1123](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1123)
753
789
 
754
790
  Live bucket reference (do not auto-delete key if bucket becomes empty via mutation).
755
791
 
@@ -787,7 +823,7 @@ Time O(log n), Space O(1)
787
823
  getByRank(k): [K, V[]] | undefined;
788
824
  ```
789
825
 
790
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:4923](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4923)
826
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:5294](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L5294)
791
827
 
792
828
  Creates a shallow clone of this map.
793
829
 
@@ -825,7 +861,7 @@ Time O(n log n), Space O(n)
825
861
  getRank(key): number;
826
862
  ```
827
863
 
828
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:4942](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4942)
864
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:5313](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L5313)
829
865
 
830
866
  Get the rank of a key in sorted order
831
867
 
@@ -861,7 +897,7 @@ Get the rank of a key in sorted order
861
897
  has(key): boolean;
862
898
  ```
863
899
 
864
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:816](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L816)
900
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:870](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L870)
865
901
 
866
902
  Whether the map contains the given key.
867
903
 
@@ -902,7 +938,7 @@ hasEntry(
902
938
  eq?): boolean;
903
939
  ```
904
940
 
905
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1778](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1778)
941
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1904](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1904)
906
942
 
907
943
  Check if a specific value exists in a key's bucket.
908
944
 
@@ -948,7 +984,7 @@ Time O(log n + m), Space O(1) where m is bucket size
948
984
  higher(key): [K, V[]] | undefined;
949
985
  ```
950
986
 
951
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3256](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L3256)
987
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3513](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L3513)
952
988
 
953
989
  Returns the entry with the smallest key > given key.
954
990
 
@@ -986,7 +1022,7 @@ Time O(log n), Space O(1)
986
1022
  isEmpty(): boolean;
987
1023
  ```
988
1024
 
989
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:298](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L298)
1025
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:313](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L313)
990
1026
 
991
1027
  Whether the map is empty.
992
1028
 
@@ -1015,7 +1051,7 @@ Time O(1), Space O(1)
1015
1051
  keys(): IterableIterator<K>;
1016
1052
  ```
1017
1053
 
1018
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2092](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2092)
1054
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2239](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2239)
1019
1055
 
1020
1056
  Iterates over all keys.
1021
1057
 
@@ -1047,7 +1083,7 @@ Time O(n), Space O(1)
1047
1083
  last(): [K, V[]] | undefined;
1048
1084
  ```
1049
1085
 
1050
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2598](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2598)
1086
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2807](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2807)
1051
1087
 
1052
1088
  Returns the entry with the largest key.
1053
1089
 
@@ -1079,7 +1115,7 @@ Time O(log n), Space O(1)
1079
1115
  lower(key): [K, V[]] | undefined;
1080
1116
  ```
1081
1117
 
1082
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3416](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L3416)
1118
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3685](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L3685)
1083
1119
 
1084
1120
  Returns the entry with the largest key < given key.
1085
1121
 
@@ -1117,7 +1153,7 @@ Time O(log n), Space O(1)
1117
1153
  map<V2>(mapper): TreeMultiMap<K, V2, R>;
1118
1154
  ```
1119
1155
 
1120
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:4199](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4199)
1156
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4528](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4528)
1121
1157
 
1122
1158
  Creates a new map by transforming each entry.
1123
1159
 
@@ -1161,7 +1197,7 @@ Time O(n log n), Space O(n)
1161
1197
  pollFirst(): [K, V[]] | undefined;
1162
1198
  ```
1163
1199
 
1164
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2648](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2648)
1200
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2860](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2860)
1165
1201
 
1166
1202
  Removes and returns the entry with the smallest key.
1167
1203
 
@@ -1195,7 +1231,7 @@ Time O(log n), Space O(1)
1195
1231
  pollLast(): [K, V[]] | undefined;
1196
1232
  ```
1197
1233
 
1198
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2697](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2697)
1234
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2912](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2912)
1199
1235
 
1200
1236
  Removes and returns the entry with the largest key.
1201
1237
 
@@ -1228,7 +1264,7 @@ Time O(log n), Space O(1)
1228
1264
  print(): void;
1229
1265
  ```
1230
1266
 
1231
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:3613](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L3613)
1267
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:3897](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L3897)
1232
1268
 
1233
1269
  Prints the internal tree structure (for debugging).
1234
1270
 
@@ -1259,7 +1295,7 @@ Time O(n), Space O(n)
1259
1295
  rangeByRank(start, end): [K, V[]][];
1260
1296
  ```
1261
1297
 
1262
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:4972](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4972)
1298
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:5349](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L5349)
1263
1299
 
1264
1300
  Get elements by rank range
1265
1301
 
@@ -1305,7 +1341,7 @@ Get elements by rank range
1305
1341
  rangeSearch<C>(range, callback?): ReturnType<C>[];
1306
1342
  ```
1307
1343
 
1308
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:4748](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4748)
1344
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:5119](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L5119)
1309
1345
 
1310
1346
  Searches for entries within a key range.
1311
1347
 
@@ -1355,7 +1391,7 @@ Time O(log n + k), Space O(k) where k is result size
1355
1391
  reduce<U>(callback, initialValue): U;
1356
1392
  ```
1357
1393
 
1358
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:4398](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4398)
1394
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4742](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4742)
1359
1395
 
1360
1396
  Reduces all entries to a single value.
1361
1397
 
@@ -1406,7 +1442,7 @@ Time O(n), Space O(1)
1406
1442
  set(entry, value?): boolean;
1407
1443
  ```
1408
1444
 
1409
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1477](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1477)
1445
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1582](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1582)
1410
1446
 
1411
1447
  Alias for compatibility with existing TreeMultiMap semantics.
1412
1448
 
@@ -1449,7 +1485,7 @@ Time O(log n), Space O(1) for single value; O(log n + m) for bucket append
1449
1485
  set(key, value): boolean;
1450
1486
  ```
1451
1487
 
1452
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:1478](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1478)
1488
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:1583](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L1583)
1453
1489
 
1454
1490
  Alias for compatibility with existing TreeMultiMap semantics.
1455
1491
 
@@ -1491,7 +1527,7 @@ Time O(log n), Space O(1) for single value; O(log n + m) for bucket append
1491
1527
  setMany(keysNodesEntriesOrRaws): boolean[];
1492
1528
  ```
1493
1529
 
1494
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:4585](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4585)
1530
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:4944](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L4944)
1495
1531
 
1496
1532
  Sets multiple entries at once.
1497
1533
 
@@ -1528,7 +1564,7 @@ Time O(m log n), Space O(m) where m is input size
1528
1564
  values(): IterableIterator<V[]>;
1529
1565
  ```
1530
1566
 
1531
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2284](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2284)
1567
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2446](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2446)
1532
1568
 
1533
1569
  Iterates over all buckets.
1534
1570
 
@@ -1560,7 +1596,7 @@ Time O(n), Space O(1)
1560
1596
  valuesOf(key): IterableIterator<V>;
1561
1597
  ```
1562
1598
 
1563
- Defined in: [data-structures/binary-tree/tree-multi-map.ts:2376](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2376)
1599
+ Defined in: [data-structures/binary-tree/tree-multi-map.ts:2570](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-multi-map.ts#L2570)
1564
1600
 
1565
1601
  Iterates over all values for a specific key.
1566
1602