data-structure-typed 2.5.2 → 2.6.0

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 (162) hide show
  1. package/.husky/pre-commit +3 -0
  2. package/CHANGELOG.md +3 -1
  3. package/MIGRATION.md +217 -0
  4. package/README.md +80 -8
  5. package/README_CN.md +569 -143
  6. package/SPECIFICATION.md +44 -14
  7. package/SPECIFICATION.zh-CN.md +44 -14
  8. package/dist/cjs/binary-tree.cjs +5841 -1678
  9. package/dist/cjs/graph.cjs +422 -14
  10. package/dist/cjs/hash.cjs +95 -7
  11. package/dist/cjs/heap.cjs +174 -16
  12. package/dist/cjs/index.cjs +7751 -2449
  13. package/dist/cjs/linked-list.cjs +443 -2
  14. package/dist/cjs/matrix.cjs +56 -0
  15. package/dist/cjs/priority-queue.cjs +172 -14
  16. package/dist/cjs/queue.cjs +435 -0
  17. package/dist/cjs/stack.cjs +103 -4
  18. package/dist/cjs/trie.cjs +106 -0
  19. package/dist/cjs-legacy/binary-tree.cjs +5933 -1772
  20. package/dist/cjs-legacy/graph.cjs +422 -14
  21. package/dist/cjs-legacy/hash.cjs +95 -7
  22. package/dist/cjs-legacy/heap.cjs +174 -16
  23. package/dist/cjs-legacy/index.cjs +8154 -2854
  24. package/dist/cjs-legacy/linked-list.cjs +443 -2
  25. package/dist/cjs-legacy/matrix.cjs +56 -0
  26. package/dist/cjs-legacy/priority-queue.cjs +172 -14
  27. package/dist/cjs-legacy/queue.cjs +435 -0
  28. package/dist/cjs-legacy/stack.cjs +103 -4
  29. package/dist/cjs-legacy/trie.cjs +106 -0
  30. package/dist/esm/binary-tree.mjs +5841 -1678
  31. package/dist/esm/graph.mjs +422 -14
  32. package/dist/esm/hash.mjs +95 -7
  33. package/dist/esm/heap.mjs +174 -16
  34. package/dist/esm/index.mjs +7751 -2449
  35. package/dist/esm/linked-list.mjs +443 -2
  36. package/dist/esm/matrix.mjs +56 -0
  37. package/dist/esm/priority-queue.mjs +172 -14
  38. package/dist/esm/queue.mjs +435 -0
  39. package/dist/esm/stack.mjs +103 -4
  40. package/dist/esm/trie.mjs +106 -0
  41. package/dist/esm-legacy/binary-tree.mjs +5933 -1772
  42. package/dist/esm-legacy/graph.mjs +422 -14
  43. package/dist/esm-legacy/hash.mjs +95 -7
  44. package/dist/esm-legacy/heap.mjs +174 -16
  45. package/dist/esm-legacy/index.mjs +8154 -2854
  46. package/dist/esm-legacy/linked-list.mjs +443 -2
  47. package/dist/esm-legacy/matrix.mjs +56 -0
  48. package/dist/esm-legacy/priority-queue.mjs +172 -14
  49. package/dist/esm-legacy/queue.mjs +435 -0
  50. package/dist/esm-legacy/stack.mjs +103 -4
  51. package/dist/esm-legacy/trie.mjs +106 -0
  52. package/dist/types/data-structures/base/iterable-element-base.d.ts +17 -0
  53. package/dist/types/data-structures/base/linear-base.d.ts +6 -0
  54. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +86 -2
  55. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +98 -0
  56. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +191 -15
  57. package/dist/types/data-structures/binary-tree/bst.d.ts +171 -3
  58. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +136 -8
  59. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +42 -0
  60. package/dist/types/data-structures/binary-tree/tree-map.d.ts +1061 -167
  61. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1232 -355
  62. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +916 -194
  63. package/dist/types/data-structures/binary-tree/tree-set.d.ts +1078 -141
  64. package/dist/types/data-structures/graph/directed-graph.d.ts +70 -0
  65. package/dist/types/data-structures/graph/undirected-graph.d.ts +63 -0
  66. package/dist/types/data-structures/hash/hash-map.d.ts +84 -6
  67. package/dist/types/data-structures/heap/heap.d.ts +140 -12
  68. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +150 -2
  69. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +106 -1
  70. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +126 -0
  71. package/dist/types/data-structures/matrix/matrix.d.ts +56 -0
  72. package/dist/types/data-structures/queue/deque.d.ts +171 -0
  73. package/dist/types/data-structures/queue/queue.d.ts +97 -0
  74. package/dist/types/data-structures/stack/stack.d.ts +72 -2
  75. package/dist/types/data-structures/trie/trie.d.ts +84 -0
  76. package/dist/types/interfaces/binary-tree.d.ts +2 -3
  77. package/dist/umd/data-structure-typed.js +7784 -2484
  78. package/dist/umd/data-structure-typed.min.js +4 -4
  79. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +188 -200
  80. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
  81. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +62 -62
  82. package/docs-site-docusaurus/docs/api/classes/BST.md +183 -195
  83. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
  84. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
  85. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +143 -155
  86. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
  87. package/docs-site-docusaurus/docs/api/classes/Deque.md +99 -85
  88. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +73 -73
  89. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +100 -70
  90. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
  91. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +12 -12
  92. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  93. package/docs-site-docusaurus/docs/api/classes/HashMap.md +38 -38
  94. package/docs-site-docusaurus/docs/api/classes/Heap.md +96 -85
  95. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
  96. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +23 -23
  97. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +48 -48
  98. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +52 -52
  99. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +46 -42
  100. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
  101. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +74 -74
  102. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +73 -73
  103. package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
  104. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +104 -89
  105. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +104 -89
  106. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +104 -89
  107. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +104 -89
  108. package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
  109. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +103 -88
  110. package/docs-site-docusaurus/docs/api/classes/Queue.md +111 -59
  111. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +200 -212
  112. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
  113. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +75 -75
  114. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
  115. package/docs-site-docusaurus/docs/api/classes/SkipList.md +37 -37
  116. package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
  117. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +107 -36
  118. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +43 -43
  119. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +106 -35
  120. package/docs-site-docusaurus/docs/api/classes/Trie.md +43 -43
  121. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
  122. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +72 -72
  123. package/docs-site-docusaurus/docs/guide/architecture.md +75 -7
  124. package/docs-site-docusaurus/docs/guide/concepts.md +53 -34
  125. package/docs-site-docusaurus/docs/guide/faq.md +53 -0
  126. package/docs-site-docusaurus/docs/guide/guides.md +8 -9
  127. package/docs-site-docusaurus/docs/guide/integrations.md +74 -177
  128. package/docs-site-docusaurus/docs/guide/overview.md +131 -17
  129. package/docs-site-docusaurus/src/pages/index.tsx +4 -0
  130. package/docs-site-docusaurus/typedoc.json +1 -0
  131. package/jest.integration.config.js +1 -2
  132. package/package.json +10 -7
  133. package/src/data-structures/base/iterable-element-base.ts +32 -0
  134. package/src/data-structures/base/linear-base.ts +11 -0
  135. package/src/data-structures/binary-tree/avl-tree.ts +88 -5
  136. package/src/data-structures/binary-tree/binary-indexed-tree.ts +98 -0
  137. package/src/data-structures/binary-tree/binary-tree.ts +242 -81
  138. package/src/data-structures/binary-tree/bst.ts +173 -7
  139. package/src/data-structures/binary-tree/red-black-tree.ts +139 -15
  140. package/src/data-structures/binary-tree/segment-tree.ts +42 -0
  141. package/src/data-structures/binary-tree/tree-map.ts +948 -36
  142. package/src/data-structures/binary-tree/tree-multi-map.ts +893 -13
  143. package/src/data-structures/binary-tree/tree-multi-set.ts +761 -33
  144. package/src/data-structures/binary-tree/tree-set.ts +1260 -251
  145. package/src/data-structures/graph/directed-graph.ts +71 -1
  146. package/src/data-structures/graph/undirected-graph.ts +64 -1
  147. package/src/data-structures/hash/hash-map.ts +100 -12
  148. package/src/data-structures/heap/heap.ts +149 -19
  149. package/src/data-structures/linked-list/doubly-linked-list.ts +178 -2
  150. package/src/data-structures/linked-list/singly-linked-list.ts +106 -1
  151. package/src/data-structures/linked-list/skip-linked-list.ts +126 -0
  152. package/src/data-structures/matrix/matrix.ts +56 -0
  153. package/src/data-structures/queue/deque.ts +187 -0
  154. package/src/data-structures/queue/queue.ts +109 -0
  155. package/src/data-structures/stack/stack.ts +75 -5
  156. package/src/data-structures/trie/trie.ts +84 -0
  157. package/src/interfaces/binary-tree.ts +1 -9
  158. package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +0 -12984
  159. package/.vitepress/cache/deps_temp_51f5f1b0/package.json +0 -3
  160. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +0 -4505
  161. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +0 -9731
  162. package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +0 -347
