data-structure-typed 2.5.1 → 2.5.3
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.
- package/CHANGELOG.md +5 -1
- package/MIGRATION.md +169 -0
- package/README.md +135 -23
- package/README_CN.md +551 -143
- package/SPECIFICATION.md +20 -14
- package/SPECIFICATION.zh-CN.md +20 -14
- package/dist/cjs/binary-tree.cjs +6460 -1591
- package/dist/cjs/graph.cjs +440 -20
- package/dist/cjs/hash.cjs +125 -22
- package/dist/cjs/heap.cjs +196 -47
- package/dist/cjs/index.cjs +8486 -2429
- package/dist/cjs/linked-list.cjs +456 -31
- package/dist/cjs/matrix.cjs +79 -9
- package/dist/cjs/priority-queue.cjs +193 -44
- package/dist/cjs/queue.cjs +391 -2
- package/dist/cjs/stack.cjs +92 -6
- package/dist/cjs/trie.cjs +122 -28
- package/dist/cjs-legacy/binary-tree.cjs +6484 -1612
- package/dist/cjs-legacy/graph.cjs +440 -20
- package/dist/cjs-legacy/hash.cjs +125 -22
- package/dist/cjs-legacy/heap.cjs +196 -47
- package/dist/cjs-legacy/index.cjs +8654 -2594
- package/dist/cjs-legacy/linked-list.cjs +456 -31
- package/dist/cjs-legacy/matrix.cjs +79 -9
- package/dist/cjs-legacy/priority-queue.cjs +193 -44
- package/dist/cjs-legacy/queue.cjs +391 -2
- package/dist/cjs-legacy/stack.cjs +92 -6
- package/dist/cjs-legacy/trie.cjs +122 -28
- package/dist/esm/binary-tree.mjs +6460 -1591
- package/dist/esm/graph.mjs +440 -20
- package/dist/esm/hash.mjs +125 -22
- package/dist/esm/heap.mjs +196 -47
- package/dist/esm/index.mjs +8486 -2430
- package/dist/esm/linked-list.mjs +456 -31
- package/dist/esm/matrix.mjs +79 -9
- package/dist/esm/priority-queue.mjs +193 -44
- package/dist/esm/queue.mjs +391 -2
- package/dist/esm/stack.mjs +92 -6
- package/dist/esm/trie.mjs +122 -28
- package/dist/esm-legacy/binary-tree.mjs +6484 -1612
- package/dist/esm-legacy/graph.mjs +440 -20
- package/dist/esm-legacy/hash.mjs +125 -22
- package/dist/esm-legacy/heap.mjs +196 -47
- package/dist/esm-legacy/index.mjs +8654 -2595
- package/dist/esm-legacy/linked-list.mjs +456 -31
- package/dist/esm-legacy/matrix.mjs +79 -9
- package/dist/esm-legacy/priority-queue.mjs +193 -44
- package/dist/esm-legacy/queue.mjs +391 -2
- package/dist/esm-legacy/stack.mjs +92 -6
- package/dist/esm-legacy/trie.mjs +122 -28
- package/dist/types/common/error.d.ts +9 -0
- package/dist/types/common/index.d.ts +1 -1
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +98 -2
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +112 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +214 -13
- package/dist/types/data-structures/binary-tree/bst.d.ts +294 -3
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +155 -8
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +48 -0
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +1370 -323
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1329 -316
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +1116 -295
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +1330 -326
- package/dist/types/data-structures/graph/directed-graph.d.ts +80 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +72 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +95 -6
- package/dist/types/data-structures/heap/heap.d.ts +154 -12
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +143 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +121 -1
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +144 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +64 -0
- package/dist/types/data-structures/queue/deque.d.ts +142 -0
- package/dist/types/data-structures/queue/queue.d.ts +109 -0
- package/dist/types/data-structures/stack/stack.d.ts +82 -2
- package/dist/types/data-structures/trie/trie.d.ts +96 -0
- package/dist/types/interfaces/binary-tree.d.ts +2 -3
- package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
- package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
- package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
- package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
- package/dist/umd/data-structure-typed.js +8623 -2564
- package/dist/umd/data-structure-typed.min.js +5 -5
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +696 -194
- package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
- package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +71 -71
- package/docs-site-docusaurus/docs/api/classes/BST.md +639 -189
- package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
- package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +148 -160
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/Deque.md +105 -91
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +82 -82
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +104 -74
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +12 -12
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
- package/docs-site-docusaurus/docs/api/classes/HashMap.md +51 -51
- package/docs-site-docusaurus/docs/api/classes/Heap.md +96 -85
- package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
- package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +33 -33
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +50 -50
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +55 -55
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +55 -55
- package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +78 -78
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +82 -82
- package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
- package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/MinHeap.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
- package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +103 -88
- package/docs-site-docusaurus/docs/api/classes/Queue.md +112 -60
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +708 -206
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +79 -79
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +44 -44
- package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +236 -33
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +162 -46
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +232 -32
- package/docs-site-docusaurus/docs/api/classes/Trie.md +47 -47
- package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +81 -81
- package/docs-site-docusaurus/docs/guide/architecture.md +75 -5
- package/docs-site-docusaurus/docs/guide/concepts.md +53 -3
- package/docs-site-docusaurus/docs/guide/faq.md +233 -0
- package/docs-site-docusaurus/docs/guide/guides.md +43 -58
- package/docs-site-docusaurus/docs/guide/installation.md +2 -0
- package/docs-site-docusaurus/docs/guide/integrations.md +75 -176
- package/docs-site-docusaurus/docs/guide/overview.md +132 -11
- package/docs-site-docusaurus/docs/guide/performance.md +2 -0
- package/docs-site-docusaurus/docs/guide/quick-start.md +31 -0
- package/docs-site-docusaurus/docs/guide/use-cases/_category_.json +6 -0
- package/docs-site-docusaurus/docs/guide/use-cases/array-sort-alternative.md +158 -0
- package/docs-site-docusaurus/docs/guide/use-cases/heap-vs-sorting.md +92 -0
- package/docs-site-docusaurus/docs/guide/use-cases/map-vs-treemap.md +151 -0
- package/docs-site-docusaurus/docs/guide/use-cases/priority-queue-typescript.md +113 -0
- package/docs-site-docusaurus/docs/guide/use-cases/treemap-javascript.md +151 -0
- package/docs-site-docusaurus/docusaurus.config.ts +1 -1
- package/docs-site-docusaurus/src/pages/index.tsx +55 -2
- package/docs-site-docusaurus/static/llms.txt +37 -0
- package/docs-site-docusaurus/typedoc.json +1 -0
- package/llms.txt +37 -0
- package/package.json +65 -56
- package/src/common/error.ts +19 -1
- package/src/common/index.ts +1 -1
- package/src/data-structures/base/iterable-element-base.ts +3 -2
- package/src/data-structures/binary-tree/avl-tree.ts +99 -5
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +102 -4
- package/src/data-structures/binary-tree/binary-tree.ts +239 -78
- package/src/data-structures/binary-tree/bst.ts +542 -13
- package/src/data-structures/binary-tree/red-black-tree.ts +155 -15
- package/src/data-structures/binary-tree/segment-tree.ts +42 -0
- package/src/data-structures/binary-tree/tree-map.ts +1223 -261
- package/src/data-structures/binary-tree/tree-multi-map.ts +939 -30
- package/src/data-structures/binary-tree/tree-multi-set.ts +746 -10
- package/src/data-structures/binary-tree/tree-set.ts +1018 -99
- package/src/data-structures/graph/abstract-graph.ts +2 -2
- package/src/data-structures/graph/directed-graph.ts +71 -1
- package/src/data-structures/graph/undirected-graph.ts +64 -1
- package/src/data-structures/hash/hash-map.ts +102 -16
- package/src/data-structures/heap/heap.ts +153 -23
- package/src/data-structures/heap/max-heap.ts +2 -2
- package/src/data-structures/linked-list/doubly-linked-list.ts +139 -0
- package/src/data-structures/linked-list/singly-linked-list.ts +106 -1
- package/src/data-structures/linked-list/skip-linked-list.ts +131 -5
- package/src/data-structures/matrix/matrix.ts +65 -9
- package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
- package/src/data-structures/queue/deque.ts +130 -0
- package/src/data-structures/queue/queue.ts +109 -0
- package/src/data-structures/stack/stack.ts +75 -5
- package/src/data-structures/trie/trie.ts +86 -2
- package/src/interfaces/binary-tree.ts +1 -9
- package/src/types/data-structures/binary-tree/bst.ts +1 -0
- package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
- package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
- package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +0 -12984
- package/.vitepress/cache/deps_temp_51f5f1b0/package.json +0 -3
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +0 -4505
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +0 -9731
- 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/
|
|
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/
|
|
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/
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
|
@@ -535,7 +565,7 @@ Note: callback value may be `undefined`.
|
|
|
535
565
|
|
|
536
566
|
##### thisArg?
|
|
537
567
|
|
|
538
|
-
`
|
|
568
|
+
`unknown`
|
|
539
569
|
|
|
540
570
|
#### Returns
|
|
541
571
|
|
|
@@ -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:
|
|
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
|
|
|
@@ -596,13 +626,95 @@ Expected time O(log n)
|
|
|
596
626
|
|
|
597
627
|
***
|
|
598
628
|
|
|
629
|
+
### getByRank()
|
|
630
|
+
|
|
631
|
+
```ts
|
|
632
|
+
getByRank(k): [K, V | undefined] | undefined;
|
|
633
|
+
```
|
|
634
|
+
|
|
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)
|
|
636
|
+
|
|
637
|
+
Returns the entry at the k-th position in tree order (0-indexed).
|
|
638
|
+
|
|
639
|
+
#### Parameters
|
|
640
|
+
|
|
641
|
+
##### k
|
|
642
|
+
|
|
643
|
+
`number`
|
|
644
|
+
|
|
645
|
+
#### Returns
|
|
646
|
+
|
|
647
|
+
\[`K`, `V` \| `undefined`\] \| `undefined`
|
|
648
|
+
|
|
649
|
+
#### Remarks
|
|
650
|
+
|
|
651
|
+
Time O(log n). Requires `enableOrderStatistic: true`.
|
|
652
|
+
|
|
653
|
+
*
|
|
654
|
+
|
|
655
|
+
#### Example
|
|
656
|
+
|
|
657
|
+
```ts
|
|
658
|
+
// Find k-th entry in a TreeMap
|
|
659
|
+
const map = new TreeMap<string, number>(
|
|
660
|
+
[['alice', 95], ['bob', 87], ['charlie', 92]],
|
|
661
|
+
{ enableOrderStatistic: true }
|
|
662
|
+
);
|
|
663
|
+
console.log(map.getByRank(0)); // 'alice';
|
|
664
|
+
console.log(map.getByRank(1)); // 'bob';
|
|
665
|
+
console.log(map.getByRank(2)); // 'charlie';
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
***
|
|
669
|
+
|
|
670
|
+
### getRank()
|
|
671
|
+
|
|
672
|
+
```ts
|
|
673
|
+
getRank(key): number;
|
|
674
|
+
```
|
|
675
|
+
|
|
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)
|
|
677
|
+
|
|
678
|
+
Returns the 0-based rank of a key (number of elements that precede it in tree order).
|
|
679
|
+
|
|
680
|
+
#### Parameters
|
|
681
|
+
|
|
682
|
+
##### key
|
|
683
|
+
|
|
684
|
+
`K`
|
|
685
|
+
|
|
686
|
+
#### Returns
|
|
687
|
+
|
|
688
|
+
`number`
|
|
689
|
+
|
|
690
|
+
#### Remarks
|
|
691
|
+
|
|
692
|
+
Time O(log n). Requires `enableOrderStatistic: true`.
|
|
693
|
+
*
|
|
694
|
+
|
|
695
|
+
#### Example
|
|
696
|
+
|
|
697
|
+
```ts
|
|
698
|
+
// Get the rank of a key in sorted order
|
|
699
|
+
const tree = new TreeMap<number>(
|
|
700
|
+
[10, 20, 30, 40, 50],
|
|
701
|
+
{ enableOrderStatistic: true }
|
|
702
|
+
);
|
|
703
|
+
console.log(tree.getRank(10)); // 0; // smallest → rank 0
|
|
704
|
+
console.log(tree.getRank(30)); // 2; // 2 elements before 30 in tree order
|
|
705
|
+
console.log(tree.getRank(50)); // 4; // largest → rank 4
|
|
706
|
+
console.log(tree.getRank(25)); // 2;
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
***
|
|
710
|
+
|
|
599
711
|
### has()
|
|
600
712
|
|
|
601
713
|
```ts
|
|
602
714
|
has(key): boolean;
|
|
603
715
|
```
|
|
604
716
|
|
|
605
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
606
718
|
|
|
607
719
|
Test whether a key exists.
|
|
608
720
|
|
|
@@ -644,7 +756,7 @@ Expected time O(log n)
|
|
|
644
756
|
higher(key): [K, V | undefined] | undefined;
|
|
645
757
|
```
|
|
646
758
|
|
|
647
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
648
760
|
|
|
649
761
|
Smallest entry whose key is > the given key.
|
|
650
762
|
|
|
@@ -687,7 +799,7 @@ Smallest entry whose key is > the given key.
|
|
|
687
799
|
isEmpty(): boolean;
|
|
688
800
|
```
|
|
689
801
|
|
|
690
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
691
803
|
|
|
692
804
|
Whether the map is empty.
|
|
693
805
|
|
|
@@ -712,7 +824,7 @@ Whether the map is empty.
|
|
|
712
824
|
keys(): IterableIterator<K>;
|
|
713
825
|
```
|
|
714
826
|
|
|
715
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
716
828
|
|
|
717
829
|
Iterate over keys in ascending order.
|
|
718
830
|
|
|
@@ -738,7 +850,7 @@ Iterate over keys in ascending order.
|
|
|
738
850
|
last(): [K, V | undefined] | undefined;
|
|
739
851
|
```
|
|
740
852
|
|
|
741
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
742
854
|
|
|
743
855
|
Largest entry by key.
|
|
744
856
|
|
|
@@ -770,7 +882,7 @@ Largest entry by key.
|
|
|
770
882
|
lower(key): [K, V | undefined] | undefined;
|
|
771
883
|
```
|
|
772
884
|
|
|
773
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
774
886
|
|
|
775
887
|
Largest entry whose key is < the given key.
|
|
776
888
|
|
|
@@ -814,7 +926,7 @@ map<MK, MV>(
|
|
|
814
926
|
thisArg?): TreeMap<MK, MV>;
|
|
815
927
|
```
|
|
816
928
|
|
|
817
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
818
930
|
|
|
819
931
|
Create a new TreeMap by mapping each entry to a new `[key, value]` entry.
|
|
820
932
|
|
|
@@ -871,7 +983,7 @@ Time O(n log n) expected, Space O(n)
|
|
|
871
983
|
pollFirst(): [K, V | undefined] | undefined;
|
|
872
984
|
```
|
|
873
985
|
|
|
874
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
875
987
|
|
|
876
988
|
Remove and return the smallest entry.
|
|
877
989
|
|
|
@@ -905,7 +1017,7 @@ Remove and return the smallest entry.
|
|
|
905
1017
|
pollLast(): [K, V | undefined] | undefined;
|
|
906
1018
|
```
|
|
907
1019
|
|
|
908
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
909
1021
|
|
|
910
1022
|
Remove and return the largest entry.
|
|
911
1023
|
|
|
@@ -939,7 +1051,7 @@ Remove and return the largest entry.
|
|
|
939
1051
|
print(): void;
|
|
940
1052
|
```
|
|
941
1053
|
|
|
942
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
943
1055
|
|
|
944
1056
|
Print a human-friendly representation.
|
|
945
1057
|
|
|
@@ -963,13 +1075,63 @@ Time O(n), Space O(n)
|
|
|
963
1075
|
|
|
964
1076
|
***
|
|
965
1077
|
|
|
1078
|
+
### rangeByRank()
|
|
1079
|
+
|
|
1080
|
+
```ts
|
|
1081
|
+
rangeByRank(start, end): [K, V | undefined][];
|
|
1082
|
+
```
|
|
1083
|
+
|
|
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)
|
|
1085
|
+
|
|
1086
|
+
Returns keys by rank range (0-indexed, inclusive on both ends).
|
|
1087
|
+
|
|
1088
|
+
#### Parameters
|
|
1089
|
+
|
|
1090
|
+
##### start
|
|
1091
|
+
|
|
1092
|
+
`number`
|
|
1093
|
+
|
|
1094
|
+
##### end
|
|
1095
|
+
|
|
1096
|
+
`number`
|
|
1097
|
+
|
|
1098
|
+
#### Returns
|
|
1099
|
+
|
|
1100
|
+
\[`K`, `V` \| `undefined`\][]
|
|
1101
|
+
|
|
1102
|
+
#### Remarks
|
|
1103
|
+
|
|
1104
|
+
Time O(log n + k). Requires `enableOrderStatistic: true`.
|
|
1105
|
+
|
|
1106
|
+
*
|
|
1107
|
+
|
|
1108
|
+
#### Example
|
|
1109
|
+
|
|
1110
|
+
```ts
|
|
1111
|
+
// Pagination by position in tree order
|
|
1112
|
+
const tree = new TreeMap<number>(
|
|
1113
|
+
[10, 20, 30, 40, 50, 60, 70, 80, 90],
|
|
1114
|
+
{ enableOrderStatistic: true }
|
|
1115
|
+
);
|
|
1116
|
+
const pageSize = 3;
|
|
1117
|
+
|
|
1118
|
+
// Page 1
|
|
1119
|
+
console.log(tree.rangeByRank(0, pageSize - 1)); // [10, 20, 30];
|
|
1120
|
+
// Page 2
|
|
1121
|
+
console.log(tree.rangeByRank(pageSize, 2 * pageSize - 1)); // [40, 50, 60];
|
|
1122
|
+
// Page 3
|
|
1123
|
+
console.log(tree.rangeByRank(2 * pageSize, 3 * pageSize - 1)); // [70, 80, 90];
|
|
1124
|
+
```
|
|
1125
|
+
|
|
1126
|
+
***
|
|
1127
|
+
|
|
966
1128
|
### rangeSearch()
|
|
967
1129
|
|
|
968
1130
|
```ts
|
|
969
1131
|
rangeSearch(range, options?): [K, V | undefined][];
|
|
970
1132
|
```
|
|
971
1133
|
|
|
972
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
973
1135
|
|
|
974
1136
|
Return all entries in a given key range.
|
|
975
1137
|
|
|
@@ -1035,7 +1197,7 @@ Inclusive/exclusive bounds (defaults to inclusive).
|
|
|
1035
1197
|
reduce<A>(callbackfn, initialValue): A;
|
|
1036
1198
|
```
|
|
1037
1199
|
|
|
1038
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
1039
1201
|
|
|
1040
1202
|
Reduce entries into a single accumulator.
|
|
1041
1203
|
|
|
@@ -1081,7 +1243,7 @@ Time O(n), Space O(1)
|
|
|
1081
1243
|
set(key, value): this;
|
|
1082
1244
|
```
|
|
1083
1245
|
|
|
1084
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
1085
1247
|
|
|
1086
1248
|
Set or overwrite a value for a key.
|
|
1087
1249
|
|
|
@@ -1131,13 +1293,54 @@ Expected time O(log n)
|
|
|
1131
1293
|
|
|
1132
1294
|
***
|
|
1133
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
|
+
|
|
1134
1337
|
### some()
|
|
1135
1338
|
|
|
1136
1339
|
```ts
|
|
1137
1340
|
some(callbackfn, thisArg?): boolean;
|
|
1138
1341
|
```
|
|
1139
1342
|
|
|
1140
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
1141
1344
|
|
|
1142
1345
|
Test whether any entry satisfies a predicate.
|
|
1143
1346
|
|
|
@@ -1177,7 +1380,7 @@ Time O(n), Space O(1)
|
|
|
1177
1380
|
toArray(): [K, V | undefined][];
|
|
1178
1381
|
```
|
|
1179
1382
|
|
|
1180
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
1181
1384
|
|
|
1182
1385
|
Materialize the map into an array of `[key, value]` tuples.
|
|
1183
1386
|
|
|
@@ -1207,7 +1410,7 @@ Time O(n), Space O(n)
|
|
|
1207
1410
|
values(): IterableIterator<V | undefined>;
|
|
1208
1411
|
```
|
|
1209
1412
|
|
|
1210
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
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)
|
|
1211
1414
|
|
|
1212
1415
|
Iterate over values in ascending key order.
|
|
1213
1416
|
|
|
@@ -1235,7 +1438,7 @@ Note: values may be `undefined` (TreeMap allows storing `undefined`, like native
|
|
|
1235
1438
|
static createDefaultComparator<K>(): Comparator<K>;
|
|
1236
1439
|
```
|
|
1237
1440
|
|
|
1238
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:87](https://github.com/zrwusa/data-structure-typed/blob/
|
|
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)
|
|
1239
1442
|
|
|
1240
1443
|
Create the strict default comparator.
|
|
1241
1444
|
|