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: TreeSet\<K, R\>
|
|
8
8
|
|
|
9
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:26](https://github.com/zrwusa/data-structure-typed/blob/
|
|
9
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:26](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L26)
|
|
10
10
|
|
|
11
11
|
An ordered Set backed by a red-black tree.
|
|
12
12
|
|
|
@@ -44,7 +44,7 @@ An ordered Set backed by a red-black tree.
|
|
|
44
44
|
new TreeSet<K, R>(elements?, options?): TreeSet<K, R>;
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:46](https://github.com/zrwusa/data-structure-typed/blob/
|
|
47
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:46](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L46)
|
|
48
48
|
|
|
49
49
|
Create a TreeSet from an iterable of keys or raw elements.
|
|
50
50
|
|
|
@@ -92,7 +92,7 @@ const set = new TreeSet<number, User>(users, { toElementFn: u => u.id });
|
|
|
92
92
|
get size(): number;
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:101](https://github.com/zrwusa/data-structure-typed/blob/
|
|
95
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:101](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L101)
|
|
96
96
|
|
|
97
97
|
Number of elements in the set.
|
|
98
98
|
|
|
@@ -108,7 +108,7 @@ Number of elements in the set.
|
|
|
108
108
|
add(key): this;
|
|
109
109
|
```
|
|
110
110
|
|
|
111
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
111
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:468](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L468)
|
|
112
112
|
|
|
113
113
|
Add a key to the set (no-op if already present).
|
|
114
114
|
|
|
@@ -151,7 +151,7 @@ Expected time O(log n)
|
|
|
151
151
|
ceiling(key): K | undefined;
|
|
152
152
|
```
|
|
153
153
|
|
|
154
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
154
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3483](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3483)
|
|
155
155
|
|
|
156
156
|
Smallest key that is >= the given key.
|
|
157
157
|
|
|
@@ -195,7 +195,7 @@ Smallest key that is >= the given key.
|
|
|
195
195
|
clear(): void;
|
|
196
196
|
```
|
|
197
197
|
|
|
198
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
198
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1012](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1012)
|
|
199
199
|
|
|
200
200
|
Remove all keys.
|
|
201
201
|
|
|
@@ -222,7 +222,7 @@ Remove all keys.
|
|
|
222
222
|
clone(): TreeSet<K>;
|
|
223
223
|
```
|
|
224
224
|
|
|
225
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
225
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4341](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L4341)
|
|
226
226
|
|
|
227
227
|
Creates a shallow clone of this set.
|
|
228
228
|
|
|
@@ -254,7 +254,7 @@ Time O(n log n), Space O(n)
|
|
|
254
254
|
delete(key): boolean;
|
|
255
255
|
```
|
|
256
256
|
|
|
257
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
257
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:840](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L840)
|
|
258
258
|
|
|
259
259
|
Delete a key.
|
|
260
260
|
|
|
@@ -295,7 +295,7 @@ Expected time O(log n)
|
|
|
295
295
|
entries(): IterableIterator<[K, K]>;
|
|
296
296
|
```
|
|
297
297
|
|
|
298
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
298
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1523](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1523)
|
|
299
299
|
|
|
300
300
|
Iterate over `[value, value]` pairs (native Set convention).
|
|
301
301
|
|
|
@@ -323,7 +323,7 @@ Note: TreeSet stores only keys internally; `[k, k]` is created on-the-fly during
|
|
|
323
323
|
every(callbackfn, thisArg?): boolean;
|
|
324
324
|
```
|
|
325
325
|
|
|
326
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
326
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2406](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2406)
|
|
327
327
|
|
|
328
328
|
Test whether all values satisfy a predicate.
|
|
329
329
|
|
|
@@ -363,7 +363,7 @@ Time O(n), Space O(1)
|
|
|
363
363
|
filter(callbackfn, thisArg?): TreeSet<K>;
|
|
364
364
|
```
|
|
365
365
|
|
|
366
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
366
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2056](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2056)
|
|
367
367
|
|
|
368
368
|
Create a new TreeSet containing only values that satisfy the predicate.
|
|
369
369
|
|
|
@@ -404,7 +404,7 @@ Time O(n log n) expected, Space O(n)
|
|
|
404
404
|
find(callbackfn, thisArg?): K | undefined;
|
|
405
405
|
```
|
|
406
406
|
|
|
407
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
407
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2757](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2757)
|
|
408
408
|
|
|
409
409
|
Find the first value that satisfies a predicate.
|
|
410
410
|
|
|
@@ -445,7 +445,7 @@ Time O(n), Space O(1)
|
|
|
445
445
|
first(): K | undefined;
|
|
446
446
|
```
|
|
447
447
|
|
|
448
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
448
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3176](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3176)
|
|
449
449
|
|
|
450
450
|
Smallest key in the set.
|
|
451
451
|
|
|
@@ -494,7 +494,7 @@ Smallest key in the set.
|
|
|
494
494
|
floor(key): K | undefined;
|
|
495
495
|
```
|
|
496
496
|
|
|
497
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
497
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3633](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3633)
|
|
498
498
|
|
|
499
499
|
Largest key that is <= the given key.
|
|
500
500
|
|
|
@@ -530,7 +530,7 @@ Largest key that is <= the given key.
|
|
|
530
530
|
forEach(cb, thisArg?): void;
|
|
531
531
|
```
|
|
532
532
|
|
|
533
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
533
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1700](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1700)
|
|
534
534
|
|
|
535
535
|
Visit each value in ascending order.
|
|
536
536
|
|
|
@@ -546,7 +546,7 @@ Callback follows native Set convention: `(value, value2, set)`.
|
|
|
546
546
|
|
|
547
547
|
##### thisArg?
|
|
548
548
|
|
|
549
|
-
`
|
|
549
|
+
`unknown`
|
|
550
550
|
|
|
551
551
|
#### Returns
|
|
552
552
|
|
|
@@ -564,13 +564,92 @@ Callback follows native Set convention: `(value, value2, set)`.
|
|
|
564
564
|
|
|
565
565
|
***
|
|
566
566
|
|
|
567
|
+
### getByRank()
|
|
568
|
+
|
|
569
|
+
```ts
|
|
570
|
+
getByRank(k): K | undefined;
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4127](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L4127)
|
|
574
|
+
|
|
575
|
+
Returns the element at the k-th position in tree order (0-indexed).
|
|
576
|
+
|
|
577
|
+
#### Parameters
|
|
578
|
+
|
|
579
|
+
##### k
|
|
580
|
+
|
|
581
|
+
`number`
|
|
582
|
+
|
|
583
|
+
#### Returns
|
|
584
|
+
|
|
585
|
+
`K` \| `undefined`
|
|
586
|
+
|
|
587
|
+
#### Remarks
|
|
588
|
+
|
|
589
|
+
Time O(log n). Requires `enableOrderStatistic: true`.
|
|
590
|
+
|
|
591
|
+
*
|
|
592
|
+
|
|
593
|
+
#### Example
|
|
594
|
+
|
|
595
|
+
```ts
|
|
596
|
+
// Find k-th element in a TreeSet
|
|
597
|
+
const set = new TreeSet<number>([30, 10, 50, 20, 40], { enableOrderStatistic: true });
|
|
598
|
+
console.log(set.getByRank(0)); // 10;
|
|
599
|
+
console.log(set.getByRank(2)); // 30;
|
|
600
|
+
console.log(set.getRank(30)); // 2;
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
***
|
|
604
|
+
|
|
605
|
+
### getRank()
|
|
606
|
+
|
|
607
|
+
```ts
|
|
608
|
+
getRank(key): number;
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4145](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L4145)
|
|
612
|
+
|
|
613
|
+
Returns the 0-based rank of a key (number of elements that precede it in tree order).
|
|
614
|
+
|
|
615
|
+
#### Parameters
|
|
616
|
+
|
|
617
|
+
##### key
|
|
618
|
+
|
|
619
|
+
`K`
|
|
620
|
+
|
|
621
|
+
#### Returns
|
|
622
|
+
|
|
623
|
+
`number`
|
|
624
|
+
|
|
625
|
+
#### Remarks
|
|
626
|
+
|
|
627
|
+
Time O(log n). Requires `enableOrderStatistic: true`.
|
|
628
|
+
*
|
|
629
|
+
|
|
630
|
+
#### Example
|
|
631
|
+
|
|
632
|
+
```ts
|
|
633
|
+
// Get the rank of a key in sorted order
|
|
634
|
+
const tree = new TreeSet<number>(
|
|
635
|
+
[10, 20, 30, 40, 50],
|
|
636
|
+
{ enableOrderStatistic: true }
|
|
637
|
+
);
|
|
638
|
+
console.log(tree.getRank(10)); // 0; // smallest → rank 0
|
|
639
|
+
console.log(tree.getRank(30)); // 2; // 2 elements before 30 in tree order
|
|
640
|
+
console.log(tree.getRank(50)); // 4; // largest → rank 4
|
|
641
|
+
console.log(tree.getRank(25)); // 2;
|
|
642
|
+
```
|
|
643
|
+
|
|
644
|
+
***
|
|
645
|
+
|
|
567
646
|
### has()
|
|
568
647
|
|
|
569
648
|
```ts
|
|
570
649
|
has(key): boolean;
|
|
571
650
|
```
|
|
572
651
|
|
|
573
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
652
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:654](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L654)
|
|
574
653
|
|
|
575
654
|
Test whether a key exists.
|
|
576
655
|
|
|
@@ -608,7 +687,7 @@ Expected time O(log n)
|
|
|
608
687
|
higher(key): K | undefined;
|
|
609
688
|
```
|
|
610
689
|
|
|
611
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
690
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3781](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3781)
|
|
612
691
|
|
|
613
692
|
Smallest key that is > the given key.
|
|
614
693
|
|
|
@@ -642,7 +721,7 @@ Smallest key that is > the given key.
|
|
|
642
721
|
isEmpty(): boolean;
|
|
643
722
|
```
|
|
644
723
|
|
|
645
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
724
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:269](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L269)
|
|
646
725
|
|
|
647
726
|
Whether the set is empty.
|
|
648
727
|
|
|
@@ -667,7 +746,7 @@ Whether the set is empty.
|
|
|
667
746
|
keys(): IterableIterator<K>;
|
|
668
747
|
```
|
|
669
748
|
|
|
670
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
749
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1181](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1181)
|
|
671
750
|
|
|
672
751
|
Iterate over keys in ascending order.
|
|
673
752
|
|
|
@@ -693,7 +772,7 @@ Iterate over keys in ascending order.
|
|
|
693
772
|
last(): K | undefined;
|
|
694
773
|
```
|
|
695
774
|
|
|
696
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
775
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3223](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3223)
|
|
697
776
|
|
|
698
777
|
Largest key in the set.
|
|
699
778
|
|
|
@@ -720,7 +799,7 @@ Largest key in the set.
|
|
|
720
799
|
lower(key): K | undefined;
|
|
721
800
|
```
|
|
722
801
|
|
|
723
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
802
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3929](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3929)
|
|
724
803
|
|
|
725
804
|
Largest key that is < the given key.
|
|
726
805
|
|
|
@@ -757,7 +836,7 @@ map<MK>(
|
|
|
757
836
|
thisArg?): TreeSet<MK>;
|
|
758
837
|
```
|
|
759
838
|
|
|
760
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
839
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1873](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1873)
|
|
761
840
|
|
|
762
841
|
Create a new TreeSet by mapping each value to a new key.
|
|
763
842
|
|
|
@@ -810,7 +889,7 @@ Time O(n log n) expected, Space O(n)
|
|
|
810
889
|
pollFirst(): K | undefined;
|
|
811
890
|
```
|
|
812
891
|
|
|
813
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
892
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3272](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3272)
|
|
814
893
|
|
|
815
894
|
Remove and return the smallest key.
|
|
816
895
|
|
|
@@ -839,7 +918,7 @@ Remove and return the smallest key.
|
|
|
839
918
|
pollLast(): K | undefined;
|
|
840
919
|
```
|
|
841
920
|
|
|
842
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
921
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3323](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3323)
|
|
843
922
|
|
|
844
923
|
Remove and return the largest key.
|
|
845
924
|
|
|
@@ -867,7 +946,7 @@ Remove and return the largest key.
|
|
|
867
946
|
print(): void;
|
|
868
947
|
```
|
|
869
948
|
|
|
870
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
949
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3104](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L3104)
|
|
871
950
|
|
|
872
951
|
Print a human-friendly representation.
|
|
873
952
|
|
|
@@ -891,13 +970,63 @@ Time O(n), Space O(n)
|
|
|
891
970
|
|
|
892
971
|
***
|
|
893
972
|
|
|
973
|
+
### rangeByRank()
|
|
974
|
+
|
|
975
|
+
```ts
|
|
976
|
+
rangeByRank(start, end): K[];
|
|
977
|
+
```
|
|
978
|
+
|
|
979
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4168](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L4168)
|
|
980
|
+
|
|
981
|
+
Returns elements by rank range (0-indexed, inclusive on both ends).
|
|
982
|
+
|
|
983
|
+
#### Parameters
|
|
984
|
+
|
|
985
|
+
##### start
|
|
986
|
+
|
|
987
|
+
`number`
|
|
988
|
+
|
|
989
|
+
##### end
|
|
990
|
+
|
|
991
|
+
`number`
|
|
992
|
+
|
|
993
|
+
#### Returns
|
|
994
|
+
|
|
995
|
+
`K`[]
|
|
996
|
+
|
|
997
|
+
#### Remarks
|
|
998
|
+
|
|
999
|
+
Time O(log n + k). Requires `enableOrderStatistic: true`.
|
|
1000
|
+
|
|
1001
|
+
*
|
|
1002
|
+
|
|
1003
|
+
#### Example
|
|
1004
|
+
|
|
1005
|
+
```ts
|
|
1006
|
+
// Pagination with rangeByRank
|
|
1007
|
+
const tree = new TreeSet<number>(
|
|
1008
|
+
[10, 20, 30, 40, 50, 60, 70, 80, 90],
|
|
1009
|
+
{ enableOrderStatistic: true }
|
|
1010
|
+
);
|
|
1011
|
+
const pageSize = 3;
|
|
1012
|
+
|
|
1013
|
+
// Page 1
|
|
1014
|
+
console.log(tree.rangeByRank(0, pageSize - 1)); // [10, 20, 30];
|
|
1015
|
+
// Page 2
|
|
1016
|
+
console.log(tree.rangeByRank(pageSize, 2 * pageSize - 1)); // [40, 50, 60];
|
|
1017
|
+
// Page 3
|
|
1018
|
+
console.log(tree.rangeByRank(2 * pageSize, 3 * pageSize - 1)); // [70, 80, 90];
|
|
1019
|
+
```
|
|
1020
|
+
|
|
1021
|
+
***
|
|
1022
|
+
|
|
894
1023
|
### rangeSearch()
|
|
895
1024
|
|
|
896
1025
|
```ts
|
|
897
1026
|
rangeSearch(range, options?): K[];
|
|
898
1027
|
```
|
|
899
1028
|
|
|
900
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1029
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4091](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L4091)
|
|
901
1030
|
|
|
902
1031
|
Return all keys in a given range.
|
|
903
1032
|
|
|
@@ -950,7 +1079,7 @@ Inclusive/exclusive bounds (defaults to inclusive).
|
|
|
950
1079
|
reduce<A>(callbackfn, initialValue): A;
|
|
951
1080
|
```
|
|
952
1081
|
|
|
953
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1082
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2235](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2235)
|
|
954
1083
|
|
|
955
1084
|
Reduce values into a single accumulator.
|
|
956
1085
|
|
|
@@ -997,7 +1126,7 @@ Time O(n), Space O(1)
|
|
|
997
1126
|
some(callbackfn, thisArg?): boolean;
|
|
998
1127
|
```
|
|
999
1128
|
|
|
1000
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1129
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2581](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2581)
|
|
1001
1130
|
|
|
1002
1131
|
Test whether any value satisfies a predicate.
|
|
1003
1132
|
|
|
@@ -1037,7 +1166,7 @@ Time O(n), Space O(1)
|
|
|
1037
1166
|
toArray(): K[];
|
|
1038
1167
|
```
|
|
1039
1168
|
|
|
1040
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1169
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2934](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L2934)
|
|
1041
1170
|
|
|
1042
1171
|
Materialize the set into an array of keys.
|
|
1043
1172
|
|
|
@@ -1067,7 +1196,7 @@ Time O(n), Space O(n)
|
|
|
1067
1196
|
values(): IterableIterator<K>;
|
|
1068
1197
|
```
|
|
1069
1198
|
|
|
1070
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1199
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1352](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L1352)
|
|
1071
1200
|
|
|
1072
1201
|
Iterate over values in ascending order.
|
|
1073
1202
|
|
|
@@ -1095,7 +1224,7 @@ Note: for Set-like containers, `values()` is the same as `keys()`.
|
|
|
1095
1224
|
static createDefaultComparator<K>(): Comparator<K>;
|
|
1096
1225
|
```
|
|
1097
1226
|
|
|
1098
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:71](https://github.com/zrwusa/data-structure-typed/blob/
|
|
1227
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:71](https://github.com/zrwusa/data-structure-typed/blob/8292cb978daf85ebe846186c7c7572aece04fb7b/src/data-structures/binary-tree/tree-set.ts#L71)
|
|
1099
1228
|
|
|
1100
1229
|
Create the strict default comparator.
|
|
1101
1230
|
|