@@ -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/8292cb978daf85ebe846186c7c7572aece04fb7b/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/main/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/8292cb978daf85ebe846186c7c7572aece04fb7b/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/main/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/8292cb978daf85ebe846186c7c7572aece04fb7b/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/main/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:3747](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3747)
116
+ Defined in: [data-structures/binary-tree/tree-map.ts:4192](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L4192)
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:1238](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1238)
175
+ Defined in: [data-structures/binary-tree/tree-map.ts:1411](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L1411)
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:4652](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4652)
202
+ Defined in: [data-structures/binary-tree/tree-map.ts:5189](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L5189)
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:1066](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1066)
234
+ Defined in: [data-structures/binary-tree/tree-map.ts:1202](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L1202)
235
235
 
236
236
  Delete a key.
237
237
 
@@ -271,13 +271,43 @@ Expected time O(log n)
271
271
 
272
272
  ***
273
273
 
274
+ ### deleteWhere()
275
+
276
+ ```ts
277
+ deleteWhere(predicate): boolean;
278
+ ```
279
+
280
+ Defined in: [data-structures/binary-tree/tree-map.ts:1213](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L1213)
281
+
282
+ Delete all entries matching a predicate.
283
+
284
+ #### Parameters
285
+
286
+ ##### predicate
287
+
288
+ (`key`, `value`, `index`, `map`) => `boolean`
289
+
290
+ Function (key, value, index, map) → boolean; return true to delete.
291
+
292
+ #### Returns
293
+
294
+ `boolean`
295
+
296
+ True if at least one entry was deleted.
297
+
298
+ #### Remarks
299
+
300
+ Time O(N), Space O(N)
301
+
302
+ ***
303
+
274
304
  ### entries()
