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: 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/main/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/main/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/main/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:508](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L508)
|
|
112
112
|
|
|
113
113
|
Add a key to the set (no-op if already present).
|
|
114
114
|
|
|
@@ -145,13 +145,54 @@ Expected time O(log n)
|
|
|
145
145
|
|
|
146
146
|
***
|
|
147
147
|
|
|
148
|
+
### addMany()
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
addMany(keys): boolean[];
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:542](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L542)
|
|
155
|
+
|
|
156
|
+
Add multiple keys at once.
|
|
157
|
+
|
|
158
|
+
#### Parameters
|
|
159
|
+
|
|
160
|
+
##### keys
|
|
161
|
+
|
|
162
|
+
`Iterable`\<`K`\>
|
|
163
|
+
|
|
164
|
+
Iterable of keys to add.
|
|
165
|
+
|
|
166
|
+
#### Returns
|
|
167
|
+
|
|
168
|
+
`boolean`[]
|
|
169
|
+
|
|
170
|
+
Array of booleans indicating whether each key was newly added.
|
|
171
|
+
|
|
172
|
+
*
|
|
173
|
+
|
|
174
|
+
#### Remarks
|
|
175
|
+
|
|
176
|
+
Expected time O(m log n), where m is the number of keys.
|
|
177
|
+
|
|
178
|
+
#### Example
|
|
179
|
+
|
|
180
|
+
```ts
|
|
181
|
+
// Add multiple keys
|
|
182
|
+
const ts = new TreeSet<number>();
|
|
183
|
+
ts.addMany([5, 3, 7, 1, 9]);
|
|
184
|
+
console.log(ts.size); // 5;
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
***
|
|
188
|
+
|
|
148
189
|
### ceiling()
|
|
149
190
|
|
|
150
191
|
```ts
|
|
151
192
|
ceiling(key): K | undefined;
|
|
152
193
|
```
|
|
153
194
|
|
|
154
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
195
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3908](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L3908)
|
|
155
196
|
|
|
156
197
|
Smallest key that is >= the given key.
|
|
157
198
|
|
|
@@ -195,7 +236,7 @@ Smallest key that is >= the given key.
|
|
|
195
236
|
clear(): void;
|
|
196
237
|
```
|
|
197
238
|
|
|
198
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
239
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1165](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L1165)
|
|
199
240
|
|
|
200
241
|
Remove all keys.
|
|
201
242
|
|
|
@@ -222,7 +263,7 @@ Remove all keys.
|
|
|
222
263
|
clone(): TreeSet<K>;
|
|
223
264
|
```
|
|
224
265
|
|
|
225
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
266
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4858](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L4858)
|
|
226
267
|
|
|
227
268
|
Creates a shallow clone of this set.
|
|
228
269
|
|
|
@@ -254,7 +295,7 @@ Time O(n log n), Space O(n)
|
|
|
254
295
|
delete(key): boolean;
|
|
255
296
|
```
|
|
256
297
|
|
|
257
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
298
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:956](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L956)
|
|
258
299
|
|
|
259
300
|
Delete a key.
|
|
260
301
|
|
|
@@ -289,13 +330,43 @@ Expected time O(log n)
|
|
|
289
330
|
|
|
290
331
|
***
|
|
291
332
|
|
|
333
|
+
### deleteWhere()
|
|
334
|
+
|
|
335
|
+
```ts
|
|
336
|
+
deleteWhere(predicate): boolean;
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:967](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L967)
|
|
340
|
+
|
|
341
|
+
Delete all keys matching a predicate.
|
|
342
|
+
|
|
343
|
+
#### Parameters
|
|
344
|
+
|
|
345
|
+
##### predicate
|
|
346
|
+
|
|
347
|
+
(`key`, `index`, `set`) => `boolean`
|
|
348
|
+
|
|
349
|
+
Function (key, index, set) → boolean; return true to delete.
|
|
350
|
+
|
|
351
|
+
#### Returns
|
|
352
|
+
|
|
353
|
+
`boolean`
|
|
354
|
+
|
|
355
|
+
True if at least one key was deleted.
|
|
356
|
+
|
|
357
|
+
#### Remarks
|
|
358
|
+
|
|
359
|
+
Time O(N), Space O(N)
|
|
360
|
+
|
|
361
|
+
***
|
|
362
|
+
|
|
292
363
|
### entries()
|
|
293
364
|
|
|
294
365
|
```ts
|
|
295
366
|
entries(): IterableIterator<[K, K]>;
|
|
296
367
|
```
|
|
297
368
|
|
|
298
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
369
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1736](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L1736)
|
|
299
370
|
|
|
300
371
|
Iterate over `[value, value]` pairs (native Set convention).
|
|
301
372
|
|
|
@@ -323,7 +394,7 @@ Note: TreeSet stores only keys internally; `[k, k]` is created on-the-fly during
|
|
|
323
394
|
every(callbackfn, thisArg?): boolean;
|
|
324
395
|
```
|
|
325
396
|
|
|
326
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
397
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2719](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L2719)
|
|
327
398
|
|
|
328
399
|
Test whether all values satisfy a predicate.
|
|
329
400
|
|
|
@@ -363,7 +434,7 @@ Time O(n), Space O(1)
|
|
|
363
434
|
filter(callbackfn, thisArg?): TreeSet<K>;
|
|
364
435
|
```
|
|
365
436
|
|
|
366
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
437
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2329](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L2329)
|
|
367
438
|
|
|
368
439
|
Create a new TreeSet containing only values that satisfy the predicate.
|
|
369
440
|
|
|
@@ -404,7 +475,7 @@ Time O(n log n) expected, Space O(n)
|
|
|
404
475
|
find(callbackfn, thisArg?): K | undefined;
|
|
405
476
|
```
|
|
406
477
|
|
|
407
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
478
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3110](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L3110)
|
|
408
479
|
|
|
409
480
|
Find the first value that satisfies a predicate.
|
|
410
481
|
|
|
@@ -445,7 +516,7 @@ Time O(n), Space O(1)
|
|
|
445
516
|
first(): K | undefined;
|
|
446
517
|
```
|
|
447
518
|
|
|
448
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
519
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3573](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L3573)
|
|
449
520
|
|
|
450
521
|
Smallest key in the set.
|
|
451
522
|
|
|
@@ -494,7 +565,7 @@ Smallest key in the set.
|
|
|
494
565
|
floor(key): K | undefined;
|
|
495
566
|
```
|
|
496
567
|
|
|
497
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
568
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4074](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L4074)
|
|
498
569
|
|
|
499
570
|
Largest key that is <= the given key.
|
|
500
571
|
|
|
@@ -530,7 +601,7 @@ Largest key that is <= the given key.
|
|
|
530
601
|
forEach(cb, thisArg?): void;
|
|
531
602
|
```
|
|
532
603
|
|
|
533
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
604
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1933](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L1933)
|
|
534
605
|
|
|
535
606
|
Visit each value in ascending order.
|
|
536
607
|
|
|
@@ -546,7 +617,7 @@ Callback follows native Set convention: `(value, value2, set)`.
|
|
|
546
617
|
|
|
547
618
|
##### thisArg?
|
|
548
619
|
|
|
549
|
-
`
|
|
620
|
+
`unknown`
|
|
550
621
|
|
|
551
622
|
#### Returns
|
|
552
623
|
|
|
@@ -564,13 +635,92 @@ Callback follows native Set convention: `(value, value2, set)`.
|
|
|
564
635
|
|
|
565
636
|
***
|
|
566
637
|
|
|
638
|
+
### getByRank()
|
|
639
|
+
|
|
640
|
+
```ts
|
|
641
|
+
getByRank(k): K | undefined;
|
|
642
|
+
```
|
|
643
|
+
|
|
644
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4616](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L4616)
|
|
645
|
+
|
|
646
|
+
Returns the element at the k-th position in tree order (0-indexed).
|
|
647
|
+
|
|
648
|
+
#### Parameters
|
|
649
|
+
|
|
650
|
+
##### k
|
|
651
|
+
|
|
652
|
+
`number`
|
|
653
|
+
|
|
654
|
+
#### Returns
|
|
655
|
+
|
|
656
|
+
`K` \| `undefined`
|
|
657
|
+
|
|
658
|
+
#### Remarks
|
|
659
|
+
|
|
660
|
+
Time O(log n). Requires `enableOrderStatistic: true`.
|
|
661
|
+
|
|
662
|
+
*
|
|
663
|
+
|
|
664
|
+
#### Example
|
|
665
|
+
|
|
666
|
+
```ts
|
|
667
|
+
// Find k-th element in a TreeSet
|
|
668
|
+
const set = new TreeSet<number>([30, 10, 50, 20, 40], { enableOrderStatistic: true });
|
|
669
|
+
console.log(set.getByRank(0)); // 10;
|
|
670
|
+
console.log(set.getByRank(2)); // 30;
|
|
671
|
+
console.log(set.getRank(30)); // 2;
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
***
|
|
675
|
+
|
|
676
|
+
### getRank()
|
|
677
|
+
|
|
678
|
+
```ts
|
|
679
|
+
getRank(key): number;
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4634](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L4634)
|
|
683
|
+
|
|
684
|
+
Returns the 0-based rank of a key (number of elements that precede it in tree order).
|
|
685
|
+
|
|
686
|
+
#### Parameters
|
|
687
|
+
|
|
688
|
+
##### key
|
|
689
|
+
|
|
690
|
+
`K`
|
|
691
|
+
|
|
692
|
+
#### Returns
|
|
693
|
+
|
|
694
|
+
`number`
|
|
695
|
+
|
|
696
|
+
#### Remarks
|
|
697
|
+
|
|
698
|
+
Time O(log n). Requires `enableOrderStatistic: true`.
|
|
699
|
+
*
|
|
700
|
+
|
|
701
|
+
#### Example
|
|
702
|
+
|
|
703
|
+
```ts
|
|
704
|
+
// Get the rank of a key in sorted order
|
|
705
|
+
const tree = new TreeSet<number>(
|
|
706
|
+
[10, 20, 30, 40, 50],
|
|
707
|
+
{ enableOrderStatistic: true }
|
|
708
|
+
);
|
|
709
|
+
console.log(tree.getRank(10)); // 0; // smallest → rank 0
|
|
710
|
+
console.log(tree.getRank(30)); // 2; // 2 elements before 30 in tree order
|
|
711
|
+
console.log(tree.getRank(50)); // 4; // largest → rank 4
|
|
712
|
+
console.log(tree.getRank(25)); // 2;
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
***
|
|
716
|
+
|
|
567
717
|
### has()
|
|
568
718
|
|
|
569
719
|
```ts
|
|
570
720
|
has(key): boolean;
|
|
571
721
|
```
|
|
572
722
|
|
|
573
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
723
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:750](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L750)
|
|
574
724
|
|
|
575
725
|
Test whether a key exists.
|
|
576
726
|
|
|
@@ -608,7 +758,7 @@ Expected time O(log n)
|
|
|
608
758
|
higher(key): K | undefined;
|
|
609
759
|
```
|
|
610
760
|
|
|
611
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
761
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4238](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L4238)
|
|
612
762
|
|
|
613
763
|
Smallest key that is > the given key.
|
|
614
764
|
|
|
@@ -642,7 +792,7 @@ Smallest key that is > the given key.
|
|
|
642
792
|
isEmpty(): boolean;
|
|
643
793
|
```
|
|
644
794
|
|
|
645
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
795
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:289](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L289)
|
|
646
796
|
|
|
647
797
|
Whether the set is empty.
|
|
648
798
|
|
|
@@ -667,7 +817,7 @@ Whether the set is empty.
|
|
|
667
817
|
keys(): IterableIterator<K>;
|
|
668
818
|
```
|
|
669
819
|
|
|
670
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
820
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1354](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L1354)
|
|
671
821
|
|
|
672
822
|
Iterate over keys in ascending order.
|
|
673
823
|
|
|
@@ -693,7 +843,7 @@ Iterate over keys in ascending order.
|
|
|
693
843
|
last(): K | undefined;
|
|
694
844
|
```
|
|
695
845
|
|
|
696
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
846
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3624](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L3624)
|
|
697
847
|
|
|
698
848
|
Largest key in the set.
|
|
699
849
|
|
|
@@ -720,7 +870,7 @@ Largest key in the set.
|
|
|
720
870
|
lower(key): K | undefined;
|
|
721
871
|
```
|
|
722
872
|
|
|
723
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
873
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4402](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L4402)
|
|
724
874
|
|
|
725
875
|
Largest key that is < the given key.
|
|
726
876
|
|
|
@@ -757,7 +907,7 @@ map<MK>(
|
|
|
757
907
|
thisArg?): TreeSet<MK>;
|
|
758
908
|
```
|
|
759
909
|
|
|
760
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
910
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2126](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L2126)
|
|
761
911
|
|
|
762
912
|
Create a new TreeSet by mapping each value to a new key.
|
|
763
913
|
|
|
@@ -810,7 +960,7 @@ Time O(n log n) expected, Space O(n)
|
|
|
810
960
|
pollFirst(): K | undefined;
|
|
811
961
|
```
|
|
812
962
|
|
|
813
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
963
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3677](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L3677)
|
|
814
964
|
|
|
815
965
|
Remove and return the smallest key.
|
|
816
966
|
|
|
@@ -839,7 +989,7 @@ Remove and return the smallest key.
|
|
|
839
989
|
pollLast(): K | undefined;
|
|
840
990
|
```
|
|
841
991
|
|
|
842
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
992
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3732](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L3732)
|
|
843
993
|
|
|
844
994
|
Remove and return the largest key.
|
|
845
995
|
|
|
@@ -867,7 +1017,7 @@ Remove and return the largest key.
|
|
|
867
1017
|
print(): void;
|
|
868
1018
|
```
|
|
869
1019
|
|
|
870
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1020
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3497](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L3497)
|
|
871
1021
|
|
|
872
1022
|
Print a human-friendly representation.
|
|
873
1023
|
|
|
@@ -891,13 +1041,63 @@ Time O(n), Space O(n)
|
|
|
891
1041
|
|
|
892
1042
|
***
|
|
893
1043
|
|
|
1044
|
+
### rangeByRank()
|
|
1045
|
+
|
|
1046
|
+
```ts
|
|
1047
|
+
rangeByRank(start, end): K[];
|
|
1048
|
+
```
|
|
1049
|
+
|
|
1050
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4665](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L4665)
|
|
1051
|
+
|
|
1052
|
+
Returns elements by rank range (0-indexed, inclusive on both ends).
|
|
1053
|
+
|
|
1054
|
+
#### Parameters
|
|
1055
|
+
|
|
1056
|
+
##### start
|
|
1057
|
+
|
|
1058
|
+
`number`
|
|
1059
|
+
|
|
1060
|
+
##### end
|
|
1061
|
+
|
|
1062
|
+
`number`
|
|
1063
|
+
|
|
1064
|
+
#### Returns
|
|
1065
|
+
|
|
1066
|
+
`K`[]
|
|
1067
|
+
|
|
1068
|
+
#### Remarks
|
|
1069
|
+
|
|
1070
|
+
Time O(log n + k). Requires `enableOrderStatistic: true`.
|
|
1071
|
+
|
|
1072
|
+
*
|
|
1073
|
+
|
|
1074
|
+
#### Example
|
|
1075
|
+
|
|
1076
|
+
```ts
|
|
1077
|
+
// Pagination by position in tree order
|
|
1078
|
+
const tree = new TreeSet<number>(
|
|
1079
|
+
[10, 20, 30, 40, 50, 60, 70, 80, 90],
|
|
1080
|
+
{ enableOrderStatistic: true }
|
|
1081
|
+
);
|
|
1082
|
+
const pageSize = 3;
|
|
1083
|
+
|
|
1084
|
+
// Page 1
|
|
1085
|
+
console.log(tree.rangeByRank(0, pageSize - 1)); // [10, 20, 30];
|
|
1086
|
+
// Page 2
|
|
1087
|
+
console.log(tree.rangeByRank(pageSize, 2 * pageSize - 1)); // [40, 50, 60];
|
|
1088
|
+
// Page 3
|
|
1089
|
+
console.log(tree.rangeByRank(2 * pageSize, 3 * pageSize - 1)); // [70, 80, 90];
|
|
1090
|
+
```
|
|
1091
|
+
|
|
1092
|
+
***
|
|
1093
|
+
|
|
894
1094
|
### rangeSearch()
|
|
895
1095
|
|
|
896
1096
|
```ts
|
|
897
1097
|
rangeSearch(range, options?): K[];
|
|
898
1098
|
```
|
|
899
1099
|
|
|
900
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1100
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:4580](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L4580)
|
|
901
1101
|
|
|
902
1102
|
Return all keys in a given range.
|
|
903
1103
|
|
|
@@ -950,7 +1150,7 @@ Inclusive/exclusive bounds (defaults to inclusive).
|
|
|
950
1150
|
reduce<A>(callbackfn, initialValue): A;
|
|
951
1151
|
```
|
|
952
1152
|
|
|
953
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1153
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2528](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L2528)
|
|
954
1154
|
|
|
955
1155
|
Reduce values into a single accumulator.
|
|
956
1156
|
|
|
@@ -997,7 +1197,7 @@ Time O(n), Space O(1)
|
|
|
997
1197
|
some(callbackfn, thisArg?): boolean;
|
|
998
1198
|
```
|
|
999
1199
|
|
|
1000
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1200
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:2914](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L2914)
|
|
1001
1201
|
|
|
1002
1202
|
Test whether any value satisfies a predicate.
|
|
1003
1203
|
|
|
@@ -1037,7 +1237,7 @@ Time O(n), Space O(1)
|
|
|
1037
1237
|
toArray(): K[];
|
|
1038
1238
|
```
|
|
1039
1239
|
|
|
1040
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1240
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:3307](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L3307)
|
|
1041
1241
|
|
|
1042
1242
|
Materialize the set into an array of keys.
|
|
1043
1243
|
|
|
@@ -1067,7 +1267,7 @@ Time O(n), Space O(n)
|
|
|
1067
1267
|
values(): IterableIterator<K>;
|
|
1068
1268
|
```
|
|
1069
1269
|
|
|
1070
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:
|
|
1270
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:1545](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L1545)
|
|
1071
1271
|
|
|
1072
1272
|
Iterate over values in ascending order.
|
|
1073
1273
|
|
|
@@ -1095,7 +1295,7 @@ Note: for Set-like containers, `values()` is the same as `keys()`.
|
|
|
1095
1295
|
static createDefaultComparator<K>(): Comparator<K>;
|
|
1096
1296
|
```
|
|
1097
1297
|
|
|
1098
|
-
Defined in: [data-structures/binary-tree/tree-set.ts:71](https://github.com/zrwusa/data-structure-typed/blob/
|
|
1298
|
+
Defined in: [data-structures/binary-tree/tree-set.ts:71](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/tree-set.ts#L71)
|
|
1099
1299
|
|
|
1100
1300
|
Create the strict default comparator.
|
|
1101
1301
|
|