data-structure-typed 2.5.1 → 2.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -1
- package/README.md +75 -17
- package/dist/cjs/binary-tree.cjs +2723 -139
- package/dist/cjs/graph.cjs +192 -6
- package/dist/cjs/hash.cjs +63 -15
- package/dist/cjs/heap.cjs +93 -31
- package/dist/cjs/index.cjs +3514 -379
- package/dist/cjs/linked-list.cjs +237 -31
- package/dist/cjs/matrix.cjs +47 -9
- package/dist/cjs/priority-queue.cjs +92 -30
- package/dist/cjs/queue.cjs +176 -2
- package/dist/cjs/stack.cjs +48 -2
- package/dist/cjs/trie.cjs +78 -28
- package/dist/cjs-legacy/binary-tree.cjs +2725 -136
- package/dist/cjs-legacy/graph.cjs +192 -6
- package/dist/cjs-legacy/hash.cjs +63 -15
- package/dist/cjs-legacy/heap.cjs +93 -31
- package/dist/cjs-legacy/index.cjs +3389 -249
- package/dist/cjs-legacy/linked-list.cjs +237 -31
- package/dist/cjs-legacy/matrix.cjs +47 -9
- package/dist/cjs-legacy/priority-queue.cjs +92 -30
- package/dist/cjs-legacy/queue.cjs +176 -2
- package/dist/cjs-legacy/stack.cjs +48 -2
- package/dist/cjs-legacy/trie.cjs +78 -28
- package/dist/esm/binary-tree.mjs +2723 -139
- package/dist/esm/graph.mjs +192 -6
- package/dist/esm/hash.mjs +63 -15
- package/dist/esm/heap.mjs +93 -31
- package/dist/esm/index.mjs +3514 -380
- package/dist/esm/linked-list.mjs +237 -31
- package/dist/esm/matrix.mjs +47 -9
- package/dist/esm/priority-queue.mjs +92 -30
- package/dist/esm/queue.mjs +176 -2
- package/dist/esm/stack.mjs +48 -2
- package/dist/esm/trie.mjs +78 -28
- package/dist/esm-legacy/binary-tree.mjs +2725 -136
- package/dist/esm-legacy/graph.mjs +192 -6
- package/dist/esm-legacy/hash.mjs +63 -15
- package/dist/esm-legacy/heap.mjs +93 -31
- package/dist/esm-legacy/index.mjs +3389 -250
- package/dist/esm-legacy/linked-list.mjs +237 -31
- package/dist/esm-legacy/matrix.mjs +47 -9
- package/dist/esm-legacy/priority-queue.mjs +92 -30
- package/dist/esm-legacy/queue.mjs +176 -2
- package/dist/esm-legacy/stack.mjs +48 -2
- package/dist/esm-legacy/trie.mjs +78 -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 +48 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +102 -2
- package/dist/types/data-structures/binary-tree/bst.d.ts +195 -0
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +76 -0
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +528 -0
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +531 -6
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +435 -6
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +505 -0
- package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +44 -0
- package/dist/types/data-structures/heap/heap.d.ts +56 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +68 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +60 -0
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
- package/dist/types/data-structures/queue/deque.d.ts +60 -0
- package/dist/types/data-structures/queue/queue.d.ts +48 -0
- package/dist/types/data-structures/stack/stack.d.ts +40 -0
- package/dist/types/data-structures/trie/trie.d.ts +48 -0
- 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 +3404 -265
- package/dist/umd/data-structure-typed.min.js +5 -5
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +650 -136
- 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 +591 -129
- 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 +107 -107
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/Deque.md +82 -82
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +82 -82
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +74 -74
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +9 -9
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
- package/docs-site-docusaurus/docs/api/classes/HashMap.md +47 -47
- package/docs-site-docusaurus/docs/api/classes/Heap.md +45 -45
- 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 +49 -49
- 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 +45 -45
- package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +45 -45
- package/docs-site-docusaurus/docs/api/classes/MinHeap.md +45 -45
- package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +45 -45
- package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
- package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +44 -44
- package/docs-site-docusaurus/docs/api/classes/Queue.md +60 -60
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +660 -146
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +78 -78
- 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 +39 -39
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +165 -33
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +162 -46
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +161 -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 +2 -0
- package/docs-site-docusaurus/docs/guide/concepts.md +32 -1
- package/docs-site-docusaurus/docs/guide/faq.md +180 -0
- package/docs-site-docusaurus/docs/guide/guides.md +40 -54
- package/docs-site-docusaurus/docs/guide/installation.md +2 -0
- package/docs-site-docusaurus/docs/guide/integrations.md +2 -0
- package/docs-site-docusaurus/docs/guide/overview.md +7 -0
- 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 +51 -2
- package/docs-site-docusaurus/static/llms.txt +37 -0
- package/llms.txt +37 -0
- package/package.json +64 -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 +47 -0
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +46 -4
- package/src/data-structures/binary-tree/binary-tree.ts +79 -4
- package/src/data-structures/binary-tree/bst.ts +441 -6
- package/src/data-structures/binary-tree/red-black-tree.ts +73 -0
- package/src/data-structures/binary-tree/segment-tree.ts +18 -0
- package/src/data-structures/binary-tree/tree-map.ts +434 -9
- package/src/data-structures/binary-tree/tree-multi-map.ts +426 -5
- package/src/data-structures/binary-tree/tree-multi-set.ts +350 -6
- package/src/data-structures/binary-tree/tree-set.ts +410 -8
- package/src/data-structures/graph/abstract-graph.ts +2 -2
- package/src/data-structures/graph/directed-graph.ts +30 -0
- package/src/data-structures/graph/undirected-graph.ts +27 -0
- package/src/data-structures/hash/hash-map.ts +35 -4
- package/src/data-structures/heap/heap.ts +46 -4
- package/src/data-structures/heap/max-heap.ts +2 -2
- package/src/data-structures/linked-list/doubly-linked-list.ts +51 -0
- package/src/data-structures/linked-list/singly-linked-list.ts +45 -0
- package/src/data-structures/linked-list/skip-linked-list.ts +59 -5
- package/src/data-structures/matrix/matrix.ts +33 -9
- package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
- package/src/data-structures/queue/deque.ts +45 -0
- package/src/data-structures/queue/queue.ts +36 -0
- package/src/data-structures/stack/stack.ts +30 -0
- package/src/data-structures/trie/trie.ts +38 -2
- 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
|
@@ -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/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L26)
|
|
10
10
|
|
|
11
11
|
An ordered Map backed by a red-black tree.
|
|
12
12
|
|
|
@@ -48,7 +48,7 @@ An ordered Map backed by a red-black tree.
|
|
|
48
48
|
new TreeMap<K, V, R>(entries?, options?): TreeMap<K, V, R>;
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:46](https://github.com/zrwusa/data-structure-typed/blob/
|
|
51
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:46](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L46)
|
|
52
52
|
|
|
53
53
|
Create a TreeMap from an iterable of `[key, value]` entries or raw elements.
|
|
54
54
|
|
|
@@ -97,7 +97,7 @@ const map = new TreeMap<number, User, User>(users, { toEntryFn: u => [u.id, u] }
|
|
|
97
97
|
get size(): number;
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:134](https://github.com/zrwusa/data-structure-typed/blob/
|
|
100
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:134](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L134)
|
|
101
101
|
|
|
102
102
|
Number of entries in the map.
|
|
103
103
|
|
|
@@ -113,7 +113,7 @@ Number of entries in the map.
|
|
|
113
113
|
ceiling(key): [K, V | undefined] | undefined;
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
116
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:3747](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3747)
|
|
117
117
|
|
|
118
118
|
Smallest entry whose key is >= the given key.
|
|
119
119
|
|
|
@@ -172,7 +172,7 @@ Smallest entry whose key is >= the given key.
|
|
|
172
172
|
clear(): void;
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
175
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:1238](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1238)
|
|
176
176
|
|
|
177
177
|
Remove all entries.
|
|
178
178
|
|
|
@@ -199,7 +199,7 @@ Remove all entries.
|
|
|
199
199
|
clone(): TreeMap<K, V>;
|
|
200
200
|
```
|
|
201
201
|
|
|
202
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
202
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:4652](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4652)
|
|
203
203
|
|
|
204
204
|
Creates a shallow clone of this map.
|
|
205
205
|
|
|
@@ -231,7 +231,7 @@ Time O(n log n), Space O(n)
|
|
|
231
231
|
delete(key): boolean;
|
|
232
232
|
```
|
|
233
233
|
|
|
234
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
234
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:1066](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1066)
|
|
235
235
|
|
|
236
236
|
Delete a key.
|
|
237
237
|
|
|
@@ -277,7 +277,7 @@ Expected time O(log n)
|
|
|
277
277
|
entries(): IterableIterator<[K, V | undefined]>;
|
|
278
278
|
```
|
|
279
279
|
|
|
280
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
280
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:1755](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1755)
|
|
281
281
|
|
|
282
282
|
Iterate over `[key, value]` entries in ascending key order.
|
|
283
283
|
|
|
@@ -305,7 +305,7 @@ Note: values may be `undefined`.
|
|
|
305
305
|
every(callbackfn, thisArg?): boolean;
|
|
306
306
|
```
|
|
307
307
|
|
|
308
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
308
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:2637](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2637)
|
|
309
309
|
|
|
310
310
|
Test whether all entries satisfy a predicate.
|
|
311
311
|
|
|
@@ -345,7 +345,7 @@ Time O(n), Space O(1)
|
|
|
345
345
|
filter(callbackfn, thisArg?): TreeMap<K, V>;
|
|
346
346
|
```
|
|
347
347
|
|
|
348
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
348
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:2288](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2288)
|
|
349
349
|
|
|
350
350
|
Create a new TreeMap containing only entries that satisfy the predicate.
|
|
351
351
|
|
|
@@ -386,7 +386,7 @@ Time O(n log n) expected, Space O(n)
|
|
|
386
386
|
find(callbackfn, thisArg?): [K, V | undefined] | undefined;
|
|
387
387
|
```
|
|
388
388
|
|
|
389
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
389
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:2988](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2988)
|
|
390
390
|
|
|
391
391
|
Find the first entry that satisfies a predicate.
|
|
392
392
|
|
|
@@ -428,7 +428,7 @@ Time O(n), Space O(1)
|
|
|
428
428
|
first(): [K, V | undefined] | undefined;
|
|
429
429
|
```
|
|
430
430
|
|
|
431
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
431
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:3407](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3407)
|
|
432
432
|
|
|
433
433
|
Smallest entry by key.
|
|
434
434
|
|
|
@@ -476,7 +476,7 @@ Smallest entry by key.
|
|
|
476
476
|
floor(key): [K, V | undefined] | undefined;
|
|
477
477
|
```
|
|
478
478
|
|
|
479
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
479
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:3905](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3905)
|
|
480
480
|
|
|
481
481
|
Largest entry whose key is <= the given key.
|
|
482
482
|
|
|
@@ -519,7 +519,7 @@ Largest entry whose key is <= the given key.
|
|
|
519
519
|
forEach(cb, thisArg?): void;
|
|
520
520
|
```
|
|
521
521
|
|
|
522
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
522
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:1932](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1932)
|
|
523
523
|
|
|
524
524
|
Visit each entry in ascending key order.
|
|
525
525
|
|
|
@@ -535,7 +535,7 @@ Note: callback value may be `undefined`.
|
|
|
535
535
|
|
|
536
536
|
##### thisArg?
|
|
537
537
|
|
|
538
|
-
`
|
|
538
|
+
`unknown`
|
|
539
539
|
|
|
540
540
|
#### Returns
|
|
541
541
|
|
|
@@ -559,7 +559,7 @@ Note: callback value may be `undefined`.
|
|
|
559
559
|
get(key): V | undefined;
|
|
560
560
|
```
|
|
561
561
|
|
|
562
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
562
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:687](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L687)
|
|
563
563
|
|
|
564
564
|
Get the value under a key.
|
|
565
565
|
|
|
@@ -596,13 +596,95 @@ Expected time O(log n)
|
|
|
596
596
|
|
|
597
597
|
***
|
|
598
598
|
|
|
599
|
+
### getByRank()
|
|
600
|
+
|
|
601
|
+
```ts
|
|
602
|
+
getByRank(k): [K, V | undefined] | undefined;
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:4433](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4433)
|
|
606
|
+
|
|
607
|
+
Returns the entry at the k-th position in tree order (0-indexed).
|
|
608
|
+
|
|
609
|
+
#### Parameters
|
|
610
|
+
|
|
611
|
+
##### k
|
|
612
|
+
|
|
613
|
+
`number`
|
|
614
|
+
|
|
615
|
+
#### Returns
|
|
616
|
+
|
|
617
|
+
\[`K`, `V` \| `undefined`\] \| `undefined`
|
|
618
|
+
|
|
619
|
+
#### Remarks
|
|
620
|
+
|
|
621
|
+
Time O(log n). Requires `enableOrderStatistic: true`.
|
|
622
|
+
|
|
623
|
+
*
|
|
624
|
+
|
|
625
|
+
#### Example
|
|
626
|
+
|
|
627
|
+
```ts
|
|
628
|
+
// Find k-th entry in a TreeMap
|
|
629
|
+
const map = new TreeMap<string, number>(
|
|
630
|
+
[['alice', 95], ['bob', 87], ['charlie', 92]],
|
|
631
|
+
{ enableOrderStatistic: true }
|
|
632
|
+
);
|
|
633
|
+
console.log(map.getByRank(0)); // 'alice';
|
|
634
|
+
console.log(map.getByRank(1)); // 'bob';
|
|
635
|
+
console.log(map.getByRank(2)); // 'charlie';
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
***
|
|
639
|
+
|
|
640
|
+
### getRank()
|
|
641
|
+
|
|
642
|
+
```ts
|
|
643
|
+
getRank(key): number;
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:4453](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4453)
|
|
647
|
+
|
|
648
|
+
Returns the 0-based rank of a key (number of elements that precede it in tree order).
|
|
649
|
+
|
|
650
|
+
#### Parameters
|
|
651
|
+
|
|
652
|
+
##### key
|
|
653
|
+
|
|
654
|
+
`K`
|
|
655
|
+
|
|
656
|
+
#### Returns
|
|
657
|
+
|
|
658
|
+
`number`
|
|
659
|
+
|
|
660
|
+
#### Remarks
|
|
661
|
+
|
|
662
|
+
Time O(log n). Requires `enableOrderStatistic: true`.
|
|
663
|
+
*
|
|
664
|
+
|
|
665
|
+
#### Example
|
|
666
|
+
|
|
667
|
+
```ts
|
|
668
|
+
// Get the rank of a key in sorted order
|
|
669
|
+
const tree = new TreeMap<number>(
|
|
670
|
+
[10, 20, 30, 40, 50],
|
|
671
|
+
{ enableOrderStatistic: true }
|
|
672
|
+
);
|
|
673
|
+
console.log(tree.getRank(10)); // 0; // smallest → rank 0
|
|
674
|
+
console.log(tree.getRank(30)); // 2; // 2 elements before 30 in tree order
|
|
675
|
+
console.log(tree.getRank(50)); // 4; // largest → rank 4
|
|
676
|
+
console.log(tree.getRank(25)); // 2;
|
|
677
|
+
```
|
|
678
|
+
|
|
679
|
+
***
|
|
680
|
+
|
|
599
681
|
### has()
|
|
600
682
|
|
|
601
683
|
```ts
|
|
602
684
|
has(key): boolean;
|
|
603
685
|
```
|
|
604
686
|
|
|
605
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
687
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:875](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L875)
|
|
606
688
|
|
|
607
689
|
Test whether a key exists.
|
|
608
690
|
|
|
@@ -644,7 +726,7 @@ Expected time O(log n)
|
|
|
644
726
|
higher(key): [K, V | undefined] | undefined;
|
|
645
727
|
```
|
|
646
728
|
|
|
647
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
729
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:4063](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4063)
|
|
648
730
|
|
|
649
731
|
Smallest entry whose key is > the given key.
|
|
650
732
|
|
|
@@ -687,7 +769,7 @@ Smallest entry whose key is > the given key.
|
|
|
687
769
|
isEmpty(): boolean;
|
|
688
770
|
```
|
|
689
771
|
|
|
690
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
772
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:302](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L302)
|
|
691
773
|
|
|
692
774
|
Whether the map is empty.
|
|
693
775
|
|
|
@@ -712,7 +794,7 @@ Whether the map is empty.
|
|
|
712
794
|
keys(): IterableIterator<K>;
|
|
713
795
|
```
|
|
714
796
|
|
|
715
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
797
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:1407](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1407)
|
|
716
798
|
|
|
717
799
|
Iterate over keys in ascending order.
|
|
718
800
|
|
|
@@ -738,7 +820,7 @@ Iterate over keys in ascending order.
|
|
|
738
820
|
last(): [K, V | undefined] | undefined;
|
|
739
821
|
```
|
|
740
822
|
|
|
741
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
823
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:3460](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3460)
|
|
742
824
|
|
|
743
825
|
Largest entry by key.
|
|
744
826
|
|
|
@@ -770,7 +852,7 @@ Largest entry by key.
|
|
|
770
852
|
lower(key): [K, V | undefined] | undefined;
|
|
771
853
|
```
|
|
772
854
|
|
|
773
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
855
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:4219](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4219)
|
|
774
856
|
|
|
775
857
|
Largest entry whose key is < the given key.
|
|
776
858
|
|
|
@@ -814,7 +896,7 @@ map<MK, MV>(
|
|
|
814
896
|
thisArg?): TreeMap<MK, MV>;
|
|
815
897
|
```
|
|
816
898
|
|
|
817
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
899
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:2105](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2105)
|
|
818
900
|
|
|
819
901
|
Create a new TreeMap by mapping each entry to a new `[key, value]` entry.
|
|
820
902
|
|
|
@@ -871,7 +953,7 @@ Time O(n log n) expected, Space O(n)
|
|
|
871
953
|
pollFirst(): [K, V | undefined] | undefined;
|
|
872
954
|
```
|
|
873
955
|
|
|
874
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
956
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:3515](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3515)
|
|
875
957
|
|
|
876
958
|
Remove and return the smallest entry.
|
|
877
959
|
|
|
@@ -905,7 +987,7 @@ Remove and return the smallest entry.
|
|
|
905
987
|
pollLast(): [K, V | undefined] | undefined;
|
|
906
988
|
```
|
|
907
989
|
|
|
908
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
990
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:3572](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3572)
|
|
909
991
|
|
|
910
992
|
Remove and return the largest entry.
|
|
911
993
|
|
|
@@ -939,7 +1021,7 @@ Remove and return the largest entry.
|
|
|
939
1021
|
print(): void;
|
|
940
1022
|
```
|
|
941
1023
|
|
|
942
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
1024
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:3335](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3335)
|
|
943
1025
|
|
|
944
1026
|
Print a human-friendly representation.
|
|
945
1027
|
|
|
@@ -963,13 +1045,63 @@ Time O(n), Space O(n)
|
|
|
963
1045
|
|
|
964
1046
|
***
|
|
965
1047
|
|
|
1048
|
+
### rangeByRank()
|
|
1049
|
+
|
|
1050
|
+
```ts
|
|
1051
|
+
rangeByRank(start, end): [K, V | undefined][];
|
|
1052
|
+
```
|
|
1053
|
+
|
|
1054
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:4476](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4476)
|
|
1055
|
+
|
|
1056
|
+
Returns keys by rank range (0-indexed, inclusive on both ends).
|
|
1057
|
+
|
|
1058
|
+
#### Parameters
|
|
1059
|
+
|
|
1060
|
+
##### start
|
|
1061
|
+
|
|
1062
|
+
`number`
|
|
1063
|
+
|
|
1064
|
+
##### end
|
|
1065
|
+
|
|
1066
|
+
`number`
|
|
1067
|
+
|
|
1068
|
+
#### Returns
|
|
1069
|
+
|
|
1070
|
+
\[`K`, `V` \| `undefined`\][]
|
|
1071
|
+
|
|
1072
|
+
#### Remarks
|
|
1073
|
+
|
|
1074
|
+
Time O(log n + k). Requires `enableOrderStatistic: true`.
|
|
1075
|
+
|
|
1076
|
+
*
|
|
1077
|
+
|
|
1078
|
+
#### Example
|
|
1079
|
+
|
|
1080
|
+
```ts
|
|
1081
|
+
// Pagination with rangeByRank
|
|
1082
|
+
const tree = new TreeMap<number>(
|
|
1083
|
+
[10, 20, 30, 40, 50, 60, 70, 80, 90],
|
|
1084
|
+
{ enableOrderStatistic: true }
|
|
1085
|
+
);
|
|
1086
|
+
const pageSize = 3;
|
|
1087
|
+
|
|
1088
|
+
// Page 1
|
|
1089
|
+
console.log(tree.rangeByRank(0, pageSize - 1)); // [10, 20, 30];
|
|
1090
|
+
// Page 2
|
|
1091
|
+
console.log(tree.rangeByRank(pageSize, 2 * pageSize - 1)); // [40, 50, 60];
|
|
1092
|
+
// Page 3
|
|
1093
|
+
console.log(tree.rangeByRank(2 * pageSize, 3 * pageSize - 1)); // [70, 80, 90];
|
|
1094
|
+
```
|
|
1095
|
+
|
|
1096
|
+
***
|
|
1097
|
+
|
|
966
1098
|
### rangeSearch()
|
|
967
1099
|
|
|
968
1100
|
```ts
|
|
969
1101
|
rangeSearch(range, options?): [K, V | undefined][];
|
|
970
1102
|
```
|
|
971
1103
|
|
|
972
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
1104
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:4395](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L4395)
|
|
973
1105
|
|
|
974
1106
|
Return all entries in a given key range.
|
|
975
1107
|
|
|
@@ -1035,7 +1167,7 @@ Inclusive/exclusive bounds (defaults to inclusive).
|
|
|
1035
1167
|
reduce<A>(callbackfn, initialValue): A;
|
|
1036
1168
|
```
|
|
1037
1169
|
|
|
1038
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
1170
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:2466](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2466)
|
|
1039
1171
|
|
|
1040
1172
|
Reduce entries into a single accumulator.
|
|
1041
1173
|
|
|
@@ -1081,7 +1213,7 @@ Time O(n), Space O(1)
|
|
|
1081
1213
|
set(key, value): this;
|
|
1082
1214
|
```
|
|
1083
1215
|
|
|
1084
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
1216
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:497](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L497)
|
|
1085
1217
|
|
|
1086
1218
|
Set or overwrite a value for a key.
|
|
1087
1219
|
|
|
@@ -1137,7 +1269,7 @@ Expected time O(log n)
|
|
|
1137
1269
|
some(callbackfn, thisArg?): boolean;
|
|
1138
1270
|
```
|
|
1139
1271
|
|
|
1140
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
1272
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:2812](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L2812)
|
|
1141
1273
|
|
|
1142
1274
|
Test whether any entry satisfies a predicate.
|
|
1143
1275
|
|
|
@@ -1177,7 +1309,7 @@ Time O(n), Space O(1)
|
|
|
1177
1309
|
toArray(): [K, V | undefined][];
|
|
1178
1310
|
```
|
|
1179
1311
|
|
|
1180
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
1312
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:3165](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L3165)
|
|
1181
1313
|
|
|
1182
1314
|
Materialize the map into an array of `[key, value]` tuples.
|
|
1183
1315
|
|
|
@@ -1207,7 +1339,7 @@ Time O(n), Space O(n)
|
|
|
1207
1339
|
values(): IterableIterator<V | undefined>;
|
|
1208
1340
|
```
|
|
1209
1341
|
|
|
1210
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:
|
|
1342
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:1584](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L1584)
|
|
1211
1343
|
|
|
1212
1344
|
Iterate over values in ascending key order.
|
|
1213
1345
|
|
|
@@ -1235,7 +1367,7 @@ Note: values may be `undefined` (TreeMap allows storing `undefined`, like native
|
|
|
1235
1367
|
static createDefaultComparator<K>(): Comparator<K>;
|
|
1236
1368
|
```
|
|
1237
1369
|
|
|
1238
|
-
Defined in: [data-structures/binary-tree/tree-map.ts:87](https://github.com/zrwusa/data-structure-typed/blob/
|
|
1370
|
+
Defined in: [data-structures/binary-tree/tree-map.ts:87](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-map.ts#L87)
|
|
1239
1371
|
|
|
1240
1372
|
Create the strict default comparator.
|
|
1241
1373
|
|