275
305
 
276
306
  ```ts
277
307
  entries(): IterableIterator<[K, V | undefined]>;
278
308
  ```
279
309
 
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)
310
+ Defined in: [data-structures/binary-tree/tree-map.ts:1988](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L1988)
281
311
 
282
312
  Iterate over `[key, value]` entries in ascending key order.
283
313
 
@@ -305,7 +335,7 @@ Note: values may be `undefined`.
305
335
  every(callbackfn, thisArg?): boolean;
306
336
  ```
307
337
 
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)
338
+ Defined in: [data-structures/binary-tree/tree-map.ts:2970](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L2970)
309
339
 
310
340
  Test whether all entries satisfy a predicate.
311
341
 
@@ -345,7 +375,7 @@ Time O(n), Space O(1)
345
375
  filter(callbackfn, thisArg?): TreeMap<K, V>;
346
376
  ```
347
377
 
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)
378
+ Defined in: [data-structures/binary-tree/tree-map.ts:2581](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L2581)
349
379
 
350
380
  Create a new TreeMap containing only entries that satisfy the predicate.
351
381
 
@@ -386,7 +416,7 @@ Time O(n log n) expected, Space O(n)
386
416
  find(callbackfn, thisArg?): [K, V | undefined] | undefined;
387
417
  ```
388
418
 
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)
419
+ Defined in: [data-structures/binary-tree/tree-map.ts:3361](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L3361)
390
420
 
391
421
  Find the first entry that satisfies a predicate.
392
422
 
@@ -428,7 +458,7 @@ Time O(n), Space O(1)
428
458
  first(): [K, V | undefined] | undefined;
429
459
  ```
430
460
 
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)
461
+ Defined in: [data-structures/binary-tree/tree-map.ts:3824](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L3824)
432
462
 
433
463
  Smallest entry by key.
434
464
 
@@ -476,7 +506,7 @@ Smallest entry by key.
476
506
  floor(key): [K, V | undefined] | undefined;
477
507
  ```
478
508
 
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)
509
+ Defined in: [data-structures/binary-tree/tree-map.ts:4366](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L4366)
480
510
 
481
511
  Largest entry whose key is <= the given key.
482
512
 
@@ -519,7 +549,7 @@ Largest entry whose key is <= the given key.
519
549
  forEach(cb, thisArg?): void;
520
550
  ```
521
551
 
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)
552
+ Defined in: [data-structures/binary-tree/tree-map.ts:2185](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L2185)
523
553
 
524
554
  Visit each entry in ascending key order.
525
555
 
@@ -559,7 +589,7 @@ Note: callback value may be `undefined`.
559
589
  get(key): V | undefined;
560
590
  ```
561
591
 
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)
592
+ Defined in: [data-structures/binary-tree/tree-map.ts:783](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L783)
563
593
 
564
594
  Get the value under a key.
565
595
 
@@ -602,7 +632,7 @@ Expected time O(log n)
602
632
  getByRank(k): [K, V | undefined] | undefined;
603
633
  ```
