binary-tree-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/dist/cjs/index.cjs +609 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs-legacy/index.cjs +609 -0
- package/dist/cjs-legacy/index.cjs.map +1 -1
- package/dist/esm/index.mjs +609 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm-legacy/index.mjs +609 -0
- package/dist/esm-legacy/index.mjs.map +1 -1
- 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 +252 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +294 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +527 -2
- package/dist/types/data-structures/binary-tree/bst.d.ts +505 -1
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +399 -0
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +126 -1
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +2881 -382
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +2867 -347
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2328 -312
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +2671 -277
- package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
- package/dist/types/data-structures/graph/directed-graph.d.ts +210 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +189 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +241 -10
- package/dist/types/data-structures/heap/heap.d.ts +294 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +360 -3
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +318 -3
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +380 -2
- package/dist/types/data-structures/matrix/matrix.d.ts +168 -0
- package/dist/types/data-structures/queue/deque.d.ts +319 -4
- package/dist/types/data-structures/queue/queue.d.ts +252 -0
- package/dist/types/data-structures/stack/stack.d.ts +210 -0
- package/dist/types/data-structures/trie/trie.d.ts +256 -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/binary-tree-typed.js +609 -0
- package/dist/umd/binary-tree-typed.js.map +1 -1
- package/dist/umd/binary-tree-typed.min.js +5 -5
- package/dist/umd/binary-tree-typed.min.js.map +1 -1
- package/package.json +2 -2
- 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 +252 -0
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +295 -1
- package/src/data-structures/binary-tree/binary-tree.ts +527 -2
- package/src/data-structures/binary-tree/bst.ts +505 -1
- package/src/data-structures/binary-tree/red-black-tree.ts +399 -0
- package/src/data-structures/binary-tree/segment-tree.ts +127 -2
- package/src/data-structures/binary-tree/tree-map.ts +2958 -459
- package/src/data-structures/binary-tree/tree-multi-map.ts +3069 -549
- package/src/data-structures/binary-tree/tree-multi-set.ts +2476 -460
- package/src/data-structures/binary-tree/tree-set.ts +2816 -422
- package/src/data-structures/graph/abstract-graph.ts +4 -4
- package/src/data-structures/graph/directed-graph.ts +210 -0
- package/src/data-structures/graph/undirected-graph.ts +189 -0
- package/src/data-structures/hash/hash-map.ts +246 -15
- package/src/data-structures/heap/heap.ts +294 -0
- package/src/data-structures/linked-list/doubly-linked-list.ts +360 -3
- package/src/data-structures/linked-list/singly-linked-list.ts +318 -3
- package/src/data-structures/linked-list/skip-linked-list.ts +380 -2
- package/src/data-structures/matrix/matrix.ts +169 -1
- package/src/data-structures/queue/deque.ts +320 -5
- package/src/data-structures/queue/queue.ts +252 -0
- package/src/data-structures/stack/stack.ts +210 -0
- package/src/data-structures/trie/trie.ts +257 -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
|
@@ -92,16 +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
|
-
|
|
105
95
|
|
|
106
96
|
|
|
107
97
|
|
|
@@ -142,23 +132,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
142
132
|
|
|
143
133
|
|
|
144
134
|
|
|
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
|
-
|
|
162
135
|
|
|
163
136
|
|
|
164
137
|
|
|
@@ -207,18 +180,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
207
180
|
|
|
208
181
|
|
|
209
182
|
|
|
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
183
|
|
|
223
184
|
|
|
224
185
|
|
|
@@ -236,6 +197,15 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
236
197
|
|
|
237
198
|
|
|
238
199
|
|
|
200
|
+
* @example
|
|
201
|
+
* // Check empty
|
|
202
|
+
* console.log(new TreeSet().isEmpty()); // true;
|
|
203
|
+
*/
|
|
204
|
+
isEmpty(): boolean;
|
|
205
|
+
private _validateKey;
|
|
206
|
+
/**
|
|
207
|
+
* Add a key to the set (no-op if already present).
|
|
208
|
+
* @remarks Expected time O(log n)
|
|
239
209
|
|
|
240
210
|
|
|
241
211
|
|
|
@@ -268,17 +238,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
268
238
|
|
|
269
239
|
|
|
270
240
|
|
|
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
241
|
|
|
283
242
|
|
|
284
243
|
|
|
@@ -317,15 +276,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
317
276
|
|
|
318
277
|
|
|
319
278
|
|
|
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
279
|
|
|
330
280
|
|
|
331
281
|
|
|
@@ -364,16 +314,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
364
314
|
|
|
365
315
|
|
|
366
316
|
|
|
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
317
|
|
|
378
318
|
|
|
379
319
|
|
|
@@ -413,15 +353,23 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
413
353
|
|
|
414
354
|
|
|
415
355
|
* @example
|
|
416
|
-
* //
|
|
417
|
-
* const
|
|
418
|
-
*
|
|
356
|
+
* // Unique tags with sorted order
|
|
357
|
+
* const tags = new TreeSet<string>(['javascript', 'typescript', 'react', 'typescript', 'node']);
|
|
358
|
+
*
|
|
359
|
+
* // Duplicates removed, sorted alphabetically
|
|
360
|
+
* console.log([...tags]); // ['javascript', 'node', 'react', 'typescript'];
|
|
361
|
+
* console.log(tags.size); // 4;
|
|
362
|
+
*
|
|
363
|
+
* tags.add('angular');
|
|
364
|
+
* console.log(tags.first()); // 'angular';
|
|
365
|
+
* console.log(tags.last()); // 'typescript';
|
|
419
366
|
*/
|
|
420
|
-
|
|
367
|
+
add(key: K): this;
|
|
421
368
|
/**
|
|
422
|
-
*
|
|
423
|
-
*
|
|
424
|
-
|
|
369
|
+
* Test whether a key exists.
|
|
370
|
+
* @remarks Expected time O(log n)
|
|
371
|
+
|
|
372
|
+
|
|
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
|
|
|
@@ -611,15 +523,25 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
611
523
|
|
|
612
524
|
|
|
613
525
|
* @example
|
|
614
|
-
* //
|
|
615
|
-
* const
|
|
616
|
-
*
|
|
617
|
-
*
|
|
526
|
+
* // Checking membership in a sorted collection
|
|
527
|
+
* const allowed = new TreeSet<string>(['admin', 'editor', 'viewer']);
|
|
528
|
+
*
|
|
529
|
+
* console.log(allowed.has('admin')); // true;
|
|
530
|
+
* console.log(allowed.has('guest')); // false;
|
|
618
531
|
*/
|
|
619
|
-
|
|
532
|
+
has(key: K): boolean;
|
|
620
533
|
/**
|
|
621
|
-
*
|
|
622
|
-
* @
|
|
534
|
+
* Delete a key.
|
|
535
|
+
* @returns `true` if the key existed; otherwise `false`.
|
|
536
|
+
* @remarks Expected time O(log n)
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
|
|
623
545
|
|
|
624
546
|
|
|
625
547
|
|
|
@@ -658,16 +580,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
658
580
|
|
|
659
581
|
|
|
660
582
|
|
|
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
583
|
|
|
672
584
|
|
|
673
585
|
|
|
@@ -704,15 +616,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
704
616
|
|
|
705
617
|
|
|
706
618
|
|
|
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
619
|
|
|
717
620
|
|
|
718
621
|
|
|
@@ -749,15 +652,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
749
652
|
|
|
750
653
|
|
|
751
654
|
|
|
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
655
|
|
|
762
656
|
|
|
763
657
|
|
|
@@ -795,15 +689,16 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
795
689
|
|
|
796
690
|
|
|
797
691
|
* @example
|
|
798
|
-
* //
|
|
799
|
-
* const
|
|
800
|
-
*
|
|
801
|
-
*
|
|
692
|
+
* // Removing elements while maintaining order
|
|
693
|
+
* const nums = new TreeSet<number>([1, 3, 5, 7, 9]);
|
|
694
|
+
*
|
|
695
|
+
* console.log(nums.delete(5)); // true;
|
|
696
|
+
* console.log(nums.delete(5)); // false; // already gone
|
|
697
|
+
* console.log([...nums]); // [1, 3, 7, 9];
|
|
802
698
|
*/
|
|
803
|
-
|
|
699
|
+
delete(key: K): boolean;
|
|
804
700
|
/**
|
|
805
|
-
*
|
|
806
|
-
* @remarks Time O(n), Space O(n)
|
|
701
|
+
* Remove all keys.
|
|
807
702
|
|
|
808
703
|
|
|
809
704
|
|
|
@@ -842,15 +737,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
842
737
|
|
|
843
738
|
|
|
844
739
|
|
|
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
740
|
|
|
855
741
|
|
|
856
742
|
|
|
@@ -889,14 +775,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
889
775
|
|
|
890
776
|
|
|
891
777
|
|
|
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
778
|
|
|
901
779
|
|
|
902
780
|
|
|
@@ -908,37 +786,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
908
786
|
|
|
909
787
|
|
|
910
788
|
|
|
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
789
|
|
|
943
790
|
|
|
944
791
|
|
|
@@ -950,15 +797,2456 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
950
797
|
|
|
951
798
|
|
|
952
799
|
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
800
|
+
|
|
801
|
+
|
|
802
|
+
|
|
803
|
+
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
|
|
812
|
+
|
|
813
|
+
|
|
814
|
+
|
|
815
|
+
|
|
816
|
+
|
|
817
|
+
|
|
818
|
+
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
|
|
823
|
+
|
|
824
|
+
|
|
825
|
+
|
|
826
|
+
|
|
827
|
+
|
|
828
|
+
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
|
|
834
|
+
|
|
835
|
+
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
|
|
839
|
+
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
|
|
843
|
+
|
|
844
|
+
|
|
845
|
+
* @example
|
|
846
|
+
* // Remove all
|
|
847
|
+
* const ts = new TreeSet<number>([1, 2]);
|
|
848
|
+
* ts.clear();
|
|
849
|
+
* console.log(ts.isEmpty()); // true;
|
|
850
|
+
*/
|
|
851
|
+
clear(): void;
|
|
852
|
+
/**
|
|
853
|
+
* Iterate over keys in ascending order.
|
|
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
|
+
|
|
968
|
+
|
|
969
|
+
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
|
|
977
|
+
|
|
978
|
+
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
|
|
986
|
+
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
|
|
990
|
+
|
|
991
|
+
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
|
|
995
|
+
|
|
996
|
+
|
|
997
|
+
* @example
|
|
998
|
+
* // Get sorted keys
|
|
999
|
+
* const ts = new TreeSet<number>([30, 10, 20]);
|
|
1000
|
+
* console.log([...ts.keys()]); // [10, 20, 30];
|
|
1001
|
+
*/
|
|
1002
|
+
keys(): IterableIterator<K>;
|
|
1003
|
+
/**
|
|
1004
|
+
* Iterate over values in ascending order.
|
|
1005
|
+
*
|
|
1006
|
+
* Note: for Set-like containers, `values()` is the same as `keys()`.
|
|
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
|
+
|
|
1116
|
+
|
|
1117
|
+
|
|
1118
|
+
|
|
1119
|
+
|
|
1120
|
+
|
|
1121
|
+
|
|
1122
|
+
|
|
1123
|
+
|
|
1124
|
+
|
|
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
|
+
* @example
|
|
1151
|
+
* // Get values (same as keys for Set)
|
|
1152
|
+
* const ts = new TreeSet<number>([2, 1, 3]);
|
|
1153
|
+
* console.log([...ts.values()]); // [1, 2, 3];
|
|
1154
|
+
*/
|
|
1155
|
+
values(): IterableIterator<K>;
|
|
1156
|
+
/**
|
|
1157
|
+
* Iterate over `[value, value]` pairs (native Set convention).
|
|
1158
|
+
*
|
|
1159
|
+
* Note: TreeSet stores only keys internally; `[k, k]` is created on-the-fly during iteration.
|
|
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
|
+
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
|
|
1268
|
+
|
|
1269
|
+
|
|
1270
|
+
|
|
1271
|
+
|
|
1272
|
+
|
|
1273
|
+
|
|
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
|
+
* @example
|
|
1304
|
+
* // Iterate entries
|
|
1305
|
+
* const ts = new TreeSet<number>([3, 1, 2]);
|
|
1306
|
+
* console.log([...ts.entries()].map(([k]) => k)); // [1, 2, 3];
|
|
1307
|
+
*/
|
|
1308
|
+
entries(): IterableIterator<[K, K]>;
|
|
1309
|
+
[Symbol.iterator](): IterableIterator<K>;
|
|
1310
|
+
/**
|
|
1311
|
+
* Visit each value in ascending order.
|
|
1312
|
+
*
|
|
1313
|
+
* Callback follows native Set convention: `(value, value2, set)`.
|
|
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
|
+
|
|
1413
|
+
|
|
1414
|
+
|
|
1415
|
+
|
|
1416
|
+
|
|
1417
|
+
|
|
1418
|
+
|
|
1419
|
+
|
|
1420
|
+
|
|
1421
|
+
|
|
1422
|
+
|
|
1423
|
+
|
|
1424
|
+
|
|
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
|
+
* @example
|
|
1458
|
+
* // Execute for each
|
|
1459
|
+
* const ts = new TreeSet<number>([3, 1, 2]);
|
|
1460
|
+
* const keys: number[] = [];
|
|
1461
|
+
* ts.forEach(k => keys.push(k));
|
|
1462
|
+
* console.log(keys); // [1, 2, 3];
|
|
1463
|
+
*/
|
|
1464
|
+
forEach(cb: (value: K, value2: K, set: TreeSet<K>) => void, thisArg?: unknown): void;
|
|
1465
|
+
/**
|
|
1466
|
+
* Create a new TreeSet by mapping each value to a new key.
|
|
1467
|
+
*
|
|
1468
|
+
* This mirrors `RedBlackTree.map`: mapping produces a new ordered container.
|
|
1469
|
+
* @remarks Time O(n log n) expected, Space O(n)
|
|
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
|
+
|
|
1564
|
+
|
|
1565
|
+
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
|
|
1569
|
+
|
|
1570
|
+
|
|
1571
|
+
|
|
1572
|
+
|
|
1573
|
+
|
|
1574
|
+
|
|
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
|
+
* @example
|
|
1614
|
+
* // Transform
|
|
1615
|
+
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
1616
|
+
* const doubled = ts.map(k => k * 2);
|
|
1617
|
+
* console.log([...doubled]); // [2, 4, 6];
|
|
1618
|
+
*/
|
|
1619
|
+
map<MK>(callbackfn: TreeSetElementCallback<K, MK, TreeSet<K>>, options?: Omit<TreeSetOptions<MK>, 'toElementFn'> & {
|
|
1620
|
+
comparator?: (a: MK, b: MK) => number;
|
|
1621
|
+
}, thisArg?: unknown): TreeSet<MK>;
|
|
1622
|
+
/**
|
|
1623
|
+
* Create a new TreeSet containing only values that satisfy the predicate.
|
|
1624
|
+
* @remarks Time O(n log n) expected, Space O(n)
|
|
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
|
+
|
|
1714
|
+
|
|
1715
|
+
|
|
1716
|
+
|
|
1717
|
+
|
|
1718
|
+
|
|
1719
|
+
|
|
1720
|
+
|
|
1721
|
+
|
|
1722
|
+
|
|
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
|
+
* @example
|
|
1769
|
+
* // Filter
|
|
1770
|
+
* const ts = new TreeSet<number>([1, 2, 3, 4, 5]);
|
|
1771
|
+
* const evens = ts.filter(k => k % 2 === 0);
|
|
1772
|
+
* console.log([...evens]); // [2, 4];
|
|
1773
|
+
*/
|
|
1774
|
+
filter(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): TreeSet<K>;
|
|
1775
|
+
/**
|
|
1776
|
+
* Reduce values into a single accumulator.
|
|
1777
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
1862
|
+
|
|
1863
|
+
|
|
1864
|
+
|
|
1865
|
+
|
|
1866
|
+
|
|
1867
|
+
|
|
1868
|
+
|
|
1869
|
+
|
|
1870
|
+
|
|
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
|
+
* @example
|
|
1922
|
+
* // Aggregate
|
|
1923
|
+
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
1924
|
+
* const sum = ts.reduce((acc, k) => acc + k, 0);
|
|
1925
|
+
* console.log(sum); // 6;
|
|
1926
|
+
*/
|
|
1927
|
+
reduce<A>(callbackfn: TreeSetReduceCallback<K, A, TreeSet<K>>, initialValue: A): A;
|
|
1928
|
+
/**
|
|
1929
|
+
* Test whether all values satisfy a predicate.
|
|
1930
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
2008
|
+
|
|
2009
|
+
|
|
2010
|
+
|
|
2011
|
+
|
|
2012
|
+
|
|
2013
|
+
|
|
2014
|
+
|
|
2015
|
+
|
|
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
|
+
* @example
|
|
2073
|
+
* // Test all
|
|
2074
|
+
* const ts = new TreeSet<number>([2, 4, 6]);
|
|
2075
|
+
* console.log(ts.every(k => k > 0)); // true;
|
|
2076
|
+
*/
|
|
2077
|
+
every(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): boolean;
|
|
2078
|
+
/**
|
|
2079
|
+
* Test whether any value satisfies a predicate.
|
|
2080
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
2153
|
+
|
|
2154
|
+
|
|
2155
|
+
|
|
2156
|
+
|
|
2157
|
+
|
|
2158
|
+
|
|
2159
|
+
|
|
2160
|
+
|
|
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
|
+
* @example
|
|
2223
|
+
* // Test any
|
|
2224
|
+
* const ts = new TreeSet<number>([1, 3, 5]);
|
|
2225
|
+
* console.log(ts.some(k => k === 3)); // true;
|
|
2226
|
+
*/
|
|
2227
|
+
some(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): boolean;
|
|
2228
|
+
/**
|
|
2229
|
+
* Find the first value that satisfies a predicate.
|
|
2230
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
2298
|
+
|
|
2299
|
+
|
|
2300
|
+
|
|
2301
|
+
|
|
2302
|
+
|
|
2303
|
+
|
|
2304
|
+
|
|
2305
|
+
|
|
2306
|
+
|
|
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
|
+
* @example
|
|
2373
|
+
* // Find entry
|
|
2374
|
+
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
2375
|
+
* const found = ts.find(k => k === 2);
|
|
2376
|
+
* console.log(found); // 2;
|
|
2377
|
+
*/
|
|
2378
|
+
find(callbackfn: TreeSetElementCallback<K, boolean, TreeSet<K>>, thisArg?: unknown): K | undefined;
|
|
2379
|
+
/**
|
|
2380
|
+
* Materialize the set into an array of keys.
|
|
2381
|
+
* @remarks Time O(n), Space O(n)
|
|
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
|
+
|
|
2446
|
+
|
|
2447
|
+
|
|
2448
|
+
|
|
2449
|
+
|
|
2450
|
+
|
|
2451
|
+
|
|
2452
|
+
|
|
2453
|
+
|
|
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
|
+
* @example
|
|
2526
|
+
* // Convert to array
|
|
2527
|
+
* const ts = new TreeSet<number>([3, 1, 2]);
|
|
2528
|
+
* console.log(ts.toArray()); // [1, 2, 3];
|
|
2529
|
+
*/
|
|
2530
|
+
toArray(): K[];
|
|
2531
|
+
/**
|
|
2532
|
+
* Print a human-friendly representation.
|
|
2533
|
+
* @remarks Time O(n), Space O(n)
|
|
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
|
+
|
|
2593
|
+
|
|
2594
|
+
|
|
2595
|
+
|
|
2596
|
+
|
|
2597
|
+
|
|
2598
|
+
|
|
2599
|
+
|
|
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
|
+
|
|
2632
|
+
|
|
2633
|
+
|
|
2634
|
+
|
|
2635
|
+
|
|
2636
|
+
|
|
2637
|
+
|
|
2638
|
+
|
|
2639
|
+
|
|
2640
|
+
|
|
2641
|
+
|
|
2642
|
+
|
|
2643
|
+
|
|
2644
|
+
|
|
2645
|
+
|
|
2646
|
+
|
|
2647
|
+
|
|
2648
|
+
|
|
2649
|
+
|
|
2650
|
+
|
|
2651
|
+
|
|
2652
|
+
|
|
2653
|
+
|
|
2654
|
+
|
|
2655
|
+
|
|
2656
|
+
|
|
2657
|
+
|
|
2658
|
+
|
|
2659
|
+
|
|
2660
|
+
|
|
2661
|
+
|
|
2662
|
+
|
|
2663
|
+
|
|
2664
|
+
|
|
2665
|
+
|
|
2666
|
+
|
|
2667
|
+
|
|
2668
|
+
|
|
2669
|
+
|
|
2670
|
+
|
|
2671
|
+
|
|
2672
|
+
|
|
2673
|
+
|
|
2674
|
+
|
|
2675
|
+
|
|
2676
|
+
|
|
2677
|
+
* @example
|
|
2678
|
+
* // Display tree
|
|
2679
|
+
* const ts = new TreeSet<number>([1, 2, 3]);
|
|
2680
|
+
* expect(() => ts.print()).not.toThrow();
|
|
2681
|
+
*/
|
|
2682
|
+
print(): void;
|
|
2683
|
+
/**
|
|
2684
|
+
* Smallest key in the set.
|
|
2685
|
+
|
|
2686
|
+
|
|
2687
|
+
|
|
2688
|
+
|
|
2689
|
+
|
|
2690
|
+
|
|
2691
|
+
|
|
2692
|
+
|
|
2693
|
+
|
|
2694
|
+
|
|
2695
|
+
|
|
2696
|
+
|
|
2697
|
+
|
|
2698
|
+
|
|
2699
|
+
|
|
2700
|
+
|
|
2701
|
+
|
|
2702
|
+
|
|
2703
|
+
|
|
2704
|
+
|
|
2705
|
+
|
|
2706
|
+
|
|
2707
|
+
|
|
2708
|
+
|
|
2709
|
+
|
|
2710
|
+
|
|
2711
|
+
|
|
2712
|
+
|
|
2713
|
+
|
|
2714
|
+
|
|
2715
|
+
|
|
2716
|
+
|
|
2717
|
+
* @example
|
|
2718
|
+
* // Student grade ranking with custom comparator
|
|
2719
|
+
* interface Student {
|
|
2720
|
+
* name: string;
|
|
2721
|
+
* gpa: number;
|
|
2722
|
+
* }
|
|
2723
|
+
*
|
|
2724
|
+
* const ranking = new TreeSet<Student>(
|
|
2725
|
+
* [
|
|
2726
|
+
* { name: 'Alice', gpa: 3.8 },
|
|
2727
|
+
* { name: 'Bob', gpa: 3.5 },
|
|
2728
|
+
* { name: 'Charlie', gpa: 3.9 },
|
|
2729
|
+
* { name: 'Diana', gpa: 3.5 }
|
|
2730
|
+
* ],
|
|
2731
|
+
* { comparator: (a, b) => b.gpa - a.gpa || a.name.localeCompare(b.name) }
|
|
2732
|
+
* );
|
|
2733
|
+
*
|
|
2734
|
+
* // Sorted by GPA descending, then name ascending
|
|
2735
|
+
* const names = [...ranking].map(s => s.name);
|
|
2736
|
+
* console.log(names); // ['Charlie', 'Alice', 'Bob', 'Diana'];
|
|
2737
|
+
*
|
|
2738
|
+
* // Top student
|
|
2739
|
+
* console.log(ranking.first()?.name); // 'Charlie';
|
|
2740
|
+
*
|
|
2741
|
+
* // Filter students with GPA >= 3.8
|
|
2742
|
+
* const honors = ranking.filter(s => s.gpa >= 3.8);
|
|
2743
|
+
* console.log(honors.toArray().map(s => s.name)); // ['Charlie', 'Alice'];
|
|
2744
|
+
*/
|
|
2745
|
+
first(): K | undefined;
|
|
2746
|
+
/**
|
|
2747
|
+
* Largest key in the set.
|
|
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
|
+
|
|
2776
|
+
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
|
|
2780
|
+
* @example
|
|
2781
|
+
* // Get the maximum element
|
|
2782
|
+
* const temps = new TreeSet<number>([18, 22, 15, 30, 25]);
|
|
2783
|
+
* console.log(temps.last()); // 30;
|
|
2784
|
+
* console.log(temps.first()); // 15;
|
|
2785
|
+
*/
|
|
959
2786
|
last(): K | undefined;
|
|
960
2787
|
/**
|
|
961
|
-
* Remove and return the smallest key.
|
|
2788
|
+
* Remove and return the smallest key.
|
|
2789
|
+
|
|
2790
|
+
|
|
2791
|
+
|
|
2792
|
+
|
|
2793
|
+
|
|
2794
|
+
|
|
2795
|
+
|
|
2796
|
+
|
|
2797
|
+
|
|
2798
|
+
|
|
2799
|
+
|
|
2800
|
+
|
|
2801
|
+
|
|
2802
|
+
|
|
2803
|
+
|
|
2804
|
+
|
|
2805
|
+
|
|
2806
|
+
|
|
2807
|
+
|
|
2808
|
+
|
|
2809
|
+
|
|
2810
|
+
|
|
2811
|
+
|
|
2812
|
+
|
|
2813
|
+
|
|
2814
|
+
|
|
2815
|
+
|
|
2816
|
+
|
|
2817
|
+
|
|
2818
|
+
|
|
2819
|
+
|
|
2820
|
+
|
|
2821
|
+
* @example
|
|
2822
|
+
* // Remove and return minimum
|
|
2823
|
+
* const queue = new TreeSet<number>([5, 1, 8, 3]);
|
|
2824
|
+
*
|
|
2825
|
+
* console.log(queue.pollFirst()); // 1;
|
|
2826
|
+
* console.log(queue.pollFirst()); // 3;
|
|
2827
|
+
* console.log(queue.size); // 2;
|
|
2828
|
+
*/
|
|
2829
|
+
pollFirst(): K | undefined;
|
|
2830
|
+
/**
|
|
2831
|
+
* Remove and return the largest key.
|
|
2832
|
+
|
|
2833
|
+
|
|
2834
|
+
|
|
2835
|
+
|
|
2836
|
+
|
|
2837
|
+
|
|
2838
|
+
|
|
2839
|
+
|
|
2840
|
+
|
|
2841
|
+
|
|
2842
|
+
|
|
2843
|
+
|
|
2844
|
+
|
|
2845
|
+
|
|
2846
|
+
|
|
2847
|
+
|
|
2848
|
+
|
|
2849
|
+
|
|
2850
|
+
|
|
2851
|
+
|
|
2852
|
+
|
|
2853
|
+
|
|
2854
|
+
|
|
2855
|
+
|
|
2856
|
+
|
|
2857
|
+
|
|
2858
|
+
|
|
2859
|
+
|
|
2860
|
+
|
|
2861
|
+
|
|
2862
|
+
|
|
2863
|
+
|
|
2864
|
+
* @example
|
|
2865
|
+
* // Remove and return maximum
|
|
2866
|
+
* const stack = new TreeSet<number>([10, 20, 30]);
|
|
2867
|
+
*
|
|
2868
|
+
* console.log(stack.pollLast()); // 30;
|
|
2869
|
+
* console.log(stack.size); // 2;
|
|
2870
|
+
*/
|
|
2871
|
+
pollLast(): K | undefined;
|
|
2872
|
+
/**
|
|
2873
|
+
* Smallest key that is >= the given key.
|
|
2874
|
+
|
|
2875
|
+
|
|
2876
|
+
|
|
2877
|
+
|
|
2878
|
+
|
|
2879
|
+
|
|
2880
|
+
|
|
2881
|
+
|
|
2882
|
+
|
|
2883
|
+
|
|
2884
|
+
|
|
2885
|
+
|
|
2886
|
+
|
|
2887
|
+
|
|
2888
|
+
|
|
2889
|
+
|
|
2890
|
+
|
|
2891
|
+
|
|
2892
|
+
|
|
2893
|
+
|
|
2894
|
+
|
|
2895
|
+
|
|
2896
|
+
|
|
2897
|
+
|
|
2898
|
+
|
|
2899
|
+
|
|
2900
|
+
|
|
2901
|
+
|
|
2902
|
+
|
|
2903
|
+
|
|
2904
|
+
|
|
2905
|
+
|
|
2906
|
+
|
|
2907
|
+
|
|
2908
|
+
|
|
2909
|
+
|
|
2910
|
+
|
|
2911
|
+
|
|
2912
|
+
|
|
2913
|
+
|
|
2914
|
+
|
|
2915
|
+
|
|
2916
|
+
|
|
2917
|
+
|
|
2918
|
+
|
|
2919
|
+
|
|
2920
|
+
|
|
2921
|
+
|
|
2922
|
+
|
|
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
|
+
* @example
|
|
2997
|
+
* // Finding nearest available time slot
|
|
2998
|
+
* // Available appointment times (minutes from midnight)
|
|
2999
|
+
* const slots = new TreeSet<number>([540, 600, 660, 720, 840, 900]);
|
|
3000
|
+
*
|
|
3001
|
+
* // Customer wants something around 10:30 (630 min)
|
|
3002
|
+
* const nearest = slots.ceiling(630);
|
|
3003
|
+
* console.log(nearest); // 660; // 11:00 AM
|
|
3004
|
+
*
|
|
3005
|
+
* // What's the latest slot before 2:00 PM (840)?
|
|
3006
|
+
* const before2pm = slots.lower(840);
|
|
3007
|
+
* console.log(before2pm); // 720; // 12:00 PM
|
|
3008
|
+
*
|
|
3009
|
+
* // Book the 11:00 slot
|
|
3010
|
+
* slots.delete(660);
|
|
3011
|
+
* console.log(slots.ceiling(630)); // 720;
|
|
3012
|
+
*/
|
|
3013
|
+
ceiling(key: K): K | undefined;
|
|
3014
|
+
/**
|
|
3015
|
+
* Largest key that is <= the given key.
|
|
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
|
+
|
|
3042
|
+
|
|
3043
|
+
|
|
3044
|
+
|
|
3045
|
+
|
|
3046
|
+
|
|
3047
|
+
|
|
3048
|
+
|
|
3049
|
+
|
|
3050
|
+
|
|
3051
|
+
|
|
3052
|
+
|
|
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
|
+
|
|
3111
|
+
|
|
3112
|
+
|
|
3113
|
+
|
|
3114
|
+
|
|
3115
|
+
|
|
3116
|
+
|
|
3117
|
+
|
|
3118
|
+
|
|
3119
|
+
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
3127
|
+
|
|
3128
|
+
|
|
3129
|
+
|
|
3130
|
+
|
|
3131
|
+
|
|
3132
|
+
|
|
3133
|
+
|
|
3134
|
+
|
|
3135
|
+
|
|
3136
|
+
|
|
3137
|
+
|
|
3138
|
+
* @example
|
|
3139
|
+
* // Largest element ≤ target
|
|
3140
|
+
* const breakpoints = new TreeSet<number>([320, 768, 1024, 1280, 1920]);
|
|
3141
|
+
*
|
|
3142
|
+
* // Current width is 800 → which breakpoint applies?
|
|
3143
|
+
* console.log(breakpoints.floor(800)); // 768;
|
|
3144
|
+
* console.log(breakpoints.floor(1024)); // 1024; // exact match
|
|
3145
|
+
* console.log(breakpoints.floor(100)); // undefined;
|
|
3146
|
+
*/
|
|
3147
|
+
floor(key: K): K | undefined;
|
|
3148
|
+
/**
|
|
3149
|
+
* Smallest key that is > the given key.
|
|
3150
|
+
|
|
3151
|
+
|
|
3152
|
+
|
|
3153
|
+
|
|
3154
|
+
|
|
3155
|
+
|
|
3156
|
+
|
|
3157
|
+
|
|
3158
|
+
|
|
3159
|
+
|
|
3160
|
+
|
|
3161
|
+
|
|
3162
|
+
|
|
3163
|
+
|
|
3164
|
+
|
|
3165
|
+
|
|
3166
|
+
|
|
3167
|
+
|
|
3168
|
+
|
|
3169
|
+
|
|
3170
|
+
|
|
3171
|
+
|
|
3172
|
+
|
|
3173
|
+
|
|
3174
|
+
|
|
3175
|
+
|
|
3176
|
+
|
|
3177
|
+
|
|
3178
|
+
|
|
3179
|
+
|
|
3180
|
+
|
|
3181
|
+
|
|
3182
|
+
|
|
3183
|
+
|
|
3184
|
+
|
|
3185
|
+
|
|
3186
|
+
|
|
3187
|
+
|
|
3188
|
+
|
|
3189
|
+
|
|
3190
|
+
|
|
3191
|
+
|
|
3192
|
+
|
|
3193
|
+
|
|
3194
|
+
|
|
3195
|
+
|
|
3196
|
+
|
|
3197
|
+
|
|
3198
|
+
|
|
3199
|
+
|
|
3200
|
+
|
|
3201
|
+
|
|
3202
|
+
|
|
3203
|
+
|
|
3204
|
+
|
|
3205
|
+
|
|
3206
|
+
|
|
3207
|
+
|
|
3208
|
+
|
|
3209
|
+
|
|
3210
|
+
|
|
3211
|
+
|
|
3212
|
+
|
|
3213
|
+
|
|
3214
|
+
|
|
3215
|
+
|
|
3216
|
+
|
|
3217
|
+
|
|
3218
|
+
|
|
3219
|
+
|
|
3220
|
+
|
|
3221
|
+
|
|
3222
|
+
|
|
3223
|
+
|
|
3224
|
+
|
|
3225
|
+
|
|
3226
|
+
|
|
3227
|
+
|
|
3228
|
+
|
|
3229
|
+
|
|
3230
|
+
|
|
3231
|
+
|
|
3232
|
+
|
|
3233
|
+
|
|
3234
|
+
|
|
3235
|
+
|
|
3236
|
+
|
|
3237
|
+
|
|
3238
|
+
|
|
3239
|
+
|
|
3240
|
+
|
|
3241
|
+
|
|
3242
|
+
|
|
3243
|
+
|
|
3244
|
+
|
|
3245
|
+
|
|
3246
|
+
|
|
3247
|
+
|
|
3248
|
+
|
|
3249
|
+
|
|
962
3250
|
|
|
963
3251
|
|
|
964
3252
|
|
|
@@ -970,17 +3258,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
970
3258
|
|
|
971
3259
|
|
|
972
3260
|
|
|
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
3261
|
|
|
985
3262
|
|
|
986
3263
|
|
|
@@ -993,15 +3270,23 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
993
3270
|
|
|
994
3271
|
|
|
995
3272
|
* @example
|
|
996
|
-
* //
|
|
997
|
-
* const
|
|
3273
|
+
* // Smallest element strictly > target
|
|
3274
|
+
* const levels = new TreeSet<number>([1, 5, 10, 25, 50, 100]);
|
|
998
3275
|
*
|
|
999
|
-
* console.log(
|
|
1000
|
-
* console.log(
|
|
3276
|
+
* console.log(levels.higher(10)); // 25;
|
|
3277
|
+
* console.log(levels.higher(100)); // undefined;
|
|
1001
3278
|
*/
|
|
1002
|
-
|
|
3279
|
+
higher(key: K): K | undefined;
|
|
1003
3280
|
/**
|
|
1004
|
-
*
|
|
3281
|
+
* Largest key that is < the given key.
|
|
3282
|
+
|
|
3283
|
+
|
|
3284
|
+
|
|
3285
|
+
|
|
3286
|
+
|
|
3287
|
+
|
|
3288
|
+
|
|
3289
|
+
|
|
1005
3290
|
|
|
1006
3291
|
|
|
1007
3292
|
|
|
@@ -1040,26 +3325,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
1040
3325
|
|
|
1041
3326
|
|
|
1042
3327
|
|
|
1043
|
-
* @example
|
|
1044
|
-
* // Finding nearest available time slot
|
|
1045
|
-
* // Available appointment times (minutes from midnight)
|
|
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
|
|
1055
|
-
*
|
|
1056
|
-
* // Book the 11:00 slot
|
|
1057
|
-
* slots.delete(660);
|
|
1058
|
-
* console.log(slots.ceiling(630)); // 720;
|
|
1059
|
-
*/
|
|
1060
|
-
ceiling(key: K): K | undefined;
|
|
1061
|
-
/**
|
|
1062
|
-
* Largest key that is <= the given key.
|
|
1063
3328
|
|
|
1064
3329
|
|
|
1065
3330
|
|
|
@@ -1098,18 +3363,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
1098
3363
|
|
|
1099
3364
|
|
|
1100
3365
|
|
|
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
3366
|
|
|
1114
3367
|
|
|
1115
3368
|
|
|
@@ -1149,15 +3402,64 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
1149
3402
|
|
|
1150
3403
|
|
|
1151
3404
|
* @example
|
|
1152
|
-
* //
|
|
1153
|
-
* const
|
|
3405
|
+
* // Largest element strictly < target
|
|
3406
|
+
* const tiers = new TreeSet<number>([100, 200, 500, 1000]);
|
|
1154
3407
|
*
|
|
1155
|
-
* console.log(
|
|
1156
|
-
* console.log(
|
|
3408
|
+
* console.log(tiers.lower(500)); // 200;
|
|
3409
|
+
* console.log(tiers.lower(100)); // undefined;
|
|
1157
3410
|
*/
|
|
1158
|
-
|
|
3411
|
+
lower(key: K): K | undefined;
|
|
1159
3412
|
/**
|
|
1160
|
-
*
|
|
3413
|
+
* Return all keys in a given range.
|
|
3414
|
+
*
|
|
3415
|
+
* @param range `[low, high]`
|
|
3416
|
+
* @param options Inclusive/exclusive bounds (defaults to inclusive).
|
|
3417
|
+
|
|
3418
|
+
|
|
3419
|
+
|
|
3420
|
+
|
|
3421
|
+
|
|
3422
|
+
|
|
3423
|
+
|
|
3424
|
+
|
|
3425
|
+
|
|
3426
|
+
|
|
3427
|
+
|
|
3428
|
+
|
|
3429
|
+
|
|
3430
|
+
|
|
3431
|
+
|
|
3432
|
+
|
|
3433
|
+
|
|
3434
|
+
|
|
3435
|
+
|
|
3436
|
+
|
|
3437
|
+
|
|
3438
|
+
|
|
3439
|
+
|
|
3440
|
+
|
|
3441
|
+
|
|
3442
|
+
|
|
3443
|
+
|
|
3444
|
+
|
|
3445
|
+
|
|
3446
|
+
|
|
3447
|
+
|
|
3448
|
+
|
|
3449
|
+
|
|
3450
|
+
|
|
3451
|
+
|
|
3452
|
+
|
|
3453
|
+
|
|
3454
|
+
|
|
3455
|
+
|
|
3456
|
+
|
|
3457
|
+
|
|
3458
|
+
|
|
3459
|
+
|
|
3460
|
+
|
|
3461
|
+
|
|
3462
|
+
|
|
1161
3463
|
|
|
1162
3464
|
|
|
1163
3465
|
|
|
@@ -1196,19 +3498,6 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
1196
3498
|
|
|
1197
3499
|
|
|
1198
3500
|
|
|
1199
|
-
* @example
|
|
1200
|
-
* // Largest element strictly < target
|
|
1201
|
-
* const tiers = new TreeSet<number>([100, 200, 500, 1000]);
|
|
1202
|
-
*
|
|
1203
|
-
* console.log(tiers.lower(500)); // 200;
|
|
1204
|
-
* console.log(tiers.lower(100)); // undefined;
|
|
1205
|
-
*/
|
|
1206
|
-
lower(key: K): K | undefined;
|
|
1207
|
-
/**
|
|
1208
|
-
* Return all keys in a given range.
|
|
1209
|
-
*
|
|
1210
|
-
* @param range `[low, high]`
|
|
1211
|
-
* @param options Inclusive/exclusive bounds (defaults to inclusive).
|
|
1212
3501
|
|
|
1213
3502
|
|
|
1214
3503
|
|
|
@@ -1287,6 +3576,111 @@ export declare class TreeSet<K = any, R = K> implements Iterable<K> {
|
|
|
1287
3576
|
|
|
1288
3577
|
|
|
1289
3578
|
|
|
3579
|
+
|
|
3580
|
+
|
|
3581
|
+
|
|
3582
|
+
|
|
3583
|
+
|
|
3584
|
+
|
|
3585
|
+
|
|
3586
|
+
|
|
3587
|
+
|
|
3588
|
+
|
|
3589
|
+
|
|
3590
|
+
|
|
3591
|
+
|
|
3592
|
+
|
|
3593
|
+
|
|
3594
|
+
|
|
3595
|
+
|
|
3596
|
+
|
|
3597
|
+
|
|
3598
|
+
|
|
3599
|
+
|
|
3600
|
+
|
|
3601
|
+
|
|
3602
|
+
|
|
3603
|
+
|
|
3604
|
+
|
|
3605
|
+
|
|
3606
|
+
|
|
3607
|
+
|
|
3608
|
+
|
|
3609
|
+
|
|
3610
|
+
|
|
3611
|
+
|
|
3612
|
+
|
|
3613
|
+
|
|
3614
|
+
|
|
3615
|
+
|
|
3616
|
+
|
|
3617
|
+
|
|
3618
|
+
|
|
3619
|
+
|
|
3620
|
+
|
|
3621
|
+
|
|
3622
|
+
|
|
3623
|
+
|
|
3624
|
+
|
|
3625
|
+
|
|
3626
|
+
|
|
3627
|
+
|
|
3628
|
+
|
|
3629
|
+
|
|
3630
|
+
|
|
3631
|
+
|
|
3632
|
+
|
|
3633
|
+
|
|
3634
|
+
|
|
3635
|
+
|
|
3636
|
+
|
|
3637
|
+
|
|
3638
|
+
|
|
3639
|
+
|
|
3640
|
+
|
|
3641
|
+
|
|
3642
|
+
|
|
3643
|
+
|
|
3644
|
+
|
|
3645
|
+
|
|
3646
|
+
|
|
3647
|
+
|
|
3648
|
+
|
|
3649
|
+
|
|
3650
|
+
|
|
3651
|
+
|
|
3652
|
+
|
|
3653
|
+
|
|
3654
|
+
|
|
3655
|
+
|
|
3656
|
+
|
|
3657
|
+
|
|
3658
|
+
|
|
3659
|
+
|
|
3660
|
+
|
|
3661
|
+
|
|
3662
|
+
|
|
3663
|
+
|
|
3664
|
+
|
|
3665
|
+
|
|
3666
|
+
|
|
3667
|
+
|
|
3668
|
+
|
|
3669
|
+
|
|
3670
|
+
|
|
3671
|
+
|
|
3672
|
+
|
|
3673
|
+
|
|
3674
|
+
|
|
3675
|
+
|
|
3676
|
+
|
|
3677
|
+
|
|
3678
|
+
|
|
3679
|
+
|
|
3680
|
+
|
|
3681
|
+
|
|
3682
|
+
|
|
3683
|
+
|
|
1290
3684
|
|
|
1291
3685
|
|
|
1292
3686
|
|