data-structure-typed 2.5.0 → 2.5.1
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/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +12984 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/package.json +3 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +4505 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +9731 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +347 -0
- package/CHANGELOG.md +3 -1
- package/README.md +63 -26
- package/dist/cjs/binary-tree.cjs +23698 -0
- package/dist/cjs/graph.cjs +5236 -0
- package/dist/cjs/hash.cjs +1262 -0
- package/dist/cjs/heap.cjs +1540 -0
- package/dist/cjs/index.cjs +28244 -14795
- package/dist/cjs/linked-list.cjs +4370 -0
- package/dist/cjs/matrix.cjs +1042 -0
- package/dist/cjs/priority-queue.cjs +1314 -0
- package/dist/cjs/queue.cjs +4090 -0
- package/dist/cjs/stack.cjs +861 -0
- package/dist/cjs/trie.cjs +1173 -0
- package/dist/cjs-legacy/binary-tree.cjs +23730 -0
- package/dist/cjs-legacy/graph.cjs +5234 -0
- package/dist/cjs-legacy/hash.cjs +1262 -0
- package/dist/cjs-legacy/heap.cjs +1537 -0
- package/dist/cjs-legacy/index.cjs +28239 -14790
- package/dist/cjs-legacy/linked-list.cjs +4376 -0
- package/dist/cjs-legacy/matrix.cjs +1045 -0
- package/dist/cjs-legacy/priority-queue.cjs +1312 -0
- package/dist/cjs-legacy/queue.cjs +4088 -0
- package/dist/cjs-legacy/stack.cjs +861 -0
- package/dist/cjs-legacy/trie.cjs +1172 -0
- package/dist/esm/binary-tree.mjs +23683 -0
- package/dist/esm/graph.mjs +5223 -0
- package/dist/esm/hash.mjs +1259 -0
- package/dist/esm/heap.mjs +1534 -0
- package/dist/esm/index.mjs +28242 -14796
- package/dist/esm/linked-list.mjs +4363 -0
- package/dist/esm/matrix.mjs +1038 -0
- package/dist/esm/priority-queue.mjs +1310 -0
- package/dist/esm/queue.mjs +4086 -0
- package/dist/esm/stack.mjs +859 -0
- package/dist/esm/trie.mjs +1170 -0
- package/dist/esm-legacy/binary-tree.mjs +23715 -0
- package/dist/esm-legacy/graph.mjs +5221 -0
- package/dist/esm-legacy/hash.mjs +1259 -0
- package/dist/esm-legacy/heap.mjs +1531 -0
- package/dist/esm-legacy/index.mjs +28237 -14791
- package/dist/esm-legacy/linked-list.mjs +4369 -0
- package/dist/esm-legacy/matrix.mjs +1041 -0
- package/dist/esm-legacy/priority-queue.mjs +1308 -0
- package/dist/esm-legacy/queue.mjs +4084 -0
- package/dist/esm-legacy/stack.mjs +859 -0
- package/dist/esm-legacy/trie.mjs +1169 -0
- package/dist/types/data-structures/base/index.d.ts +1 -0
- package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
- package/dist/types/data-structures/base/linear-base.d.ts +3 -3
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +240 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +280 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +502 -2
- package/dist/types/data-structures/binary-tree/bst.d.ts +481 -1
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +380 -0
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +120 -1
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +2764 -384
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +2753 -353
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2241 -321
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +2554 -274
- package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
- package/dist/types/data-structures/graph/directed-graph.d.ts +200 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +180 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +230 -10
- package/dist/types/data-structures/heap/heap.d.ts +280 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +343 -3
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +303 -3
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +362 -2
- package/dist/types/data-structures/matrix/matrix.d.ts +160 -0
- package/dist/types/data-structures/queue/deque.d.ts +304 -4
- package/dist/types/data-structures/queue/queue.d.ts +240 -0
- package/dist/types/data-structures/stack/stack.d.ts +200 -0
- package/dist/types/data-structures/trie/trie.d.ts +244 -4
- package/dist/types/interfaces/graph.d.ts +1 -1
- package/dist/types/types/common.d.ts +2 -2
- package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
- package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
- package/dist/types/types/utils/validate-type.d.ts +4 -4
- package/dist/umd/data-structure-typed.js +28022 -14573
- package/dist/umd/data-structure-typed.min.js +9 -3
- package/docs-site-docusaurus/README.md +41 -0
- package/docs-site-docusaurus/docs/api/README.md +52 -0
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +6130 -0
- package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +282 -0
- package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +2266 -0
- package/docs-site-docusaurus/docs/api/classes/BST.md +5831 -0
- package/docs-site-docusaurus/docs/api/classes/BSTNode.md +333 -0
- package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +455 -0
- package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +4647 -0
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +331 -0
- package/docs-site-docusaurus/docs/api/classes/Deque.md +2767 -0
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +2999 -0
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +2685 -0
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +221 -0
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +253 -0
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +21 -0
- package/docs-site-docusaurus/docs/api/classes/HashMap.md +1333 -0
- package/docs-site-docusaurus/docs/api/classes/Heap.md +1881 -0
- package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +800 -0
- package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +644 -0
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +1632 -0
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +1853 -0
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +1108 -0
- package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +156 -0
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +2824 -0
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +2929 -0
- package/docs-site-docusaurus/docs/api/classes/Matrix.md +1026 -0
- package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +1866 -0
- package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +1883 -0
- package/docs-site-docusaurus/docs/api/classes/MinHeap.md +1879 -0
- package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +1882 -0
- package/docs-site-docusaurus/docs/api/classes/Navigator.md +109 -0
- package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +1839 -0
- package/docs-site-docusaurus/docs/api/classes/Queue.md +2244 -0
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +6374 -0
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +372 -0
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +2897 -0
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +169 -0
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +1229 -0
- package/docs-site-docusaurus/docs/api/classes/Stack.md +1573 -0
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +1257 -0
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +1475 -0
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +1117 -0
- package/docs-site-docusaurus/docs/api/classes/Trie.md +1708 -0
- package/docs-site-docusaurus/docs/api/classes/TrieNode.md +199 -0
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +2979 -0
- package/docs-site-docusaurus/docs/guide/_category_.json +6 -0
- package/docs-site-docusaurus/docs/guide/architecture.md +613 -0
- package/docs-site-docusaurus/docs/guide/concepts.md +420 -0
- package/docs-site-docusaurus/docs/guide/guides.md +611 -0
- package/docs-site-docusaurus/docs/guide/installation.md +60 -0
- package/docs-site-docusaurus/docs/guide/integrations.md +823 -0
- package/docs-site-docusaurus/docs/guide/overview.md +638 -0
- package/docs-site-docusaurus/docs/guide/performance.md +833 -0
- package/docs-site-docusaurus/docs/guide/quick-start.md +73 -0
- package/docs-site-docusaurus/docusaurus.config.ts +159 -0
- package/docs-site-docusaurus/fix-mdx-generics.mjs +75 -0
- package/docs-site-docusaurus/package-lock.json +18667 -0
- package/docs-site-docusaurus/package.json +50 -0
- package/docs-site-docusaurus/prefix-class-to-methods.mjs +48 -0
- package/docs-site-docusaurus/sidebars.ts +23 -0
- package/docs-site-docusaurus/sort-protected.mjs +87 -0
- package/docs-site-docusaurus/src/css/custom.css +96 -0
- package/docs-site-docusaurus/src/pages/index.module.css +13 -0
- package/docs-site-docusaurus/src/pages/index.tsx +71 -0
- package/docs-site-docusaurus/src/pages/markdown-page.md +7 -0
- package/docs-site-docusaurus/src/theme/TOCItems/index.tsx +34 -0
- package/docs-site-docusaurus/static/.nojekyll +0 -0
- package/docs-site-docusaurus/static/img/docusaurus-social-card.jpg +0 -0
- package/docs-site-docusaurus/static/img/docusaurus.png +0 -0
- package/docs-site-docusaurus/static/img/favicon.ico +0 -0
- package/docs-site-docusaurus/static/img/favicon.png +0 -0
- package/docs-site-docusaurus/static/img/logo-180.png +0 -0
- package/docs-site-docusaurus/static/img/logo.jpg +0 -0
- package/docs-site-docusaurus/static/img/logo.png +0 -0
- package/docs-site-docusaurus/static/img/logo.svg +1 -0
- package/docs-site-docusaurus/static/img/og-image.png +0 -0
- package/docs-site-docusaurus/static/img/undraw_docusaurus_mountain.svg +171 -0
- package/docs-site-docusaurus/static/img/undraw_docusaurus_react.svg +170 -0
- package/docs-site-docusaurus/static/img/undraw_docusaurus_tree.svg +40 -0
- package/docs-site-docusaurus/static/robots.txt +4 -0
- package/docs-site-docusaurus/typedoc.json +23 -0
- package/package.json +106 -10
- package/src/data-structures/base/index.ts +1 -0
- package/src/data-structures/base/iterable-entry-base.ts +8 -8
- package/src/data-structures/base/linear-base.ts +3 -3
- package/src/data-structures/binary-tree/avl-tree.ts +240 -0
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +281 -1
- package/src/data-structures/binary-tree/binary-tree.ts +502 -2
- package/src/data-structures/binary-tree/bst.ts +481 -1
- package/src/data-structures/binary-tree/red-black-tree.ts +380 -0
- package/src/data-structures/binary-tree/segment-tree.ts +121 -2
- package/src/data-structures/binary-tree/tree-map.ts +2862 -482
- package/src/data-structures/binary-tree/tree-multi-map.ts +2963 -563
- package/src/data-structures/binary-tree/tree-multi-set.ts +2399 -479
- package/src/data-structures/binary-tree/tree-set.ts +2685 -405
- package/src/data-structures/graph/abstract-graph.ts +4 -4
- package/src/data-structures/graph/directed-graph.ts +200 -0
- package/src/data-structures/graph/undirected-graph.ts +180 -0
- package/src/data-structures/hash/hash-map.ts +235 -15
- package/src/data-structures/heap/heap.ts +280 -0
- package/src/data-structures/linked-list/doubly-linked-list.ts +343 -3
- package/src/data-structures/linked-list/singly-linked-list.ts +303 -3
- package/src/data-structures/linked-list/skip-linked-list.ts +362 -2
- package/src/data-structures/matrix/matrix.ts +161 -1
- package/src/data-structures/queue/deque.ts +305 -5
- package/src/data-structures/queue/queue.ts +240 -0
- package/src/data-structures/stack/stack.ts +200 -0
- package/src/data-structures/trie/trie.ts +245 -5
- package/src/interfaces/graph.ts +1 -1
- package/src/types/common.ts +2 -2
- package/src/types/data-structures/heap/heap.ts +1 -0
- package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
- package/src/types/utils/validate-type.ts +4 -4
- package/vercel.json +6 -0
- package/dist/leetcode/avl-tree-counter.mjs +0 -2957
- package/dist/leetcode/avl-tree-multi-map.mjs +0 -2889
- package/dist/leetcode/avl-tree.mjs +0 -2720
- package/dist/leetcode/binary-tree.mjs +0 -1594
- package/dist/leetcode/bst.mjs +0 -2398
- package/dist/leetcode/deque.mjs +0 -683
- package/dist/leetcode/directed-graph.mjs +0 -1733
- package/dist/leetcode/doubly-linked-list.mjs +0 -709
- package/dist/leetcode/hash-map.mjs +0 -493
- package/dist/leetcode/heap.mjs +0 -542
- package/dist/leetcode/max-heap.mjs +0 -375
- package/dist/leetcode/max-priority-queue.mjs +0 -383
- package/dist/leetcode/min-heap.mjs +0 -363
- package/dist/leetcode/min-priority-queue.mjs +0 -371
- package/dist/leetcode/priority-queue.mjs +0 -363
- package/dist/leetcode/queue.mjs +0 -943
- package/dist/leetcode/red-black-tree.mjs +0 -2765
- package/dist/leetcode/singly-linked-list.mjs +0 -754
- package/dist/leetcode/stack.mjs +0 -217
- package/dist/leetcode/tree-counter.mjs +0 -3039
- package/dist/leetcode/tree-multi-map.mjs +0 -2913
- package/dist/leetcode/trie.mjs +0 -413
- package/dist/leetcode/undirected-graph.mjs +0 -1650
|
@@ -92,15 +92,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
92
92
|
|
|
93
93
|
|
|
94
94
|
|
|
95
|
-
* @example
|
|
96
|
-
* // Check empty
|
|
97
|
-
* console.log(new TreeSet().isEmpty()); // true;
|
|
98
|
-
*/
|
|
99
|
-
isEmpty(): boolean;
|
|
100
|
-
private _validateKey;
|
|
101
|
-
/**
|
|
102
|
-
* Add a key to the set (no-op if already present).
|
|
103
|
-
* @remarks Expected time O(log n)
|
|
104
95
|
|
|
105
96
|
|
|
106
97
|
|
|
@@ -142,22 +133,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
142
133
|
|
|
143
134
|
|
|
144
135
|
|
|
145
|
-
* @example
|
|
146
|
-
* // Unique tags with sorted order
|
|
147
|
-
* const tags = new TreeSet<string>(['javascript', 'typescript', 'react', 'typescript', 'node']);
|
|
148
|
-
*
|
|
149
|
-
* // Duplicates removed, sorted alphabetically
|
|
150
|
-
* console.log([...tags]); // ['javascript', 'node', 'react', 'typescript'];
|
|
151
|
-
* console.log(tags.size); // 4;
|
|
152
|
-
*
|
|
153
|
-
* tags.add('angular');
|
|
154
|
-
* console.log(tags.first()); // 'angular';
|
|
155
|
-
* console.log(tags.last()); // 'typescript';
|
|
156
|
-
*/
|
|
157
|
-
add(key: K): this;
|
|
158
|
-
/**
|
|
159
|
-
* Test whether a key exists.
|
|
160
|
-
* @remarks Expected time O(log n)
|
|
161
136
|
|
|
162
137
|
|
|
163
138
|
|
|
@@ -207,18 +182,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
207
182
|
|
|
208
183
|
|
|
209
184
|
|
|
210
|
-
* @example
|
|
211
|
-
* // Checking membership in a sorted collection
|
|
212
|
-
* const allowed = new TreeSet<string>(['admin', 'editor', 'viewer']);
|
|
213
|
-
*
|
|
214
|
-
* console.log(allowed.has('admin')); // true;
|
|
215
|
-
* console.log(allowed.has('guest')); // false;
|
|
216
|
-
*/
|
|
217
|
-
has(key: K): boolean;
|
|
218
|
-
/**
|
|
219
|
-
* Delete a key.
|
|
220
|
-
* @returns `true` if the key existed; otherwise `false`.
|
|
221
|
-
* @remarks Expected time O(log n)
|
|
222
185
|
|
|
223
186
|
|
|
224
187
|
|
|
@@ -229,6 +192,15 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
229
192
|
|
|
230
193
|
|
|
231
194
|
|
|
195
|
+
* @example
|
|
196
|
+
* // Check empty
|
|
197
|
+
* console.log(new TreeSet().isEmpty()); // true;
|
|
198
|
+
*/
|
|
199
|
+
isEmpty(): boolean;
|
|
200
|
+
private _validateKey;
|
|
201
|
+
/**
|
|
202
|
+
* Add a key to the set (no-op if already present).
|
|
203
|
+
* @remarks Expected time O(log n)
|
|
232
204
|
|
|
233
205
|
|
|
234
206
|
|
|
@@ -268,17 +240,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
268
240
|
|
|
269
241
|
|
|
270
242
|
|
|
271
|
-
* @example
|
|
272
|
-
* // Removing elements while maintaining order
|
|
273
|
-
* const nums = new TreeSet<number>([1, 3, 5, 7, 9]);
|
|
274
|
-
*
|
|
275
|
-
* console.log(nums.delete(5)); // true;
|
|
276
|
-
* console.log(nums.delete(5)); // false; // already gone
|
|
277
|
-
* console.log([...nums]); // [1, 3, 7, 9];
|
|
278
|
-
*/
|
|
279
|
-
delete(key: K): boolean;
|
|
280
|
-
/**
|
|
281
|
-
* Remove all keys.
|
|
282
243
|
|
|
283
244
|
|
|
284
245
|
|
|
@@ -317,15 +278,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
317
278
|
|
|
318
279
|
|
|
319
280
|
|
|
320
|
-
* @example
|
|
321
|
-
* // Remove all
|
|
322
|
-
* const ts = new TreeSet<number>([1, 2]);
|
|
323
|
-
* ts.clear();
|
|
324
|
-
* console.log(ts.isEmpty()); // true;
|
|
325
|
-
*/
|
|
326
|
-
clear(): void;
|
|
327
|
-
/**
|
|
328
|
-
* Iterate over keys in ascending order.
|
|
329
281
|
|
|
330
282
|
|
|
331
283
|
|
|
@@ -364,16 +316,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
364
316
|
|
|
365
317
|
|
|
366
318
|
|
|
367
|
-
* @example
|
|
368
|
-
* // Get sorted keys
|
|
369
|
-
* const ts = new TreeSet<number>([30, 10, 20]);
|
|
370
|
-
* console.log([...ts.keys()]); // [10, 20, 30];
|
|
371
|
-
*/
|
|
372
|
-
keys(): IterableIterator<K>;
|
|
373
|
-
/**
|
|
374
|
-
* Iterate over values in ascending order.
|
|
375
|
-
*
|
|
376
|
-
* Note: for Set-like containers, `values()` is the same as `keys()`.
|
|
377
319
|
|
|
378
320
|
|
|
379
321
|
|
|
@@ -400,6 +342,22 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
400
342
|
|
|
401
343
|
|
|
402
344
|
|
|
345
|
+
* @example
|
|
346
|
+
* // Unique tags with sorted order
|
|
347
|
+
* const tags = new TreeSet<string>(['javascript', 'typescript', 'react', 'typescript', 'node']);
|
|
348
|
+
*
|
|
349
|
+
* // Duplicates removed, sorted alphabetically
|
|
350
|
+
* console.log([...tags]); // ['javascript', 'node', 'react', 'typescript'];
|
|
351
|
+
* console.log(tags.size); // 4;
|
|
352
|
+
*
|
|
353
|
+
* tags.add('angular');
|
|
354
|
+
* console.log(tags.first()); // 'angular';
|
|
355
|
+
* console.log(tags.last()); // 'typescript';
|
|
356
|
+
*/
|
|
357
|
+
add(key: K): this;
|
|
358
|
+
/**
|
|
359
|
+
* Test whether a key exists.
|
|
360
|
+
* @remarks Expected time O(log n)
|
|
403
361
|
|
|
404
362
|
|
|
405
363
|
|
|
@@ -412,16 +370,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
412
370
|
|
|
413
371
|
|
|
414
372
|
|
|
415
|
-
* @example
|
|
416
|
-
* // Get values (same as keys for Set)
|
|
417
|
-
* const ts = new TreeSet<number>([2, 1, 3]);
|
|
418
|
-
* console.log([...ts.values()]); // [1, 2, 3];
|
|
419
|
-
*/
|
|
420
|
-
values(): IterableIterator<K>;
|
|
421
|
-
/**
|
|
422
|
-
* Iterate over `[value, value]` pairs (native Set convention).
|
|
423
|
-
*
|
|
424
|
-
* Note: TreeSet stores only keys internally; `[k, k]` is created on-the-fly during iteration.
|
|
425
373
|
|
|
426
374
|
|
|
427
375
|
|
|
@@ -460,17 +408,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
460
408
|
|
|
461
409
|
|
|
462
410
|
|
|
463
|
-
* @example
|
|
464
|
-
* // Iterate entries
|
|
465
|
-
* const ts = new TreeSet<number>([3, 1, 2]);
|
|
466
|
-
* console.log([...ts.entries()].map(([k]) => k)); // [1, 2, 3];
|
|
467
|
-
*/
|
|
468
|
-
entries(): IterableIterator<[K, K]>;
|
|
469
|
-
[Symbol.iterator](): IterableIterator<K>;
|
|
470
|
-
/**
|
|
471
|
-
* Visit each value in ascending order.
|
|
472
|
-
*
|
|
473
|
-
* Callback follows native Set convention: `(value, value2, set)`.
|
|
474
411
|
|
|
475
412
|
|
|
476
413
|
|
|
@@ -509,19 +446,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
509
446
|
|
|
510
447
|
|
|
511
448
|
|
|
512
|
-
* @example
|
|
513
|
-
* // Execute for each
|
|
514
|
-
* const ts = new TreeSet<number>([3, 1, 2]);
|
|
515
|
-
* const keys: number[] = [];
|
|
516
|
-
* ts.forEach(k => keys.push(k));
|
|
517
|
-
* console.log(keys); // [1, 2, 3];
|
|
518
|
-
*/
|
|
519
|
-
forEach(cb: (value: K, value2: K, set: TreeSet<K>) => void, thisArg?: any): void;
|
|
520
|
-
/**
|
|
521
|
-
* Create a new TreeSet by mapping each value to a new key.
|
|
522
|
-
*
|
|
523
|
-
* This mirrors `RedBlackTree.map`: mapping produces a new ordered container.
|
|
524
|
-
* @remarks Time O(n log n) expected, Space O(n)
|
|
525
449
|
|
|
526
450
|
|
|
527
451
|
|
|
@@ -560,18 +484,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
560
484
|
|
|
561
485
|
|
|
562
486
|
|
|
563
|
-
* @example
|
|
564
|
-
* // Transform
|
|
565
|
-
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
566
|
-
* const doubled = ts.map(k => k * 2);
|
|
567
|
-
* console.log([...doubled]); // [2, 4, 6];
|
|
568
|
-
*/
|
|
569
|
-
map<MK>(callbackfn: TreeSetElementCallback<K, MK, TreeSet<K>>, options?: Omit<TreeSetOptions<MK>, 'toElementFn'> & {
|
|
570
|
-
comparator?: (a: MK, b: MK) => number;
|
|
571
|
-
}, thisArg?: unknown): TreeSet<MK>;
|
|
572
|
-
/**
|
|
573
|
-
* Create a new TreeSet containing only values that satisfy the predicate.
|
|
574
|
-
* @remarks Time O(n log n) expected, Space O(n)
|
|
575
487
|
|
|
576
488
|
|
|
577
489
|
|
|
@@ -595,6 +507,18 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
595
507
|
|
|
596
508
|
|
|
597
509
|
|
|
510
|
+
* @example
|
|
511
|
+
* // Checking membership in a sorted collection
|
|
512
|
+
* const allowed = new TreeSet<string>(['admin', 'editor', 'viewer']);
|
|
513
|
+
*
|
|
514
|
+
* console.log(allowed.has('admin')); // true;
|
|
515
|
+
* console.log(allowed.has('guest')); // false;
|
|
516
|
+
*/
|
|
517
|
+
has(key: K): boolean;
|
|
518
|
+
/**
|
|
519
|
+
* Delete a key.
|
|
520
|
+
* @returns `true` if the key existed; otherwise `false`.
|
|
521
|
+
* @remarks Expected time O(log n)
|
|
598
522
|
|
|
599
523
|
|
|
600
524
|
|
|
@@ -610,16 +534,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
610
534
|
|
|
611
535
|
|
|
612
536
|
|
|
613
|
-
* @example
|
|
614
|
-
* // Filter
|
|
615
|
-
* const ts = new TreeSet<number>([1, 2, 3, 4, 5]);
|
|
616
|
-
* const evens = ts.filter(k => k % 2 === 0);
|
|
617
|
-
* console.log([...evens]); // [2, 4];
|
|
618
|
-
*/
|
|
619
|
-
filter(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): TreeSet<K>;
|
|
620
|
-
/**
|
|
621
|
-
* Reduce values into a single accumulator.
|
|
622
|
-
* @remarks Time O(n), Space O(1)
|
|
623
537
|
|
|
624
538
|
|
|
625
539
|
|
|
@@ -658,16 +572,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
658
572
|
|
|
659
573
|
|
|
660
574
|
|
|
661
|
-
* @example
|
|
662
|
-
* // Aggregate
|
|
663
|
-
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
664
|
-
* const sum = ts.reduce((acc, k) => acc + k, 0);
|
|
665
|
-
* console.log(sum); // 6;
|
|
666
|
-
*/
|
|
667
|
-
reduce<A>(callbackfn: TreeSetReduceCallback<K, A, TreeSet<K>>, initialValue: A): A;
|
|
668
|
-
/**
|
|
669
|
-
* Test whether all values satisfy a predicate.
|
|
670
|
-
* @remarks Time O(n), Space O(1)
|
|
671
575
|
|
|
672
576
|
|
|
673
577
|
|
|
@@ -704,15 +608,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
704
608
|
|
|
705
609
|
|
|
706
610
|
|
|
707
|
-
* @example
|
|
708
|
-
* // Test all
|
|
709
|
-
* const ts = new TreeSet<number>([2, 4, 6]);
|
|
710
|
-
* console.log(ts.every(k => k > 0)); // true;
|
|
711
|
-
*/
|
|
712
|
-
every(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): boolean;
|
|
713
|
-
/**
|
|
714
|
-
* Test whether any value satisfies a predicate.
|
|
715
|
-
* @remarks Time O(n), Space O(1)
|
|
716
611
|
|
|
717
612
|
|
|
718
613
|
|
|
@@ -749,15 +644,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
749
644
|
|
|
750
645
|
|
|
751
646
|
|
|
752
|
-
* @example
|
|
753
|
-
* // Test any
|
|
754
|
-
* const ts = new TreeSet<number>([1, 3, 5]);
|
|
755
|
-
* console.log(ts.some(k => k === 3)); // true;
|
|
756
|
-
*/
|
|
757
|
-
some(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): boolean;
|
|
758
|
-
/**
|
|
759
|
-
* Find the first value that satisfies a predicate.
|
|
760
|
-
* @remarks Time O(n), Space O(1)
|
|
761
647
|
|
|
762
648
|
|
|
763
649
|
|
|
@@ -782,6 +668,2128 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
782
668
|
|
|
783
669
|
|
|
784
670
|
|
|
671
|
+
* @example
|
|
672
|
+
* // Removing elements while maintaining order
|
|
673
|
+
* const nums = new TreeSet<number>([1, 3, 5, 7, 9]);
|
|
674
|
+
*
|
|
675
|
+
* console.log(nums.delete(5)); // true;
|
|
676
|
+
* console.log(nums.delete(5)); // false; // already gone
|
|
677
|
+
* console.log([...nums]); // [1, 3, 7, 9];
|
|
678
|
+
*/
|
|
679
|
+
delete(key: K): boolean;
|
|
680
|
+
/**
|
|
681
|
+
* Remove all keys.
|
|
682
|
+
|
|
683
|
+
|
|
684
|
+
|
|
685
|
+
|
|
686
|
+
|
|
687
|
+
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
|
|
692
|
+
|
|
693
|
+
|
|
694
|
+
|
|
695
|
+
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
|
|
700
|
+
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
|
|
708
|
+
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
|
|
726
|
+
|
|
727
|
+
|
|
728
|
+
|
|
729
|
+
|
|
730
|
+
|
|
731
|
+
|
|
732
|
+
|
|
733
|
+
|
|
734
|
+
|
|
735
|
+
|
|
736
|
+
|
|
737
|
+
|
|
738
|
+
|
|
739
|
+
|
|
740
|
+
|
|
741
|
+
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
|
|
745
|
+
|
|
746
|
+
|
|
747
|
+
|
|
748
|
+
|
|
749
|
+
|
|
750
|
+
|
|
751
|
+
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
|
|
767
|
+
|
|
768
|
+
|
|
769
|
+
|
|
770
|
+
|
|
771
|
+
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
|
|
775
|
+
|
|
776
|
+
|
|
777
|
+
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
|
|
781
|
+
|
|
782
|
+
|
|
783
|
+
|
|
784
|
+
|
|
785
|
+
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
|
|
789
|
+
|
|
790
|
+
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
|
|
797
|
+
|
|
798
|
+
|
|
799
|
+
|
|
800
|
+
|
|
801
|
+
|
|
802
|
+
|
|
803
|
+
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
|
|
812
|
+
|
|
813
|
+
|
|
814
|
+
|
|
815
|
+
|
|
816
|
+
|
|
817
|
+
|
|
818
|
+
|
|
819
|
+
|
|
820
|
+
* @example
|
|
821
|
+
* // Remove all
|
|
822
|
+
* const ts = new TreeSet<number>([1, 2]);
|
|
823
|
+
* ts.clear();
|
|
824
|
+
* console.log(ts.isEmpty()); // true;
|
|
825
|
+
*/
|
|
826
|
+
clear(): void;
|
|
827
|
+
/**
|
|
828
|
+
* Iterate over keys in ascending order.
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
|
|
834
|
+
|
|
835
|
+
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
|
|
839
|
+
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
|
|
843
|
+
|
|
844
|
+
|
|
845
|
+
|
|
846
|
+
|
|
847
|
+
|
|
848
|
+
|
|
849
|
+
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
|
|
853
|
+
|
|
854
|
+
|
|
855
|
+
|
|
856
|
+
|
|
857
|
+
|
|
858
|
+
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
|
|
864
|
+
|
|
865
|
+
|
|
866
|
+
|
|
867
|
+
|
|
868
|
+
|
|
869
|
+
|
|
870
|
+
|
|
871
|
+
|
|
872
|
+
|
|
873
|
+
|
|
874
|
+
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
|
|
878
|
+
|
|
879
|
+
|
|
880
|
+
|
|
881
|
+
|
|
882
|
+
|
|
883
|
+
|
|
884
|
+
|
|
885
|
+
|
|
886
|
+
|
|
887
|
+
|
|
888
|
+
|
|
889
|
+
|
|
890
|
+
|
|
891
|
+
|
|
892
|
+
|
|
893
|
+
|
|
894
|
+
|
|
895
|
+
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
|
|
903
|
+
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
|
|
923
|
+
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
|
|
940
|
+
|
|
941
|
+
|
|
942
|
+
|
|
943
|
+
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
|
|
948
|
+
|
|
949
|
+
|
|
950
|
+
|
|
951
|
+
|
|
952
|
+
|
|
953
|
+
|
|
954
|
+
|
|
955
|
+
|
|
956
|
+
|
|
957
|
+
|
|
958
|
+
|
|
959
|
+
|
|
960
|
+
|
|
961
|
+
|
|
962
|
+
|
|
963
|
+
|
|
964
|
+
|
|
965
|
+
|
|
966
|
+
|
|
967
|
+
* @example
|
|
968
|
+
* // Get sorted keys
|
|
969
|
+
* const ts = new TreeSet<number>([30, 10, 20]);
|
|
970
|
+
* console.log([...ts.keys()]); // [10, 20, 30];
|
|
971
|
+
*/
|
|
972
|
+
keys(): IterableIterator<K>;
|
|
973
|
+
/**
|
|
974
|
+
* Iterate over values in ascending order.
|
|
975
|
+
*
|
|
976
|
+
* Note: for Set-like containers, `values()` is the same as `keys()`.
|
|
977
|
+
|
|
978
|
+
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
|
|
986
|
+
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
|
|
990
|
+
|
|
991
|
+
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
|
|
995
|
+
|
|
996
|
+
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
|
|
1000
|
+
|
|
1001
|
+
|
|
1002
|
+
|
|
1003
|
+
|
|
1004
|
+
|
|
1005
|
+
|
|
1006
|
+
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
|
|
1010
|
+
|
|
1011
|
+
|
|
1012
|
+
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
|
|
1016
|
+
|
|
1017
|
+
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
|
|
1024
|
+
|
|
1025
|
+
|
|
1026
|
+
|
|
1027
|
+
|
|
1028
|
+
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
|
|
1032
|
+
|
|
1033
|
+
|
|
1034
|
+
|
|
1035
|
+
|
|
1036
|
+
|
|
1037
|
+
|
|
1038
|
+
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
|
|
1043
|
+
|
|
1044
|
+
|
|
1045
|
+
|
|
1046
|
+
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
|
|
1055
|
+
|
|
1056
|
+
|
|
1057
|
+
|
|
1058
|
+
|
|
1059
|
+
|
|
1060
|
+
|
|
1061
|
+
|
|
1062
|
+
|
|
1063
|
+
|
|
1064
|
+
|
|
1065
|
+
|
|
1066
|
+
|
|
1067
|
+
|
|
1068
|
+
|
|
1069
|
+
|
|
1070
|
+
|
|
1071
|
+
|
|
1072
|
+
|
|
1073
|
+
|
|
1074
|
+
|
|
1075
|
+
|
|
1076
|
+
|
|
1077
|
+
|
|
1078
|
+
|
|
1079
|
+
|
|
1080
|
+
|
|
1081
|
+
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
|
|
1085
|
+
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
|
|
1089
|
+
|
|
1090
|
+
|
|
1091
|
+
|
|
1092
|
+
|
|
1093
|
+
|
|
1094
|
+
|
|
1095
|
+
|
|
1096
|
+
|
|
1097
|
+
|
|
1098
|
+
|
|
1099
|
+
|
|
1100
|
+
|
|
1101
|
+
|
|
1102
|
+
|
|
1103
|
+
|
|
1104
|
+
|
|
1105
|
+
|
|
1106
|
+
|
|
1107
|
+
|
|
1108
|
+
|
|
1109
|
+
|
|
1110
|
+
|
|
1111
|
+
|
|
1112
|
+
|
|
1113
|
+
|
|
1114
|
+
|
|
1115
|
+
* @example
|
|
1116
|
+
* // Get values (same as keys for Set)
|
|
1117
|
+
* const ts = new TreeSet<number>([2, 1, 3]);
|
|
1118
|
+
* console.log([...ts.values()]); // [1, 2, 3];
|
|
1119
|
+
*/
|
|
1120
|
+
values(): IterableIterator<K>;
|
|
1121
|
+
/**
|
|
1122
|
+
* Iterate over `[value, value]` pairs (native Set convention).
|
|
1123
|
+
*
|
|
1124
|
+
* Note: TreeSet stores only keys internally; `[k, k]` is created on-the-fly during iteration.
|
|
1125
|
+
|
|
1126
|
+
|
|
1127
|
+
|
|
1128
|
+
|
|
1129
|
+
|
|
1130
|
+
|
|
1131
|
+
|
|
1132
|
+
|
|
1133
|
+
|
|
1134
|
+
|
|
1135
|
+
|
|
1136
|
+
|
|
1137
|
+
|
|
1138
|
+
|
|
1139
|
+
|
|
1140
|
+
|
|
1141
|
+
|
|
1142
|
+
|
|
1143
|
+
|
|
1144
|
+
|
|
1145
|
+
|
|
1146
|
+
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
|
|
1153
|
+
|
|
1154
|
+
|
|
1155
|
+
|
|
1156
|
+
|
|
1157
|
+
|
|
1158
|
+
|
|
1159
|
+
|
|
1160
|
+
|
|
1161
|
+
|
|
1162
|
+
|
|
1163
|
+
|
|
1164
|
+
|
|
1165
|
+
|
|
1166
|
+
|
|
1167
|
+
|
|
1168
|
+
|
|
1169
|
+
|
|
1170
|
+
|
|
1171
|
+
|
|
1172
|
+
|
|
1173
|
+
|
|
1174
|
+
|
|
1175
|
+
|
|
1176
|
+
|
|
1177
|
+
|
|
1178
|
+
|
|
1179
|
+
|
|
1180
|
+
|
|
1181
|
+
|
|
1182
|
+
|
|
1183
|
+
|
|
1184
|
+
|
|
1185
|
+
|
|
1186
|
+
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
|
|
1190
|
+
|
|
1191
|
+
|
|
1192
|
+
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
|
|
1196
|
+
|
|
1197
|
+
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
|
|
1210
|
+
|
|
1211
|
+
|
|
1212
|
+
|
|
1213
|
+
|
|
1214
|
+
|
|
1215
|
+
|
|
1216
|
+
|
|
1217
|
+
|
|
1218
|
+
|
|
1219
|
+
|
|
1220
|
+
|
|
1221
|
+
|
|
1222
|
+
|
|
1223
|
+
|
|
1224
|
+
|
|
1225
|
+
|
|
1226
|
+
|
|
1227
|
+
|
|
1228
|
+
|
|
1229
|
+
|
|
1230
|
+
|
|
1231
|
+
|
|
1232
|
+
|
|
1233
|
+
|
|
1234
|
+
|
|
1235
|
+
|
|
1236
|
+
|
|
1237
|
+
|
|
1238
|
+
|
|
1239
|
+
|
|
1240
|
+
|
|
1241
|
+
|
|
1242
|
+
|
|
1243
|
+
|
|
1244
|
+
|
|
1245
|
+
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
|
|
1250
|
+
|
|
1251
|
+
|
|
1252
|
+
|
|
1253
|
+
|
|
1254
|
+
|
|
1255
|
+
|
|
1256
|
+
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
* @example
|
|
1264
|
+
* // Iterate entries
|
|
1265
|
+
* const ts = new TreeSet<number>([3, 1, 2]);
|
|
1266
|
+
* console.log([...ts.entries()].map(([k]) => k)); // [1, 2, 3];
|
|
1267
|
+
*/
|
|
1268
|
+
entries(): IterableIterator<[K, K]>;
|
|
1269
|
+
[Symbol.iterator](): IterableIterator<K>;
|
|
1270
|
+
/**
|
|
1271
|
+
* Visit each value in ascending order.
|
|
1272
|
+
*
|
|
1273
|
+
* Callback follows native Set convention: `(value, value2, set)`.
|
|
1274
|
+
|
|
1275
|
+
|
|
1276
|
+
|
|
1277
|
+
|
|
1278
|
+
|
|
1279
|
+
|
|
1280
|
+
|
|
1281
|
+
|
|
1282
|
+
|
|
1283
|
+
|
|
1284
|
+
|
|
1285
|
+
|
|
1286
|
+
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
|
|
1290
|
+
|
|
1291
|
+
|
|
1292
|
+
|
|
1293
|
+
|
|
1294
|
+
|
|
1295
|
+
|
|
1296
|
+
|
|
1297
|
+
|
|
1298
|
+
|
|
1299
|
+
|
|
1300
|
+
|
|
1301
|
+
|
|
1302
|
+
|
|
1303
|
+
|
|
1304
|
+
|
|
1305
|
+
|
|
1306
|
+
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
|
|
1314
|
+
|
|
1315
|
+
|
|
1316
|
+
|
|
1317
|
+
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
|
|
1321
|
+
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
|
+
|
|
1327
|
+
|
|
1328
|
+
|
|
1329
|
+
|
|
1330
|
+
|
|
1331
|
+
|
|
1332
|
+
|
|
1333
|
+
|
|
1334
|
+
|
|
1335
|
+
|
|
1336
|
+
|
|
1337
|
+
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
|
|
1341
|
+
|
|
1342
|
+
|
|
1343
|
+
|
|
1344
|
+
|
|
1345
|
+
|
|
1346
|
+
|
|
1347
|
+
|
|
1348
|
+
|
|
1349
|
+
|
|
1350
|
+
|
|
1351
|
+
|
|
1352
|
+
|
|
1353
|
+
|
|
1354
|
+
|
|
1355
|
+
|
|
1356
|
+
|
|
1357
|
+
|
|
1358
|
+
|
|
1359
|
+
|
|
1360
|
+
|
|
1361
|
+
|
|
1362
|
+
|
|
1363
|
+
|
|
1364
|
+
|
|
1365
|
+
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
|
|
1370
|
+
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
|
|
1374
|
+
|
|
1375
|
+
|
|
1376
|
+
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
|
|
1380
|
+
|
|
1381
|
+
|
|
1382
|
+
|
|
1383
|
+
|
|
1384
|
+
|
|
1385
|
+
|
|
1386
|
+
|
|
1387
|
+
|
|
1388
|
+
|
|
1389
|
+
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
|
|
1394
|
+
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
|
|
1398
|
+
|
|
1399
|
+
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
|
|
1403
|
+
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
|
|
1407
|
+
|
|
1408
|
+
|
|
1409
|
+
|
|
1410
|
+
|
|
1411
|
+
|
|
1412
|
+
* @example
|
|
1413
|
+
* // Execute for each
|
|
1414
|
+
* const ts = new TreeSet<number>([3, 1, 2]);
|
|
1415
|
+
* const keys: number[] = [];
|
|
1416
|
+
* ts.forEach(k => keys.push(k));
|
|
1417
|
+
* console.log(keys); // [1, 2, 3];
|
|
1418
|
+
*/
|
|
1419
|
+
forEach(cb: (value: K, value2: K, set: TreeSet<K>) => void, thisArg?: unknown): void;
|
|
1420
|
+
/**
|
|
1421
|
+
* Create a new TreeSet by mapping each value to a new key.
|
|
1422
|
+
*
|
|
1423
|
+
* This mirrors `RedBlackTree.map`: mapping produces a new ordered container.
|
|
1424
|
+
* @remarks Time O(n log n) expected, Space O(n)
|
|
1425
|
+
|
|
1426
|
+
|
|
1427
|
+
|
|
1428
|
+
|
|
1429
|
+
|
|
1430
|
+
|
|
1431
|
+
|
|
1432
|
+
|
|
1433
|
+
|
|
1434
|
+
|
|
1435
|
+
|
|
1436
|
+
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
|
|
1442
|
+
|
|
1443
|
+
|
|
1444
|
+
|
|
1445
|
+
|
|
1446
|
+
|
|
1447
|
+
|
|
1448
|
+
|
|
1449
|
+
|
|
1450
|
+
|
|
1451
|
+
|
|
1452
|
+
|
|
1453
|
+
|
|
1454
|
+
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
|
|
1458
|
+
|
|
1459
|
+
|
|
1460
|
+
|
|
1461
|
+
|
|
1462
|
+
|
|
1463
|
+
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
|
|
1467
|
+
|
|
1468
|
+
|
|
1469
|
+
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
|
|
1473
|
+
|
|
1474
|
+
|
|
1475
|
+
|
|
1476
|
+
|
|
1477
|
+
|
|
1478
|
+
|
|
1479
|
+
|
|
1480
|
+
|
|
1481
|
+
|
|
1482
|
+
|
|
1483
|
+
|
|
1484
|
+
|
|
1485
|
+
|
|
1486
|
+
|
|
1487
|
+
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
|
|
1491
|
+
|
|
1492
|
+
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
|
|
1499
|
+
|
|
1500
|
+
|
|
1501
|
+
|
|
1502
|
+
|
|
1503
|
+
|
|
1504
|
+
|
|
1505
|
+
|
|
1506
|
+
|
|
1507
|
+
|
|
1508
|
+
|
|
1509
|
+
|
|
1510
|
+
|
|
1511
|
+
|
|
1512
|
+
|
|
1513
|
+
|
|
1514
|
+
|
|
1515
|
+
|
|
1516
|
+
|
|
1517
|
+
|
|
1518
|
+
|
|
1519
|
+
|
|
1520
|
+
|
|
1521
|
+
|
|
1522
|
+
|
|
1523
|
+
|
|
1524
|
+
|
|
1525
|
+
|
|
1526
|
+
|
|
1527
|
+
|
|
1528
|
+
|
|
1529
|
+
|
|
1530
|
+
|
|
1531
|
+
|
|
1532
|
+
|
|
1533
|
+
|
|
1534
|
+
|
|
1535
|
+
|
|
1536
|
+
|
|
1537
|
+
|
|
1538
|
+
|
|
1539
|
+
|
|
1540
|
+
|
|
1541
|
+
|
|
1542
|
+
|
|
1543
|
+
|
|
1544
|
+
|
|
1545
|
+
|
|
1546
|
+
|
|
1547
|
+
|
|
1548
|
+
|
|
1549
|
+
|
|
1550
|
+
|
|
1551
|
+
|
|
1552
|
+
|
|
1553
|
+
|
|
1554
|
+
|
|
1555
|
+
|
|
1556
|
+
|
|
1557
|
+
|
|
1558
|
+
|
|
1559
|
+
|
|
1560
|
+
|
|
1561
|
+
|
|
1562
|
+
|
|
1563
|
+
* @example
|
|
1564
|
+
* // Transform
|
|
1565
|
+
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
1566
|
+
* const doubled = ts.map(k => k * 2);
|
|
1567
|
+
* console.log([...doubled]); // [2, 4, 6];
|
|
1568
|
+
*/
|
|
1569
|
+
map<MK>(callbackfn: TreeSetElementCallback<K, MK, TreeSet<K>>, options?: Omit<TreeSetOptions<MK>, 'toElementFn'> & {
|
|
1570
|
+
comparator?: (a: MK, b: MK) => number;
|
|
1571
|
+
}, thisArg?: unknown): TreeSet<MK>;
|
|
1572
|
+
/**
|
|
1573
|
+
* Create a new TreeSet containing only values that satisfy the predicate.
|
|
1574
|
+
* @remarks Time O(n log n) expected, Space O(n)
|
|
1575
|
+
|
|
1576
|
+
|
|
1577
|
+
|
|
1578
|
+
|
|
1579
|
+
|
|
1580
|
+
|
|
1581
|
+
|
|
1582
|
+
|
|
1583
|
+
|
|
1584
|
+
|
|
1585
|
+
|
|
1586
|
+
|
|
1587
|
+
|
|
1588
|
+
|
|
1589
|
+
|
|
1590
|
+
|
|
1591
|
+
|
|
1592
|
+
|
|
1593
|
+
|
|
1594
|
+
|
|
1595
|
+
|
|
1596
|
+
|
|
1597
|
+
|
|
1598
|
+
|
|
1599
|
+
|
|
1600
|
+
|
|
1601
|
+
|
|
1602
|
+
|
|
1603
|
+
|
|
1604
|
+
|
|
1605
|
+
|
|
1606
|
+
|
|
1607
|
+
|
|
1608
|
+
|
|
1609
|
+
|
|
1610
|
+
|
|
1611
|
+
|
|
1612
|
+
|
|
1613
|
+
|
|
1614
|
+
|
|
1615
|
+
|
|
1616
|
+
|
|
1617
|
+
|
|
1618
|
+
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
|
|
1622
|
+
|
|
1623
|
+
|
|
1624
|
+
|
|
1625
|
+
|
|
1626
|
+
|
|
1627
|
+
|
|
1628
|
+
|
|
1629
|
+
|
|
1630
|
+
|
|
1631
|
+
|
|
1632
|
+
|
|
1633
|
+
|
|
1634
|
+
|
|
1635
|
+
|
|
1636
|
+
|
|
1637
|
+
|
|
1638
|
+
|
|
1639
|
+
|
|
1640
|
+
|
|
1641
|
+
|
|
1642
|
+
|
|
1643
|
+
|
|
1644
|
+
|
|
1645
|
+
|
|
1646
|
+
|
|
1647
|
+
|
|
1648
|
+
|
|
1649
|
+
|
|
1650
|
+
|
|
1651
|
+
|
|
1652
|
+
|
|
1653
|
+
|
|
1654
|
+
|
|
1655
|
+
|
|
1656
|
+
|
|
1657
|
+
|
|
1658
|
+
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
|
|
1662
|
+
|
|
1663
|
+
|
|
1664
|
+
|
|
1665
|
+
|
|
1666
|
+
|
|
1667
|
+
|
|
1668
|
+
|
|
1669
|
+
|
|
1670
|
+
|
|
1671
|
+
|
|
1672
|
+
|
|
1673
|
+
|
|
1674
|
+
|
|
1675
|
+
|
|
1676
|
+
|
|
1677
|
+
|
|
1678
|
+
|
|
1679
|
+
|
|
1680
|
+
|
|
1681
|
+
|
|
1682
|
+
|
|
1683
|
+
|
|
1684
|
+
|
|
1685
|
+
|
|
1686
|
+
|
|
1687
|
+
|
|
1688
|
+
|
|
1689
|
+
|
|
1690
|
+
|
|
1691
|
+
|
|
1692
|
+
|
|
1693
|
+
|
|
1694
|
+
|
|
1695
|
+
|
|
1696
|
+
|
|
1697
|
+
|
|
1698
|
+
|
|
1699
|
+
|
|
1700
|
+
|
|
1701
|
+
|
|
1702
|
+
|
|
1703
|
+
|
|
1704
|
+
|
|
1705
|
+
|
|
1706
|
+
|
|
1707
|
+
|
|
1708
|
+
|
|
1709
|
+
|
|
1710
|
+
|
|
1711
|
+
|
|
1712
|
+
|
|
1713
|
+
* @example
|
|
1714
|
+
* // Filter
|
|
1715
|
+
* const ts = new TreeSet<number>([1, 2, 3, 4, 5]);
|
|
1716
|
+
* const evens = ts.filter(k => k % 2 === 0);
|
|
1717
|
+
* console.log([...evens]); // [2, 4];
|
|
1718
|
+
*/
|
|
1719
|
+
filter(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): TreeSet<K>;
|
|
1720
|
+
/**
|
|
1721
|
+
* Reduce values into a single accumulator.
|
|
1722
|
+
* @remarks Time O(n), Space O(1)
|
|
1723
|
+
|
|
1724
|
+
|
|
1725
|
+
|
|
1726
|
+
|
|
1727
|
+
|
|
1728
|
+
|
|
1729
|
+
|
|
1730
|
+
|
|
1731
|
+
|
|
1732
|
+
|
|
1733
|
+
|
|
1734
|
+
|
|
1735
|
+
|
|
1736
|
+
|
|
1737
|
+
|
|
1738
|
+
|
|
1739
|
+
|
|
1740
|
+
|
|
1741
|
+
|
|
1742
|
+
|
|
1743
|
+
|
|
1744
|
+
|
|
1745
|
+
|
|
1746
|
+
|
|
1747
|
+
|
|
1748
|
+
|
|
1749
|
+
|
|
1750
|
+
|
|
1751
|
+
|
|
1752
|
+
|
|
1753
|
+
|
|
1754
|
+
|
|
1755
|
+
|
|
1756
|
+
|
|
1757
|
+
|
|
1758
|
+
|
|
1759
|
+
|
|
1760
|
+
|
|
1761
|
+
|
|
1762
|
+
|
|
1763
|
+
|
|
1764
|
+
|
|
1765
|
+
|
|
1766
|
+
|
|
1767
|
+
|
|
1768
|
+
|
|
1769
|
+
|
|
1770
|
+
|
|
1771
|
+
|
|
1772
|
+
|
|
1773
|
+
|
|
1774
|
+
|
|
1775
|
+
|
|
1776
|
+
|
|
1777
|
+
|
|
1778
|
+
|
|
1779
|
+
|
|
1780
|
+
|
|
1781
|
+
|
|
1782
|
+
|
|
1783
|
+
|
|
1784
|
+
|
|
1785
|
+
|
|
1786
|
+
|
|
1787
|
+
|
|
1788
|
+
|
|
1789
|
+
|
|
1790
|
+
|
|
1791
|
+
|
|
1792
|
+
|
|
1793
|
+
|
|
1794
|
+
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
|
|
1798
|
+
|
|
1799
|
+
|
|
1800
|
+
|
|
1801
|
+
|
|
1802
|
+
|
|
1803
|
+
|
|
1804
|
+
|
|
1805
|
+
|
|
1806
|
+
|
|
1807
|
+
|
|
1808
|
+
|
|
1809
|
+
|
|
1810
|
+
|
|
1811
|
+
|
|
1812
|
+
|
|
1813
|
+
|
|
1814
|
+
|
|
1815
|
+
|
|
1816
|
+
|
|
1817
|
+
|
|
1818
|
+
|
|
1819
|
+
|
|
1820
|
+
|
|
1821
|
+
|
|
1822
|
+
|
|
1823
|
+
|
|
1824
|
+
|
|
1825
|
+
|
|
1826
|
+
|
|
1827
|
+
|
|
1828
|
+
|
|
1829
|
+
|
|
1830
|
+
|
|
1831
|
+
|
|
1832
|
+
|
|
1833
|
+
|
|
1834
|
+
|
|
1835
|
+
|
|
1836
|
+
|
|
1837
|
+
|
|
1838
|
+
|
|
1839
|
+
|
|
1840
|
+
|
|
1841
|
+
|
|
1842
|
+
|
|
1843
|
+
|
|
1844
|
+
|
|
1845
|
+
|
|
1846
|
+
|
|
1847
|
+
|
|
1848
|
+
|
|
1849
|
+
|
|
1850
|
+
|
|
1851
|
+
|
|
1852
|
+
|
|
1853
|
+
|
|
1854
|
+
|
|
1855
|
+
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
|
|
1859
|
+
|
|
1860
|
+
|
|
1861
|
+
* @example
|
|
1862
|
+
* // Aggregate
|
|
1863
|
+
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
1864
|
+
* const sum = ts.reduce((acc, k) => acc + k, 0);
|
|
1865
|
+
* console.log(sum); // 6;
|
|
1866
|
+
*/
|
|
1867
|
+
reduce<A>(callbackfn: TreeSetReduceCallback<K, A, TreeSet<K>>, initialValue: A): A;
|
|
1868
|
+
/**
|
|
1869
|
+
* Test whether all values satisfy a predicate.
|
|
1870
|
+
* @remarks Time O(n), Space O(1)
|
|
1871
|
+
|
|
1872
|
+
|
|
1873
|
+
|
|
1874
|
+
|
|
1875
|
+
|
|
1876
|
+
|
|
1877
|
+
|
|
1878
|
+
|
|
1879
|
+
|
|
1880
|
+
|
|
1881
|
+
|
|
1882
|
+
|
|
1883
|
+
|
|
1884
|
+
|
|
1885
|
+
|
|
1886
|
+
|
|
1887
|
+
|
|
1888
|
+
|
|
1889
|
+
|
|
1890
|
+
|
|
1891
|
+
|
|
1892
|
+
|
|
1893
|
+
|
|
1894
|
+
|
|
1895
|
+
|
|
1896
|
+
|
|
1897
|
+
|
|
1898
|
+
|
|
1899
|
+
|
|
1900
|
+
|
|
1901
|
+
|
|
1902
|
+
|
|
1903
|
+
|
|
1904
|
+
|
|
1905
|
+
|
|
1906
|
+
|
|
1907
|
+
|
|
1908
|
+
|
|
1909
|
+
|
|
1910
|
+
|
|
1911
|
+
|
|
1912
|
+
|
|
1913
|
+
|
|
1914
|
+
|
|
1915
|
+
|
|
1916
|
+
|
|
1917
|
+
|
|
1918
|
+
|
|
1919
|
+
|
|
1920
|
+
|
|
1921
|
+
|
|
1922
|
+
|
|
1923
|
+
|
|
1924
|
+
|
|
1925
|
+
|
|
1926
|
+
|
|
1927
|
+
|
|
1928
|
+
|
|
1929
|
+
|
|
1930
|
+
|
|
1931
|
+
|
|
1932
|
+
|
|
1933
|
+
|
|
1934
|
+
|
|
1935
|
+
|
|
1936
|
+
|
|
1937
|
+
|
|
1938
|
+
|
|
1939
|
+
|
|
1940
|
+
|
|
1941
|
+
|
|
1942
|
+
|
|
1943
|
+
|
|
1944
|
+
|
|
1945
|
+
|
|
1946
|
+
|
|
1947
|
+
|
|
1948
|
+
|
|
1949
|
+
|
|
1950
|
+
|
|
1951
|
+
|
|
1952
|
+
|
|
1953
|
+
|
|
1954
|
+
|
|
1955
|
+
|
|
1956
|
+
|
|
1957
|
+
|
|
1958
|
+
|
|
1959
|
+
|
|
1960
|
+
|
|
1961
|
+
|
|
1962
|
+
|
|
1963
|
+
|
|
1964
|
+
|
|
1965
|
+
|
|
1966
|
+
|
|
1967
|
+
|
|
1968
|
+
|
|
1969
|
+
|
|
1970
|
+
|
|
1971
|
+
|
|
1972
|
+
|
|
1973
|
+
|
|
1974
|
+
|
|
1975
|
+
|
|
1976
|
+
|
|
1977
|
+
|
|
1978
|
+
|
|
1979
|
+
|
|
1980
|
+
|
|
1981
|
+
|
|
1982
|
+
|
|
1983
|
+
|
|
1984
|
+
|
|
1985
|
+
|
|
1986
|
+
|
|
1987
|
+
|
|
1988
|
+
|
|
1989
|
+
|
|
1990
|
+
|
|
1991
|
+
|
|
1992
|
+
|
|
1993
|
+
|
|
1994
|
+
|
|
1995
|
+
|
|
1996
|
+
|
|
1997
|
+
|
|
1998
|
+
|
|
1999
|
+
|
|
2000
|
+
|
|
2001
|
+
|
|
2002
|
+
|
|
2003
|
+
|
|
2004
|
+
|
|
2005
|
+
|
|
2006
|
+
|
|
2007
|
+
* @example
|
|
2008
|
+
* // Test all
|
|
2009
|
+
* const ts = new TreeSet<number>([2, 4, 6]);
|
|
2010
|
+
* console.log(ts.every(k => k > 0)); // true;
|
|
2011
|
+
*/
|
|
2012
|
+
every(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): boolean;
|
|
2013
|
+
/**
|
|
2014
|
+
* Test whether any value satisfies a predicate.
|
|
2015
|
+
* @remarks Time O(n), Space O(1)
|
|
2016
|
+
|
|
2017
|
+
|
|
2018
|
+
|
|
2019
|
+
|
|
2020
|
+
|
|
2021
|
+
|
|
2022
|
+
|
|
2023
|
+
|
|
2024
|
+
|
|
2025
|
+
|
|
2026
|
+
|
|
2027
|
+
|
|
2028
|
+
|
|
2029
|
+
|
|
2030
|
+
|
|
2031
|
+
|
|
2032
|
+
|
|
2033
|
+
|
|
2034
|
+
|
|
2035
|
+
|
|
2036
|
+
|
|
2037
|
+
|
|
2038
|
+
|
|
2039
|
+
|
|
2040
|
+
|
|
2041
|
+
|
|
2042
|
+
|
|
2043
|
+
|
|
2044
|
+
|
|
2045
|
+
|
|
2046
|
+
|
|
2047
|
+
|
|
2048
|
+
|
|
2049
|
+
|
|
2050
|
+
|
|
2051
|
+
|
|
2052
|
+
|
|
2053
|
+
|
|
2054
|
+
|
|
2055
|
+
|
|
2056
|
+
|
|
2057
|
+
|
|
2058
|
+
|
|
2059
|
+
|
|
2060
|
+
|
|
2061
|
+
|
|
2062
|
+
|
|
2063
|
+
|
|
2064
|
+
|
|
2065
|
+
|
|
2066
|
+
|
|
2067
|
+
|
|
2068
|
+
|
|
2069
|
+
|
|
2070
|
+
|
|
2071
|
+
|
|
2072
|
+
|
|
2073
|
+
|
|
2074
|
+
|
|
2075
|
+
|
|
2076
|
+
|
|
2077
|
+
|
|
2078
|
+
|
|
2079
|
+
|
|
2080
|
+
|
|
2081
|
+
|
|
2082
|
+
|
|
2083
|
+
|
|
2084
|
+
|
|
2085
|
+
|
|
2086
|
+
|
|
2087
|
+
|
|
2088
|
+
|
|
2089
|
+
|
|
2090
|
+
|
|
2091
|
+
|
|
2092
|
+
|
|
2093
|
+
|
|
2094
|
+
|
|
2095
|
+
|
|
2096
|
+
|
|
2097
|
+
|
|
2098
|
+
|
|
2099
|
+
|
|
2100
|
+
|
|
2101
|
+
|
|
2102
|
+
|
|
2103
|
+
|
|
2104
|
+
|
|
2105
|
+
|
|
2106
|
+
|
|
2107
|
+
|
|
2108
|
+
|
|
2109
|
+
|
|
2110
|
+
|
|
2111
|
+
|
|
2112
|
+
|
|
2113
|
+
|
|
2114
|
+
|
|
2115
|
+
|
|
2116
|
+
|
|
2117
|
+
|
|
2118
|
+
|
|
2119
|
+
|
|
2120
|
+
|
|
2121
|
+
|
|
2122
|
+
|
|
2123
|
+
|
|
2124
|
+
|
|
2125
|
+
|
|
2126
|
+
|
|
2127
|
+
|
|
2128
|
+
|
|
2129
|
+
|
|
2130
|
+
|
|
2131
|
+
|
|
2132
|
+
|
|
2133
|
+
|
|
2134
|
+
|
|
2135
|
+
|
|
2136
|
+
|
|
2137
|
+
|
|
2138
|
+
|
|
2139
|
+
|
|
2140
|
+
|
|
2141
|
+
|
|
2142
|
+
|
|
2143
|
+
|
|
2144
|
+
|
|
2145
|
+
|
|
2146
|
+
|
|
2147
|
+
|
|
2148
|
+
|
|
2149
|
+
|
|
2150
|
+
|
|
2151
|
+
|
|
2152
|
+
* @example
|
|
2153
|
+
* // Test any
|
|
2154
|
+
* const ts = new TreeSet<number>([1, 3, 5]);
|
|
2155
|
+
* console.log(ts.some(k => k === 3)); // true;
|
|
2156
|
+
*/
|
|
2157
|
+
some(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): boolean;
|
|
2158
|
+
/**
|
|
2159
|
+
* Find the first value that satisfies a predicate.
|
|
2160
|
+
* @remarks Time O(n), Space O(1)
|
|
2161
|
+
|
|
2162
|
+
|
|
2163
|
+
|
|
2164
|
+
|
|
2165
|
+
|
|
2166
|
+
|
|
2167
|
+
|
|
2168
|
+
|
|
2169
|
+
|
|
2170
|
+
|
|
2171
|
+
|
|
2172
|
+
|
|
2173
|
+
|
|
2174
|
+
|
|
2175
|
+
|
|
2176
|
+
|
|
2177
|
+
|
|
2178
|
+
|
|
2179
|
+
|
|
2180
|
+
|
|
2181
|
+
|
|
2182
|
+
|
|
2183
|
+
|
|
2184
|
+
|
|
2185
|
+
|
|
2186
|
+
|
|
2187
|
+
|
|
2188
|
+
|
|
2189
|
+
|
|
2190
|
+
|
|
2191
|
+
|
|
2192
|
+
|
|
2193
|
+
|
|
2194
|
+
|
|
2195
|
+
|
|
2196
|
+
|
|
2197
|
+
|
|
2198
|
+
|
|
2199
|
+
|
|
2200
|
+
|
|
2201
|
+
|
|
2202
|
+
|
|
2203
|
+
|
|
2204
|
+
|
|
2205
|
+
|
|
2206
|
+
|
|
2207
|
+
|
|
2208
|
+
|
|
2209
|
+
|
|
2210
|
+
|
|
2211
|
+
|
|
2212
|
+
|
|
2213
|
+
|
|
2214
|
+
|
|
2215
|
+
|
|
2216
|
+
|
|
2217
|
+
|
|
2218
|
+
|
|
2219
|
+
|
|
2220
|
+
|
|
2221
|
+
|
|
2222
|
+
|
|
2223
|
+
|
|
2224
|
+
|
|
2225
|
+
|
|
2226
|
+
|
|
2227
|
+
|
|
2228
|
+
|
|
2229
|
+
|
|
2230
|
+
|
|
2231
|
+
|
|
2232
|
+
|
|
2233
|
+
|
|
2234
|
+
|
|
2235
|
+
|
|
2236
|
+
|
|
2237
|
+
|
|
2238
|
+
|
|
2239
|
+
|
|
2240
|
+
|
|
2241
|
+
|
|
2242
|
+
|
|
2243
|
+
|
|
2244
|
+
|
|
2245
|
+
|
|
2246
|
+
|
|
2247
|
+
|
|
2248
|
+
|
|
2249
|
+
|
|
2250
|
+
|
|
2251
|
+
|
|
2252
|
+
|
|
2253
|
+
|
|
2254
|
+
|
|
2255
|
+
|
|
2256
|
+
|
|
2257
|
+
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
|
|
2261
|
+
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
|
|
2265
|
+
|
|
2266
|
+
|
|
2267
|
+
|
|
2268
|
+
|
|
2269
|
+
|
|
2270
|
+
|
|
2271
|
+
|
|
2272
|
+
|
|
2273
|
+
|
|
2274
|
+
|
|
2275
|
+
|
|
2276
|
+
|
|
2277
|
+
|
|
2278
|
+
|
|
2279
|
+
|
|
2280
|
+
|
|
2281
|
+
|
|
2282
|
+
|
|
2283
|
+
|
|
2284
|
+
|
|
2285
|
+
|
|
2286
|
+
|
|
2287
|
+
|
|
2288
|
+
|
|
2289
|
+
|
|
2290
|
+
|
|
2291
|
+
|
|
2292
|
+
|
|
2293
|
+
|
|
2294
|
+
|
|
2295
|
+
|
|
2296
|
+
|
|
2297
|
+
* @example
|
|
2298
|
+
* // Find entry
|
|
2299
|
+
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
2300
|
+
* const found = ts.find(k => k === 2);
|
|
2301
|
+
* console.log(found); // 2;
|
|
2302
|
+
*/
|
|
2303
|
+
find(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): K | undefined;
|
|
2304
|
+
/**
|
|
2305
|
+
* Materialize the set into an array of keys.
|
|
2306
|
+
* @remarks Time O(n), Space O(n)
|
|
2307
|
+
|
|
2308
|
+
|
|
2309
|
+
|
|
2310
|
+
|
|
2311
|
+
|
|
2312
|
+
|
|
2313
|
+
|
|
2314
|
+
|
|
2315
|
+
|
|
2316
|
+
|
|
2317
|
+
|
|
2318
|
+
|
|
2319
|
+
|
|
2320
|
+
|
|
2321
|
+
|
|
2322
|
+
|
|
2323
|
+
|
|
2324
|
+
|
|
2325
|
+
|
|
2326
|
+
|
|
2327
|
+
|
|
2328
|
+
|
|
2329
|
+
|
|
2330
|
+
|
|
2331
|
+
|
|
2332
|
+
|
|
2333
|
+
|
|
2334
|
+
|
|
2335
|
+
|
|
2336
|
+
|
|
2337
|
+
|
|
2338
|
+
|
|
2339
|
+
|
|
2340
|
+
|
|
2341
|
+
|
|
2342
|
+
|
|
2343
|
+
|
|
2344
|
+
|
|
2345
|
+
|
|
2346
|
+
|
|
2347
|
+
|
|
2348
|
+
|
|
2349
|
+
|
|
2350
|
+
|
|
2351
|
+
|
|
2352
|
+
|
|
2353
|
+
|
|
2354
|
+
|
|
2355
|
+
|
|
2356
|
+
|
|
2357
|
+
|
|
2358
|
+
|
|
2359
|
+
|
|
2360
|
+
|
|
2361
|
+
|
|
2362
|
+
|
|
2363
|
+
|
|
2364
|
+
|
|
2365
|
+
|
|
2366
|
+
|
|
2367
|
+
|
|
2368
|
+
|
|
2369
|
+
|
|
2370
|
+
|
|
2371
|
+
|
|
2372
|
+
|
|
2373
|
+
|
|
2374
|
+
|
|
2375
|
+
|
|
2376
|
+
|
|
2377
|
+
|
|
2378
|
+
|
|
2379
|
+
|
|
2380
|
+
|
|
2381
|
+
|
|
2382
|
+
|
|
2383
|
+
|
|
2384
|
+
|
|
2385
|
+
|
|
2386
|
+
|
|
2387
|
+
|
|
2388
|
+
|
|
2389
|
+
|
|
2390
|
+
|
|
2391
|
+
|
|
2392
|
+
|
|
2393
|
+
|
|
2394
|
+
|
|
2395
|
+
|
|
2396
|
+
|
|
2397
|
+
|
|
2398
|
+
|
|
2399
|
+
|
|
2400
|
+
|
|
2401
|
+
|
|
2402
|
+
|
|
2403
|
+
|
|
2404
|
+
|
|
2405
|
+
|
|
2406
|
+
|
|
2407
|
+
|
|
2408
|
+
|
|
2409
|
+
|
|
2410
|
+
|
|
2411
|
+
|
|
2412
|
+
|
|
2413
|
+
|
|
2414
|
+
|
|
2415
|
+
|
|
2416
|
+
|
|
2417
|
+
|
|
2418
|
+
|
|
2419
|
+
|
|
2420
|
+
|
|
2421
|
+
|
|
2422
|
+
|
|
2423
|
+
|
|
2424
|
+
|
|
2425
|
+
|
|
2426
|
+
|
|
2427
|
+
|
|
2428
|
+
|
|
2429
|
+
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
|
|
2433
|
+
|
|
2434
|
+
|
|
2435
|
+
|
|
2436
|
+
|
|
2437
|
+
|
|
2438
|
+
|
|
2439
|
+
|
|
2440
|
+
|
|
2441
|
+
|
|
2442
|
+
|
|
2443
|
+
|
|
2444
|
+
|
|
2445
|
+
* @example
|
|
2446
|
+
* // Convert to array
|
|
2447
|
+
* const ts = new TreeSet<number>([3, 1, 2]);
|
|
2448
|
+
* console.log(ts.toArray()); // [1, 2, 3];
|
|
2449
|
+
*/
|
|
2450
|
+
toArray(): K[];
|
|
2451
|
+
/**
|
|
2452
|
+
* Print a human-friendly representation.
|
|
2453
|
+
* @remarks Time O(n), Space O(n)
|
|
2454
|
+
|
|
2455
|
+
|
|
2456
|
+
|
|
2457
|
+
|
|
2458
|
+
|
|
2459
|
+
|
|
2460
|
+
|
|
2461
|
+
|
|
2462
|
+
|
|
2463
|
+
|
|
2464
|
+
|
|
2465
|
+
|
|
2466
|
+
|
|
2467
|
+
|
|
2468
|
+
|
|
2469
|
+
|
|
2470
|
+
|
|
2471
|
+
|
|
2472
|
+
|
|
2473
|
+
|
|
2474
|
+
|
|
2475
|
+
|
|
2476
|
+
|
|
2477
|
+
|
|
2478
|
+
|
|
2479
|
+
|
|
2480
|
+
|
|
2481
|
+
|
|
2482
|
+
|
|
2483
|
+
|
|
2484
|
+
|
|
2485
|
+
|
|
2486
|
+
|
|
2487
|
+
|
|
2488
|
+
|
|
2489
|
+
|
|
2490
|
+
|
|
2491
|
+
|
|
2492
|
+
|
|
2493
|
+
|
|
2494
|
+
|
|
2495
|
+
|
|
2496
|
+
|
|
2497
|
+
|
|
2498
|
+
|
|
2499
|
+
|
|
2500
|
+
|
|
2501
|
+
|
|
2502
|
+
|
|
2503
|
+
|
|
2504
|
+
|
|
2505
|
+
|
|
2506
|
+
|
|
2507
|
+
|
|
2508
|
+
|
|
2509
|
+
|
|
2510
|
+
|
|
2511
|
+
|
|
2512
|
+
|
|
2513
|
+
|
|
2514
|
+
|
|
2515
|
+
|
|
2516
|
+
|
|
2517
|
+
|
|
2518
|
+
|
|
2519
|
+
|
|
2520
|
+
|
|
2521
|
+
|
|
2522
|
+
|
|
2523
|
+
|
|
2524
|
+
|
|
2525
|
+
|
|
2526
|
+
|
|
2527
|
+
|
|
2528
|
+
|
|
2529
|
+
|
|
2530
|
+
|
|
2531
|
+
|
|
2532
|
+
|
|
2533
|
+
|
|
2534
|
+
|
|
2535
|
+
|
|
2536
|
+
|
|
2537
|
+
|
|
2538
|
+
|
|
2539
|
+
|
|
2540
|
+
|
|
2541
|
+
|
|
2542
|
+
|
|
2543
|
+
|
|
2544
|
+
|
|
2545
|
+
|
|
2546
|
+
|
|
2547
|
+
|
|
2548
|
+
|
|
2549
|
+
|
|
2550
|
+
|
|
2551
|
+
|
|
2552
|
+
|
|
2553
|
+
|
|
2554
|
+
|
|
2555
|
+
|
|
2556
|
+
|
|
2557
|
+
|
|
2558
|
+
|
|
2559
|
+
|
|
2560
|
+
|
|
2561
|
+
|
|
2562
|
+
|
|
2563
|
+
|
|
2564
|
+
|
|
2565
|
+
|
|
2566
|
+
|
|
2567
|
+
|
|
2568
|
+
|
|
2569
|
+
|
|
2570
|
+
|
|
2571
|
+
|
|
2572
|
+
|
|
2573
|
+
|
|
2574
|
+
|
|
2575
|
+
|
|
2576
|
+
|
|
2577
|
+
|
|
2578
|
+
|
|
2579
|
+
|
|
2580
|
+
|
|
2581
|
+
|
|
2582
|
+
|
|
2583
|
+
|
|
2584
|
+
|
|
2585
|
+
|
|
2586
|
+
|
|
2587
|
+
|
|
2588
|
+
|
|
2589
|
+
|
|
2590
|
+
|
|
2591
|
+
|
|
2592
|
+
* @example
|
|
2593
|
+
* // Display tree
|
|
2594
|
+
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
2595
|
+
* expect(() => ts.print()).not.toThrow();
|
|
2596
|
+
*/
|
|
2597
|
+
print(): void;
|
|
2598
|
+
/**
|
|
2599
|
+
* Smallest key in the set.
|
|
2600
|
+
|
|
2601
|
+
|
|
2602
|
+
|
|
2603
|
+
|
|
2604
|
+
|
|
2605
|
+
|
|
2606
|
+
|
|
2607
|
+
|
|
2608
|
+
|
|
2609
|
+
|
|
2610
|
+
|
|
2611
|
+
|
|
2612
|
+
|
|
2613
|
+
|
|
2614
|
+
|
|
2615
|
+
|
|
2616
|
+
|
|
2617
|
+
|
|
2618
|
+
|
|
2619
|
+
|
|
2620
|
+
|
|
2621
|
+
|
|
2622
|
+
|
|
2623
|
+
|
|
2624
|
+
|
|
2625
|
+
|
|
2626
|
+
|
|
2627
|
+
|
|
2628
|
+
|
|
2629
|
+
|
|
2630
|
+
|
|
2631
|
+
* @example
|
|
2632
|
+
* // Student grade ranking with custom comparator
|
|
2633
|
+
* interface Student {
|
|
2634
|
+
* name: string;
|
|
2635
|
+
* gpa: number;
|
|
2636
|
+
* }
|
|
2637
|
+
*
|
|
2638
|
+
* const ranking = new TreeSet<Student>(
|
|
2639
|
+
* [
|
|
2640
|
+
* { name: 'Alice', gpa: 3.8 },
|
|
2641
|
+
* { name: 'Bob', gpa: 3.5 },
|
|
2642
|
+
* { name: 'Charlie', gpa: 3.9 },
|
|
2643
|
+
* { name: 'Diana', gpa: 3.5 }
|
|
2644
|
+
* ],
|
|
2645
|
+
* { comparator: (a, b) => b.gpa - a.gpa || a.name.localeCompare(b.name) }
|
|
2646
|
+
* );
|
|
2647
|
+
*
|
|
2648
|
+
* // Sorted by GPA descending, then name ascending
|
|
2649
|
+
* const names = [...ranking].map(s => s.name);
|
|
2650
|
+
* console.log(names); // ['Charlie', 'Alice', 'Bob', 'Diana'];
|
|
2651
|
+
*
|
|
2652
|
+
* // Top student
|
|
2653
|
+
* console.log(ranking.first()?.name); // 'Charlie';
|
|
2654
|
+
*
|
|
2655
|
+
* // Filter students with GPA >= 3.8
|
|
2656
|
+
* const honors = ranking.filter(s => s.gpa >= 3.8);
|
|
2657
|
+
* console.log(honors.toArray().map(s => s.name)); // ['Charlie', 'Alice'];
|
|
2658
|
+
*/
|
|
2659
|
+
first(): K | undefined;
|
|
2660
|
+
/**
|
|
2661
|
+
* Largest key in the set.
|
|
2662
|
+
|
|
2663
|
+
|
|
2664
|
+
|
|
2665
|
+
|
|
2666
|
+
|
|
2667
|
+
|
|
2668
|
+
|
|
2669
|
+
|
|
2670
|
+
|
|
2671
|
+
|
|
2672
|
+
|
|
2673
|
+
|
|
2674
|
+
|
|
2675
|
+
|
|
2676
|
+
|
|
2677
|
+
|
|
2678
|
+
|
|
2679
|
+
|
|
2680
|
+
|
|
2681
|
+
|
|
2682
|
+
|
|
2683
|
+
|
|
2684
|
+
|
|
2685
|
+
|
|
2686
|
+
|
|
2687
|
+
|
|
2688
|
+
|
|
2689
|
+
|
|
2690
|
+
|
|
2691
|
+
|
|
2692
|
+
|
|
2693
|
+
* @example
|
|
2694
|
+
* // Get the maximum element
|
|
2695
|
+
* const temps = new TreeSet<number>([18, 22, 15, 30, 25]);
|
|
2696
|
+
* console.log(temps.last()); // 30;
|
|
2697
|
+
* console.log(temps.first()); // 15;
|
|
2698
|
+
*/
|
|
2699
|
+
last(): K | undefined;
|
|
2700
|
+
/**
|
|
2701
|
+
* Remove and return the smallest key.
|
|
2702
|
+
|
|
2703
|
+
|
|
2704
|
+
|
|
2705
|
+
|
|
2706
|
+
|
|
2707
|
+
|
|
2708
|
+
|
|
2709
|
+
|
|
2710
|
+
|
|
2711
|
+
|
|
2712
|
+
|
|
2713
|
+
|
|
2714
|
+
|
|
2715
|
+
|
|
2716
|
+
|
|
2717
|
+
|
|
2718
|
+
|
|
2719
|
+
|
|
2720
|
+
|
|
2721
|
+
|
|
2722
|
+
|
|
2723
|
+
|
|
2724
|
+
|
|
2725
|
+
|
|
2726
|
+
|
|
2727
|
+
|
|
2728
|
+
|
|
2729
|
+
|
|
2730
|
+
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
* @example
|
|
2734
|
+
* // Remove and return minimum
|
|
2735
|
+
* const queue = new TreeSet<number>([5, 1, 8, 3]);
|
|
2736
|
+
*
|
|
2737
|
+
* console.log(queue.pollFirst()); // 1;
|
|
2738
|
+
* console.log(queue.pollFirst()); // 3;
|
|
2739
|
+
* console.log(queue.size); // 2;
|
|
2740
|
+
*/
|
|
2741
|
+
pollFirst(): K | undefined;
|
|
2742
|
+
/**
|
|
2743
|
+
* Remove and return the largest key.
|
|
2744
|
+
|
|
2745
|
+
|
|
2746
|
+
|
|
2747
|
+
|
|
2748
|
+
|
|
2749
|
+
|
|
2750
|
+
|
|
2751
|
+
|
|
2752
|
+
|
|
2753
|
+
|
|
2754
|
+
|
|
2755
|
+
|
|
2756
|
+
|
|
2757
|
+
|
|
2758
|
+
|
|
2759
|
+
|
|
2760
|
+
|
|
2761
|
+
|
|
2762
|
+
|
|
2763
|
+
|
|
2764
|
+
|
|
2765
|
+
|
|
2766
|
+
|
|
2767
|
+
|
|
2768
|
+
|
|
2769
|
+
|
|
2770
|
+
|
|
2771
|
+
|
|
2772
|
+
|
|
2773
|
+
|
|
2774
|
+
|
|
2775
|
+
* @example
|
|
2776
|
+
* // Remove and return maximum
|
|
2777
|
+
* const stack = new TreeSet<number>([10, 20, 30]);
|
|
2778
|
+
*
|
|
2779
|
+
* console.log(stack.pollLast()); // 30;
|
|
2780
|
+
* console.log(stack.size); // 2;
|
|
2781
|
+
*/
|
|
2782
|
+
pollLast(): K | undefined;
|
|
2783
|
+
/**
|
|
2784
|
+
* Smallest key that is >= the given key.
|
|
2785
|
+
|
|
2786
|
+
|
|
2787
|
+
|
|
2788
|
+
|
|
2789
|
+
|
|
2790
|
+
|
|
2791
|
+
|
|
2792
|
+
|
|
785
2793
|
|
|
786
2794
|
|
|
787
2795
|
|
|
@@ -794,16 +2802,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
794
2802
|
|
|
795
2803
|
|
|
796
2804
|
|
|
797
|
-
* @example
|
|
798
|
-
* // Find entry
|
|
799
|
-
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
800
|
-
* const found = ts.find(k => k === 2);
|
|
801
|
-
* console.log(found); // 2;
|
|
802
|
-
*/
|
|
803
|
-
find(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): K | undefined;
|
|
804
|
-
/**
|
|
805
|
-
* Materialize the set into an array of keys.
|
|
806
|
-
* @remarks Time O(n), Space O(n)
|
|
807
2805
|
|
|
808
2806
|
|
|
809
2807
|
|
|
@@ -842,15 +2840,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
842
2840
|
|
|
843
2841
|
|
|
844
2842
|
|
|
845
|
-
* @example
|
|
846
|
-
* // Convert to array
|
|
847
|
-
* const ts = new TreeSet<number>([3, 1, 2]);
|
|
848
|
-
* console.log(ts.toArray()); // [1, 2, 3];
|
|
849
|
-
*/
|
|
850
|
-
toArray(): K[];
|
|
851
|
-
/**
|
|
852
|
-
* Print a human-friendly representation.
|
|
853
|
-
* @remarks Time O(n), Space O(n)
|
|
854
2843
|
|
|
855
2844
|
|
|
856
2845
|
|
|
@@ -889,14 +2878,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
889
2878
|
|
|
890
2879
|
|
|
891
2880
|
|
|
892
|
-
* @example
|
|
893
|
-
* // Display tree
|
|
894
|
-
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
895
|
-
* expect(() => ts.print()).not.toThrow();
|
|
896
|
-
*/
|
|
897
|
-
print(): void;
|
|
898
|
-
/**
|
|
899
|
-
* Smallest key in the set.
|
|
900
2881
|
|
|
901
2882
|
|
|
902
2883
|
|
|
@@ -908,37 +2889,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
908
2889
|
|
|
909
2890
|
|
|
910
2891
|
|
|
911
|
-
* @example
|
|
912
|
-
* // Student grade ranking with custom comparator
|
|
913
|
-
* interface Student {
|
|
914
|
-
* name: string;
|
|
915
|
-
* gpa: number;
|
|
916
|
-
* }
|
|
917
|
-
*
|
|
918
|
-
* const ranking = new TreeSet<Student>(
|
|
919
|
-
* [
|
|
920
|
-
* { name: 'Alice', gpa: 3.8 },
|
|
921
|
-
* { name: 'Bob', gpa: 3.5 },
|
|
922
|
-
* { name: 'Charlie', gpa: 3.9 },
|
|
923
|
-
* { name: 'Diana', gpa: 3.5 }
|
|
924
|
-
* ],
|
|
925
|
-
* { comparator: (a, b) => b.gpa - a.gpa || a.name.localeCompare(b.name) }
|
|
926
|
-
* );
|
|
927
|
-
*
|
|
928
|
-
* // Sorted by GPA descending, then name ascending
|
|
929
|
-
* const names = [...ranking].map(s => s.name);
|
|
930
|
-
* console.log(names); // ['Charlie', 'Alice', 'Bob', 'Diana'];
|
|
931
|
-
*
|
|
932
|
-
* // Top student
|
|
933
|
-
* console.log(ranking.first()?.name); // 'Charlie';
|
|
934
|
-
*
|
|
935
|
-
* // Filter students with GPA >= 3.8
|
|
936
|
-
* const honors = ranking.filter(s => s.gpa >= 3.8);
|
|
937
|
-
* console.log(honors.toArray().map(s => s.name)); // ['Charlie', 'Alice'];
|
|
938
|
-
*/
|
|
939
|
-
first(): K | undefined;
|
|
940
|
-
/**
|
|
941
|
-
* Largest key in the set.
|
|
942
2892
|
|
|
943
2893
|
|
|
944
2894
|
|
|
@@ -951,14 +2901,213 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
951
2901
|
|
|
952
2902
|
|
|
953
2903
|
* @example
|
|
954
|
-
* //
|
|
955
|
-
*
|
|
956
|
-
*
|
|
957
|
-
*
|
|
2904
|
+
* // Finding nearest available time slot
|
|
2905
|
+
* // Available appointment times (minutes from midnight)
|
|
2906
|
+
* const slots = new TreeSet<number>([540, 600, 660, 720, 840, 900]);
|
|
2907
|
+
*
|
|
2908
|
+
* // Customer wants something around 10:30 (630 min)
|
|
2909
|
+
* const nearest = slots.ceiling(630);
|
|
2910
|
+
* console.log(nearest); // 660; // 11:00 AM
|
|
2911
|
+
*
|
|
2912
|
+
* // What's the latest slot before 2:00 PM (840)?
|
|
2913
|
+
* const before2pm = slots.lower(840);
|
|
2914
|
+
* console.log(before2pm); // 720; // 12:00 PM
|
|
2915
|
+
*
|
|
2916
|
+
* // Book the 11:00 slot
|
|
2917
|
+
* slots.delete(660);
|
|
2918
|
+
* console.log(slots.ceiling(630)); // 720;
|
|
958
2919
|
*/
|
|
959
|
-
|
|
2920
|
+
ceiling(key: K): K | undefined;
|
|
960
2921
|
/**
|
|
961
|
-
*
|
|
2922
|
+
* Largest key that is <= the given key.
|
|
2923
|
+
|
|
2924
|
+
|
|
2925
|
+
|
|
2926
|
+
|
|
2927
|
+
|
|
2928
|
+
|
|
2929
|
+
|
|
2930
|
+
|
|
2931
|
+
|
|
2932
|
+
|
|
2933
|
+
|
|
2934
|
+
|
|
2935
|
+
|
|
2936
|
+
|
|
2937
|
+
|
|
2938
|
+
|
|
2939
|
+
|
|
2940
|
+
|
|
2941
|
+
|
|
2942
|
+
|
|
2943
|
+
|
|
2944
|
+
|
|
2945
|
+
|
|
2946
|
+
|
|
2947
|
+
|
|
2948
|
+
|
|
2949
|
+
|
|
2950
|
+
|
|
2951
|
+
|
|
2952
|
+
|
|
2953
|
+
|
|
2954
|
+
|
|
2955
|
+
|
|
2956
|
+
|
|
2957
|
+
|
|
2958
|
+
|
|
2959
|
+
|
|
2960
|
+
|
|
2961
|
+
|
|
2962
|
+
|
|
2963
|
+
|
|
2964
|
+
|
|
2965
|
+
|
|
2966
|
+
|
|
2967
|
+
|
|
2968
|
+
|
|
2969
|
+
|
|
2970
|
+
|
|
2971
|
+
|
|
2972
|
+
|
|
2973
|
+
|
|
2974
|
+
|
|
2975
|
+
|
|
2976
|
+
|
|
2977
|
+
|
|
2978
|
+
|
|
2979
|
+
|
|
2980
|
+
|
|
2981
|
+
|
|
2982
|
+
|
|
2983
|
+
|
|
2984
|
+
|
|
2985
|
+
|
|
2986
|
+
|
|
2987
|
+
|
|
2988
|
+
|
|
2989
|
+
|
|
2990
|
+
|
|
2991
|
+
|
|
2992
|
+
|
|
2993
|
+
|
|
2994
|
+
|
|
2995
|
+
|
|
2996
|
+
|
|
2997
|
+
|
|
2998
|
+
|
|
2999
|
+
|
|
3000
|
+
|
|
3001
|
+
|
|
3002
|
+
|
|
3003
|
+
|
|
3004
|
+
|
|
3005
|
+
|
|
3006
|
+
|
|
3007
|
+
|
|
3008
|
+
|
|
3009
|
+
|
|
3010
|
+
|
|
3011
|
+
|
|
3012
|
+
|
|
3013
|
+
|
|
3014
|
+
|
|
3015
|
+
|
|
3016
|
+
|
|
3017
|
+
|
|
3018
|
+
|
|
3019
|
+
|
|
3020
|
+
|
|
3021
|
+
|
|
3022
|
+
|
|
3023
|
+
|
|
3024
|
+
|
|
3025
|
+
|
|
3026
|
+
|
|
3027
|
+
|
|
3028
|
+
|
|
3029
|
+
|
|
3030
|
+
|
|
3031
|
+
|
|
3032
|
+
|
|
3033
|
+
|
|
3034
|
+
|
|
3035
|
+
|
|
3036
|
+
|
|
3037
|
+
|
|
3038
|
+
|
|
3039
|
+
|
|
3040
|
+
|
|
3041
|
+
* @example
|
|
3042
|
+
* // Largest element ≤ target
|
|
3043
|
+
* const breakpoints = new TreeSet<number>([320, 768, 1024, 1280, 1920]);
|
|
3044
|
+
*
|
|
3045
|
+
* // Current width is 800 → which breakpoint applies?
|
|
3046
|
+
* console.log(breakpoints.floor(800)); // 768;
|
|
3047
|
+
* console.log(breakpoints.floor(1024)); // 1024; // exact match
|
|
3048
|
+
* console.log(breakpoints.floor(100)); // undefined;
|
|
3049
|
+
*/
|
|
3050
|
+
floor(key: K): K | undefined;
|
|
3051
|
+
/**
|
|
3052
|
+
* Smallest key that is > the given key.
|
|
3053
|
+
|
|
3054
|
+
|
|
3055
|
+
|
|
3056
|
+
|
|
3057
|
+
|
|
3058
|
+
|
|
3059
|
+
|
|
3060
|
+
|
|
3061
|
+
|
|
3062
|
+
|
|
3063
|
+
|
|
3064
|
+
|
|
3065
|
+
|
|
3066
|
+
|
|
3067
|
+
|
|
3068
|
+
|
|
3069
|
+
|
|
3070
|
+
|
|
3071
|
+
|
|
3072
|
+
|
|
3073
|
+
|
|
3074
|
+
|
|
3075
|
+
|
|
3076
|
+
|
|
3077
|
+
|
|
3078
|
+
|
|
3079
|
+
|
|
3080
|
+
|
|
3081
|
+
|
|
3082
|
+
|
|
3083
|
+
|
|
3084
|
+
|
|
3085
|
+
|
|
3086
|
+
|
|
3087
|
+
|
|
3088
|
+
|
|
3089
|
+
|
|
3090
|
+
|
|
3091
|
+
|
|
3092
|
+
|
|
3093
|
+
|
|
3094
|
+
|
|
3095
|
+
|
|
3096
|
+
|
|
3097
|
+
|
|
3098
|
+
|
|
3099
|
+
|
|
3100
|
+
|
|
3101
|
+
|
|
3102
|
+
|
|
3103
|
+
|
|
3104
|
+
|
|
3105
|
+
|
|
3106
|
+
|
|
3107
|
+
|
|
3108
|
+
|
|
3109
|
+
|
|
3110
|
+
|
|
962
3111
|
|
|
963
3112
|
|
|
964
3113
|
|
|
@@ -970,17 +3119,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
970
3119
|
|
|
971
3120
|
|
|
972
3121
|
|
|
973
|
-
* @example
|
|
974
|
-
* // Remove and return minimum
|
|
975
|
-
* const queue = new TreeSet<number>([5, 1, 8, 3]);
|
|
976
|
-
*
|
|
977
|
-
* console.log(queue.pollFirst()); // 1;
|
|
978
|
-
* console.log(queue.pollFirst()); // 3;
|
|
979
|
-
* console.log(queue.size); // 2;
|
|
980
|
-
*/
|
|
981
|
-
pollFirst(): K | undefined;
|
|
982
|
-
/**
|
|
983
|
-
* Remove and return the largest key.
|
|
984
3122
|
|
|
985
3123
|
|
|
986
3124
|
|
|
@@ -992,16 +3130,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
992
3130
|
|
|
993
3131
|
|
|
994
3132
|
|
|
995
|
-
* @example
|
|
996
|
-
* // Remove and return maximum
|
|
997
|
-
* const stack = new TreeSet<number>([10, 20, 30]);
|
|
998
|
-
*
|
|
999
|
-
* console.log(stack.pollLast()); // 30;
|
|
1000
|
-
* console.log(stack.size); // 2;
|
|
1001
|
-
*/
|
|
1002
|
-
pollLast(): K | undefined;
|
|
1003
|
-
/**
|
|
1004
|
-
* Smallest key that is >= the given key.
|
|
1005
3133
|
|
|
1006
3134
|
|
|
1007
3135
|
|
|
@@ -1041,25 +3169,19 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
1041
3169
|
|
|
1042
3170
|
|
|
1043
3171
|
* @example
|
|
1044
|
-
* //
|
|
1045
|
-
*
|
|
1046
|
-
* const slots = new TreeSet<number>([540, 600, 660, 720, 840, 900]);
|
|
1047
|
-
*
|
|
1048
|
-
* // Customer wants something around 10:30 (630 min)
|
|
1049
|
-
* const nearest = slots.ceiling(630);
|
|
1050
|
-
* console.log(nearest); // 660; // 11:00 AM
|
|
1051
|
-
*
|
|
1052
|
-
* // What's the latest slot before 2:00 PM (840)?
|
|
1053
|
-
* const before2pm = slots.lower(840);
|
|
1054
|
-
* console.log(before2pm); // 720; // 12:00 PM
|
|
3172
|
+
* // Smallest element strictly > target
|
|
3173
|
+
* const levels = new TreeSet<number>([1, 5, 10, 25, 50, 100]);
|
|
1055
3174
|
*
|
|
1056
|
-
* //
|
|
1057
|
-
*
|
|
1058
|
-
* console.log(slots.ceiling(630)); // 720;
|
|
3175
|
+
* console.log(levels.higher(10)); // 25;
|
|
3176
|
+
* console.log(levels.higher(100)); // undefined;
|
|
1059
3177
|
*/
|
|
1060
|
-
|
|
3178
|
+
higher(key: K): K | undefined;
|
|
1061
3179
|
/**
|
|
1062
|
-
* Largest key that is
|
|
3180
|
+
* Largest key that is < the given key.
|
|
3181
|
+
|
|
3182
|
+
|
|
3183
|
+
|
|
3184
|
+
|
|
1063
3185
|
|
|
1064
3186
|
|
|
1065
3187
|
|
|
@@ -1098,18 +3220,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
1098
3220
|
|
|
1099
3221
|
|
|
1100
3222
|
|
|
1101
|
-
* @example
|
|
1102
|
-
* // Largest element ≤ target
|
|
1103
|
-
* const breakpoints = new TreeSet<number>([320, 768, 1024, 1280, 1920]);
|
|
1104
|
-
*
|
|
1105
|
-
* // Current width is 800 → which breakpoint applies?
|
|
1106
|
-
* console.log(breakpoints.floor(800)); // 768;
|
|
1107
|
-
* console.log(breakpoints.floor(1024)); // 1024; // exact match
|
|
1108
|
-
* console.log(breakpoints.floor(100)); // undefined;
|
|
1109
|
-
*/
|
|
1110
|
-
floor(key: K): K | undefined;
|
|
1111
|
-
/**
|
|
1112
|
-
* Smallest key that is > the given key.
|
|
1113
3223
|
|
|
1114
3224
|
|
|
1115
3225
|
|
|
@@ -1148,16 +3258,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
1148
3258
|
|
|
1149
3259
|
|
|
1150
3260
|
|
|
1151
|
-
* @example
|
|
1152
|
-
* // Smallest element strictly > target
|
|
1153
|
-
* const levels = new TreeSet<number>([1, 5, 10, 25, 50, 100]);
|
|
1154
|
-
*
|
|
1155
|
-
* console.log(levels.higher(10)); // 25;
|
|
1156
|
-
* console.log(levels.higher(100)); // undefined;
|
|
1157
|
-
*/
|
|
1158
|
-
higher(key: K): K | undefined;
|
|
1159
|
-
/**
|
|
1160
|
-
* Largest key that is < the given key.
|
|
1161
3261
|
|
|
1162
3262
|
|
|
1163
3263
|
|
|
@@ -1226,6 +3326,86 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
1226
3326
|
|
|
1227
3327
|
|
|
1228
3328
|
|
|
3329
|
+
|
|
3330
|
+
|
|
3331
|
+
|
|
3332
|
+
|
|
3333
|
+
|
|
3334
|
+
|
|
3335
|
+
|
|
3336
|
+
|
|
3337
|
+
|
|
3338
|
+
|
|
3339
|
+
|
|
3340
|
+
|
|
3341
|
+
|
|
3342
|
+
|
|
3343
|
+
|
|
3344
|
+
|
|
3345
|
+
|
|
3346
|
+
|
|
3347
|
+
|
|
3348
|
+
|
|
3349
|
+
|
|
3350
|
+
|
|
3351
|
+
|
|
3352
|
+
|
|
3353
|
+
|
|
3354
|
+
|
|
3355
|
+
|
|
3356
|
+
|
|
3357
|
+
|
|
3358
|
+
|
|
3359
|
+
|
|
3360
|
+
|
|
3361
|
+
|
|
3362
|
+
|
|
3363
|
+
|
|
3364
|
+
|
|
3365
|
+
|
|
3366
|
+
|
|
3367
|
+
|
|
3368
|
+
|
|
3369
|
+
|
|
3370
|
+
|
|
3371
|
+
|
|
3372
|
+
|
|
3373
|
+
|
|
3374
|
+
|
|
3375
|
+
|
|
3376
|
+
|
|
3377
|
+
|
|
3378
|
+
|
|
3379
|
+
|
|
3380
|
+
|
|
3381
|
+
|
|
3382
|
+
|
|
3383
|
+
|
|
3384
|
+
|
|
3385
|
+
|
|
3386
|
+
|
|
3387
|
+
|
|
3388
|
+
|
|
3389
|
+
|
|
3390
|
+
|
|
3391
|
+
|
|
3392
|
+
|
|
3393
|
+
|
|
3394
|
+
|
|
3395
|
+
|
|
3396
|
+
|
|
3397
|
+
|
|
3398
|
+
|
|
3399
|
+
|
|
3400
|
+
|
|
3401
|
+
|
|
3402
|
+
|
|
3403
|
+
|
|
3404
|
+
|
|
3405
|
+
|
|
3406
|
+
|
|
3407
|
+
|
|
3408
|
+
|
|
1229
3409
|
|
|
1230
3410
|
|
|
1231
3411
|
|
|
@@ -1287,6 +3467,106 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
1287
3467
|
|
|
1288
3468
|
|
|
1289
3469
|
|
|
3470
|
+
|
|
3471
|
+
|
|
3472
|
+
|
|
3473
|
+
|
|
3474
|
+
|
|
3475
|
+
|
|
3476
|
+
|
|
3477
|
+
|
|
3478
|
+
|
|
3479
|
+
|
|
3480
|
+
|
|
3481
|
+
|
|
3482
|
+
|
|
3483
|
+
|
|
3484
|
+
|
|
3485
|
+
|
|
3486
|
+
|
|
3487
|
+
|
|
3488
|
+
|
|
3489
|
+
|
|
3490
|
+
|
|
3491
|
+
|
|
3492
|
+
|
|
3493
|
+
|
|
3494
|
+
|
|
3495
|
+
|
|
3496
|
+
|
|
3497
|
+
|
|
3498
|
+
|
|
3499
|
+
|
|
3500
|
+
|
|
3501
|
+
|
|
3502
|
+
|
|
3503
|
+
|
|
3504
|
+
|
|
3505
|
+
|
|
3506
|
+
|
|
3507
|
+
|
|
3508
|
+
|
|
3509
|
+
|
|
3510
|
+
|
|
3511
|
+
|
|
3512
|
+
|
|
3513
|
+
|
|
3514
|
+
|
|
3515
|
+
|
|
3516
|
+
|
|
3517
|
+
|
|
3518
|
+
|
|
3519
|
+
|
|
3520
|
+
|
|
3521
|
+
|
|
3522
|
+
|
|
3523
|
+
|
|
3524
|
+
|
|
3525
|
+
|
|
3526
|
+
|
|
3527
|
+
|
|
3528
|
+
|
|
3529
|
+
|
|
3530
|
+
|
|
3531
|
+
|
|
3532
|
+
|
|
3533
|
+
|
|
3534
|
+
|
|
3535
|
+
|
|
3536
|
+
|
|
3537
|
+
|
|
3538
|
+
|
|
3539
|
+
|
|
3540
|
+
|
|
3541
|
+
|
|
3542
|
+
|
|
3543
|
+
|
|
3544
|
+
|
|
3545
|
+
|
|
3546
|
+
|
|
3547
|
+
|
|
3548
|
+
|
|
3549
|
+
|
|
3550
|
+
|
|
3551
|
+
|
|
3552
|
+
|
|
3553
|
+
|
|
3554
|
+
|
|
3555
|
+
|
|
3556
|
+
|
|
3557
|
+
|
|
3558
|
+
|
|
3559
|
+
|
|
3560
|
+
|
|
3561
|
+
|
|
3562
|
+
|
|
3563
|
+
|
|
3564
|
+
|
|
3565
|
+
|
|
3566
|
+
|
|
3567
|
+
|
|
3568
|
+
|
|
3569
|
+
|
|
1290
3570
|
|
|
1291
3571
|
|
|
1292
3572
|
|