604
634
 
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)
635
+ Defined in: [data-structures/binary-tree/tree-map.ts:4942](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L4942)
606
636
 
607
637
  Returns the entry at the k-th position in tree order (0-indexed).
608
638
 
@@ -643,7 +673,7 @@ Time O(log n). Requires `enableOrderStatistic: true`.
643
673
  getRank(key): number;
644
674
  ```
645
675
 
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)
676
+ Defined in: [data-structures/binary-tree/tree-map.ts:4962](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L4962)
647
677
 
648
678
  Returns the 0-based rank of a key (number of elements that precede it in tree order).
649
679
 
@@ -684,7 +714,7 @@ Time O(log n). Requires `enableOrderStatistic: true`.
684
714
  has(key): boolean;
685
715
  ```
686
716
 
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)
717
+ Defined in: [data-structures/binary-tree/tree-map.ts:991](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L991)
688
718
 
689
719
  Test whether a key exists.
690
720
 
@@ -726,7 +756,7 @@ Expected time O(log n)
726
756
  higher(key): [K, V | undefined] | undefined;
727
757
  ```
728
758
 
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)
759
+ Defined in: [data-structures/binary-tree/tree-map.ts:4540](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L4540)
730
760
 
731
761
  Smallest entry whose key is > the given key.
732
762
 
@@ -769,7 +799,7 @@ Smallest entry whose key is > the given key.
769
799
  isEmpty(): boolean;
770
800
  ```
771
801
 
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)
802
+ Defined in: [data-structures/binary-tree/tree-map.ts:322](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L322)
773
803
 
774
804
  Whether the map is empty.
775
805
 
@@ -794,7 +824,7 @@ Whether the map is empty.
794
824
  keys(): IterableIterator<K>;
795
825
  ```
796
826
 
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)
827
+ Defined in: [data-structures/binary-tree/tree-map.ts:1600](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L1600)
798
828
 
799
829
  Iterate over keys in ascending order.
800
830
 
@@ -820,7 +850,7 @@ Iterate over keys in ascending order.
820
850
  last(): [K, V | undefined] | undefined;
821
851
  ```
822
852
 
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)
853
+ Defined in: [data-structures/binary-tree/tree-map.ts:3881](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L3881)
824
854
 
825
855
  Largest entry by key.
826
856
 
@@ -852,7 +882,7 @@ Largest entry by key.
852
882
  lower(key): [K, V | undefined] | undefined;
853
883
  ```
854
884
 
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)
885
+ Defined in: [data-structures/binary-tree/tree-map.ts:4712](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L4712)
856
886
 
857
887
  Largest entry whose key is < the given key.
858
888
 
@@ -896,7 +926,7 @@ map<MK, MV>(
896
926
  thisArg?): TreeMap<MK, MV>;
897
927
  ```
898
928
 
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)
929
+ Defined in: [data-structures/binary-tree/tree-map.ts:2378](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L2378)
900
930
 
901
931
  Create a new TreeMap by mapping each entry to a new `[key, value]` entry.
902
932
 
@@ -953,7 +983,7 @@ Time O(n log n) expected, Space O(n)
953
983
  pollFirst(): [K, V | undefined] | undefined;
954
984
  ```
955
985
 
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)
986
+ Defined in: [data-structures/binary-tree/tree-map.ts:3940](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L3940)
957
987
 
958
988
  Remove and return the smallest entry.
959
989
 
@@ -987,7 +1017,7 @@ Remove and return the smallest entry.
987
1017
  pollLast(): [K, V | undefined] | undefined;
988
1018
  ```
989
1019
 
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)
1020
+ Defined in: [data-structures/binary-tree/tree-map.ts:4001](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L4001)
991
1021
 
992
1022
  Remove and return the largest entry.
993
1023
 
@@ -1021,7 +1051,7 @@ Remove and return the largest entry.
1021
1051
  print(): void;
1022
1052
  ```
1023
1053
 
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)
1054
+ Defined in: [data-structures/binary-tree/tree-map.ts:3748](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L3748)
1025
1055
 
1026
1056
  Print a human-friendly representation.
1027
1057
 
@@ -1051,7 +1081,7 @@ Time O(n), Space O(n)
1051
1081
  rangeByRank(start, end): [K, V | undefined][];
1052
1082
  ```
1053
1083
 
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)
1084
+ Defined in: [data-structures/binary-tree/tree-map.ts:4993](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L4993)
1055
1085
 
1056
1086
  Returns keys by rank range (0-indexed, inclusive on both ends).
1057
1087
 
@@ -1078,7 +1108,7 @@ Time O(log n + k). Requires `enableOrderStatistic: true`.
1078
1108
  #### Example
1079
1109
 
1080
1110
  ```ts
1081
- // Pagination with rangeByRank
1111
+ // Pagination by position in tree order
1082
1112
  const tree = new TreeMap<number>(
1083
1113
  [10, 20, 30, 40, 50, 60, 70, 80, 90],
1084
1114
  { enableOrderStatistic: true }
@@ -1101,7 +1131,7 @@ Time O(log n + k). Requires `enableOrderStatistic: true`.
1101
1131
  rangeSearch(range, options?): [K, V | undefined][];
1102
1132
  ```
1103
1133
 
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)
1134
+ Defined in: [data-structures/binary-tree/tree-map.ts:4904](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L4904)
1105
1135
 
1106
1136
  Return all entries in a given key range.
1107
1137
 
@@ -1167,7 +1197,7 @@ Inclusive/exclusive bounds (defaults to inclusive).
1167
1197
  reduce<A>(callbackfn, initialValue): A;
1168
1198
  ```
1169
1199
 
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)
1200
+ Defined in: [data-structures/binary-tree/tree-map.ts:2779](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L2779)
1171
1201
 
1172
1202
  Reduce entries into a single accumulator.
1173
1203
 
@@ -1213,7 +1243,7 @@ Time O(n), Space O(1)
1213
1243
  set(key, value): this;
1214
1244
  ```
1215
1245
 
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)
1246
+ Defined in: [data-structures/binary-tree/tree-map.ts:537](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L537)
1217
1247
 
1218
1248
  Set or overwrite a value for a key.
1219
1249
 
@@ -1263,13 +1293,54 @@ Expected time O(log n)
1263
1293
 
1264
1294
  ***
1265
1295
 
1296
+ ### setMany()
1297
+
1298
+ ```ts
1299
+ setMany(entries): boolean[];
1300
+ ```
1301
+
1302
+ Defined in: [data-structures/binary-tree/tree-map.ts:570](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L570)
1303
+
1304
+ Set multiple key-value pairs at once.
1305
+
1306
+ #### Parameters
1307
+
1308
+ ##### entries
1309
+
1310
+ `Iterable`\<\[`K`, `V` \| `undefined`\]\>
1311
+
1312
+ Iterable of `[key, value]` tuples.
1313
+
1314
+ #### Returns
1315
+
1316
+ `boolean`[]
1317
+
1318
+ Array of booleans indicating whether each entry was successfully set.
1319
+
1320
+ *
1321
+
1322
+ #### Remarks
1323
+
1324
+ Expected time O(m log n), where m is the number of entries.
1325
+
1326
+ #### Example
1327
+
1328
+ ```ts
1329
+ // Set multiple key-value pairs
1330
+ const tm = new TreeMap<number, string>();
1331
+ tm.setMany([[1, 'a'], [2, 'b'], [3, 'c']]);
1332
+ console.log(tm.size); // 3;
1333
+ ```
1334
+
1335
+ ***
1336
+
1266
1337
  ### some()
1267
1338
 
1268
1339
  ```ts
1269
1340
  some(callbackfn, thisArg?): boolean;
1270
1341
  ```
1271
1342
 
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)
1343
+ Defined in: [data-structures/binary-tree/tree-map.ts:3165](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L3165)
1273
1344
 
1274
1345
  Test whether any entry satisfies a predicate.
1275
1346
 
@@ -1309,7 +1380,7 @@ Time O(n), Space O(1)
1309
1380
  toArray(): [K, V | undefined][];
1310
1381
  ```
1311
1382
 
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)
1383
+ Defined in: [data-structures/binary-tree/tree-map.ts:3558](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L3558)
1313
1384
 
1314
1385
  Materialize the map into an array of `[key, value]` tuples.
1315
1386
 
@@ -1339,7 +1410,7 @@ Time O(n), Space O(n)
1339
1410
  values(): IterableIterator<V | undefined>;
1340
1411
  ```
1341
1412
 
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)
1413
+ Defined in: [data-structures/binary-tree/tree-map.ts:1797](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L1797)
1343
1414
 
1344
1415
  Iterate over values in ascending key order.
1345
1416
 
@@ -1367,7 +1438,7 @@ Note: values may be `undefined` (TreeMap allows storing `undefined`, like native
1367
1438
  static createDefaultComparator<K>(): Comparator<K>;
1368
1439
  ```
1369
1440
 
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)
1441
+ Defined in: [data-structures/binary-tree/tree-map.ts:87](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-map.ts#L87)
1371
1442
 
1372
1443
  Create the strict default comparator.
1373
1444