max-priority-queue-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 +294 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs-legacy/index.cjs +294 -0
- package/dist/cjs-legacy/index.cjs.map +1 -1
- package/dist/esm/index.mjs +294 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm-legacy/index.mjs +294 -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/max-priority-queue-typed.js +294 -0
- package/dist/umd/max-priority-queue-typed.js.map +1 -1
- package/dist/umd/max-priority-queue-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
|
@@ -93,14 +93,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
|
|
96
|
-
* @example
|
|
97
|
-
* // Check empty
|
|
98
|
-
* console.log(new TreeMap().isEmpty()); // true;
|
|
99
|
-
*/
|
|
100
|
-
isEmpty(): boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Set or overwrite a value for a key.
|
|
103
|
-
* @remarks Expected time O(log n)
|
|
104
96
|
|
|
105
97
|
|
|
106
98
|
|
|
@@ -148,31 +140,15 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
148
140
|
|
|
149
141
|
|
|
150
142
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
* console.log([...contacts.keys()]); // ['Alice', 'Bob', 'Charlie'];
|
|
161
|
-
* console.log(contacts.get('Bob')); // '555-0102';
|
|
162
|
-
*
|
|
163
|
-
* // Find the first contact alphabetically after 'B'
|
|
164
|
-
* console.log(contacts.ceiling('B')); // ['Bob', '555-0102'];
|
|
165
|
-
*
|
|
166
|
-
* // Find contacts in range
|
|
167
|
-
* console.log(contacts.rangeSearch(['Alice', 'Bob'])); // [
|
|
168
|
-
* // ['Alice', '555-0101'],
|
|
169
|
-
* // ['Bob', '555-0102']
|
|
170
|
-
* // ];
|
|
171
|
-
*/
|
|
172
|
-
set(key: K, value: V | undefined): this;
|
|
173
|
-
/**
|
|
174
|
-
* Get the value under a key.
|
|
175
|
-
* @remarks Expected time O(log n)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
176
152
|
|
|
177
153
|
|
|
178
154
|
|
|
@@ -223,20 +199,12 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
223
199
|
|
|
224
200
|
|
|
225
201
|
* @example
|
|
226
|
-
* //
|
|
227
|
-
*
|
|
228
|
-
* ['maxRetries', 3],
|
|
229
|
-
* ['timeout', 5000],
|
|
230
|
-
* ['poolSize', 10]
|
|
231
|
-
* ]);
|
|
232
|
-
*
|
|
233
|
-
* console.log(config.get('timeout')); // 5000;
|
|
234
|
-
* console.log(config.get('missing')); // undefined;
|
|
235
|
-
* console.log(config.size); // 3;
|
|
202
|
+
* // Check empty
|
|
203
|
+
* console.log(new TreeMap().isEmpty()); // true;
|
|
236
204
|
*/
|
|
237
|
-
|
|
205
|
+
isEmpty(): boolean;
|
|
238
206
|
/**
|
|
239
|
-
*
|
|
207
|
+
* Set or overwrite a value for a key.
|
|
240
208
|
* @remarks Expected time O(log n)
|
|
241
209
|
|
|
242
210
|
|
|
@@ -287,22 +255,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
287
255
|
|
|
288
256
|
|
|
289
257
|
|
|
290
|
-
* @example
|
|
291
|
-
* // Feature flag checking
|
|
292
|
-
* const flags = new TreeMap<string, boolean>([
|
|
293
|
-
* ['darkMode', true],
|
|
294
|
-
* ['betaFeature', false],
|
|
295
|
-
* ['notifications', true]
|
|
296
|
-
* ]);
|
|
297
|
-
*
|
|
298
|
-
* console.log(flags.has('darkMode')); // true;
|
|
299
|
-
* console.log(flags.has('unknownFlag')); // false;
|
|
300
|
-
*/
|
|
301
|
-
has(key: K): boolean;
|
|
302
|
-
/**
|
|
303
|
-
* Delete a key.
|
|
304
|
-
* @returns `true` if the key existed; otherwise `false`.
|
|
305
|
-
* @remarks Expected time O(log n)
|
|
306
258
|
|
|
307
259
|
|
|
308
260
|
|
|
@@ -352,22 +304,22 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
352
304
|
|
|
353
305
|
|
|
354
306
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
|
|
371
323
|
|
|
372
324
|
|
|
373
325
|
|
|
@@ -407,14 +359,32 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
407
359
|
|
|
408
360
|
|
|
409
361
|
* @example
|
|
410
|
-
* //
|
|
411
|
-
* const
|
|
412
|
-
*
|
|
413
|
-
*
|
|
362
|
+
* // Sorted dictionary for a contact book
|
|
363
|
+
* const contacts = new TreeMap<string, string>([
|
|
364
|
+
* ['Bob', '555-0102'],
|
|
365
|
+
* ['Alice', '555-0101'],
|
|
366
|
+
* ['Charlie', '555-0103']
|
|
367
|
+
* ]);
|
|
368
|
+
*
|
|
369
|
+
* // Contacts are automatically sorted by name
|
|
370
|
+
* console.log([...contacts.keys()]); // ['Alice', 'Bob', 'Charlie'];
|
|
371
|
+
* console.log(contacts.get('Bob')); // '555-0102';
|
|
372
|
+
*
|
|
373
|
+
* // Find the first contact alphabetically after 'B'
|
|
374
|
+
* console.log(contacts.ceiling('B')); // ['Bob', '555-0102'];
|
|
375
|
+
*
|
|
376
|
+
* // Find contacts in range
|
|
377
|
+
* console.log(contacts.rangeSearch(['Alice', 'Bob'])); // [
|
|
378
|
+
* // ['Alice', '555-0101'],
|
|
379
|
+
* // ['Bob', '555-0102']
|
|
380
|
+
* // ];
|
|
414
381
|
*/
|
|
415
|
-
|
|
382
|
+
set(key: K, value: V | undefined): this;
|
|
416
383
|
/**
|
|
417
|
-
*
|
|
384
|
+
* Get the value under a key.
|
|
385
|
+
* @remarks Expected time O(log n)
|
|
386
|
+
|
|
387
|
+
|
|
418
388
|
|
|
419
389
|
|
|
420
390
|
|
|
@@ -453,17 +423,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
453
423
|
|
|
454
424
|
|
|
455
425
|
|
|
456
|
-
* @example
|
|
457
|
-
* // Get sorted keys
|
|
458
|
-
* const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a']]);
|
|
459
|
-
* console.log([...tm.keys()]); // [1, 3];
|
|
460
|
-
*/
|
|
461
|
-
keys(): IterableIterator<K>;
|
|
462
|
-
private _entryFromKey;
|
|
463
|
-
/**
|
|
464
|
-
* Iterate over values in ascending key order.
|
|
465
|
-
*
|
|
466
|
-
* Note: values may be `undefined` (TreeMap allows storing `undefined`, like native `Map`).
|
|
467
426
|
|
|
468
427
|
|
|
469
428
|
|
|
@@ -502,16 +461,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
502
461
|
|
|
503
462
|
|
|
504
463
|
|
|
505
|
-
* @example
|
|
506
|
-
* // Get values in key order
|
|
507
|
-
* const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
|
|
508
|
-
* console.log([...tm.values()]); // ['a', 'b'];
|
|
509
|
-
*/
|
|
510
|
-
values(): IterableIterator<V | undefined>;
|
|
511
|
-
/**
|
|
512
|
-
* Iterate over `[key, value]` entries in ascending key order.
|
|
513
|
-
*
|
|
514
|
-
* Note: values may be `undefined`.
|
|
515
464
|
|
|
516
465
|
|
|
517
466
|
|
|
@@ -550,17 +499,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
550
499
|
|
|
551
500
|
|
|
552
501
|
|
|
553
|
-
* @example
|
|
554
|
-
* // Iterate key-value pairs
|
|
555
|
-
* const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a'], [2, 'b']]);
|
|
556
|
-
* console.log([...tm.entries()]); // [[1, 'a'], [2, 'b'], [3, 'c']];
|
|
557
|
-
*/
|
|
558
|
-
entries(): IterableIterator<[K, V | undefined]>;
|
|
559
|
-
[Symbol.iterator](): IterableIterator<[K, V | undefined]>;
|
|
560
|
-
/**
|
|
561
|
-
* Visit each entry in ascending key order.
|
|
562
|
-
*
|
|
563
|
-
* Note: callback value may be `undefined`.
|
|
564
502
|
|
|
565
503
|
|
|
566
504
|
|
|
@@ -600,18 +538,25 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
600
538
|
|
|
601
539
|
|
|
602
540
|
* @example
|
|
603
|
-
* //
|
|
604
|
-
* const
|
|
605
|
-
*
|
|
606
|
-
*
|
|
607
|
-
*
|
|
541
|
+
* // Configuration registry with typed lookups
|
|
542
|
+
* const config = new TreeMap<string, number>([
|
|
543
|
+
* ['maxRetries', 3],
|
|
544
|
+
* ['timeout', 5000],
|
|
545
|
+
* ['poolSize', 10]
|
|
546
|
+
* ]);
|
|
547
|
+
*
|
|
548
|
+
* console.log(config.get('timeout')); // 5000;
|
|
549
|
+
* console.log(config.get('missing')); // undefined;
|
|
550
|
+
* console.log(config.size); // 3;
|
|
608
551
|
*/
|
|
609
|
-
|
|
552
|
+
get(key: K): V | undefined;
|
|
610
553
|
/**
|
|
611
|
-
*
|
|
612
|
-
*
|
|
613
|
-
|
|
614
|
-
|
|
554
|
+
* Test whether a key exists.
|
|
555
|
+
* @remarks Expected time O(log n)
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
|
|
615
560
|
|
|
616
561
|
|
|
617
562
|
|
|
@@ -650,18 +595,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
650
595
|
|
|
651
596
|
|
|
652
597
|
|
|
653
|
-
* @example
|
|
654
|
-
* // Transform entries
|
|
655
|
-
* const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
|
|
656
|
-
* const doubled = tm.map((v, k) => [k, (v ?? 0) * 2] as [number, number]);
|
|
657
|
-
* console.log([...doubled.values()]); // [20, 40];
|
|
658
|
-
*/
|
|
659
|
-
map<MK, MV>(callbackfn: TreeMapEntryCallback<K, V, [MK, MV], TreeMap<K, V>>, options?: Omit<TreeMapOptions<MK, MV>, 'toEntryFn'> & {
|
|
660
|
-
comparator?: (a: MK, b: MK) => number;
|
|
661
|
-
}, thisArg?: unknown): TreeMap<MK, MV>;
|
|
662
|
-
/**
|
|
663
|
-
* Create a new TreeMap containing only entries that satisfy the predicate.
|
|
664
|
-
* @remarks Time O(n log n) expected, Space O(n)
|
|
665
598
|
|
|
666
599
|
|
|
667
600
|
|
|
@@ -700,16 +633,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
700
633
|
|
|
701
634
|
|
|
702
635
|
|
|
703
|
-
* @example
|
|
704
|
-
* // Filter entries
|
|
705
|
-
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
|
|
706
|
-
* const filtered = tm.filter((v, k) => k > 1);
|
|
707
|
-
* console.log([...filtered.keys()]); // [2, 3];
|
|
708
|
-
*/
|
|
709
|
-
filter(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): TreeMap<K, V>;
|
|
710
|
-
/**
|
|
711
|
-
* Reduce entries into a single accumulator.
|
|
712
|
-
* @remarks Time O(n), Space O(1)
|
|
713
636
|
|
|
714
637
|
|
|
715
638
|
|
|
@@ -748,15 +671,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
748
671
|
|
|
749
672
|
|
|
750
673
|
|
|
751
|
-
* @example
|
|
752
|
-
* // Aggregate values
|
|
753
|
-
* const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
|
|
754
|
-
* console.log(tm.reduce((acc, v) => acc + (v ?? 0), 0)); // 30;
|
|
755
|
-
*/
|
|
756
|
-
reduce<A>(callbackfn: TreeMapReduceCallback<K, V, A, TreeMap<K, V>>, initialValue: A): A;
|
|
757
|
-
/**
|
|
758
|
-
* Test whether all entries satisfy a predicate.
|
|
759
|
-
* @remarks Time O(n), Space O(1)
|
|
760
674
|
|
|
761
675
|
|
|
762
676
|
|
|
@@ -794,14 +708,27 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
794
708
|
|
|
795
709
|
|
|
796
710
|
* @example
|
|
797
|
-
* //
|
|
798
|
-
* const
|
|
799
|
-
*
|
|
711
|
+
* // Feature flag checking
|
|
712
|
+
* const flags = new TreeMap<string, boolean>([
|
|
713
|
+
* ['darkMode', true],
|
|
714
|
+
* ['betaFeature', false],
|
|
715
|
+
* ['notifications', true]
|
|
716
|
+
* ]);
|
|
717
|
+
*
|
|
718
|
+
* console.log(flags.has('darkMode')); // true;
|
|
719
|
+
* console.log(flags.has('unknownFlag')); // false;
|
|
800
720
|
*/
|
|
801
|
-
|
|
721
|
+
has(key: K): boolean;
|
|
802
722
|
/**
|
|
803
|
-
*
|
|
804
|
-
* @
|
|
723
|
+
* Delete a key.
|
|
724
|
+
* @returns `true` if the key existed; otherwise `false`.
|
|
725
|
+
* @remarks Expected time O(log n)
|
|
726
|
+
|
|
727
|
+
|
|
728
|
+
|
|
729
|
+
|
|
730
|
+
|
|
731
|
+
|
|
805
732
|
|
|
806
733
|
|
|
807
734
|
|
|
@@ -838,16 +765,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
838
765
|
|
|
839
766
|
|
|
840
767
|
|
|
841
|
-
* @example
|
|
842
|
-
* // Test any entry
|
|
843
|
-
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
844
|
-
* console.log(tm.some((v, k) => k === 2)); // true;
|
|
845
|
-
*/
|
|
846
|
-
some(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
|
|
847
|
-
/**
|
|
848
|
-
* Find the first entry that satisfies a predicate.
|
|
849
|
-
* @returns The first matching `[key, value]` tuple, or `undefined`.
|
|
850
|
-
* @remarks Time O(n), Space O(1)
|
|
851
768
|
|
|
852
769
|
|
|
853
770
|
|
|
@@ -884,15 +801,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
884
801
|
|
|
885
802
|
|
|
886
803
|
|
|
887
|
-
* @example
|
|
888
|
-
* // Find matching entry
|
|
889
|
-
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
890
|
-
* console.log(tm.find(v => v === 'b')?.[0]); // 2;
|
|
891
|
-
*/
|
|
892
|
-
find(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): [K, V | undefined] | undefined;
|
|
893
|
-
/**
|
|
894
|
-
* Materialize the map into an array of `[key, value]` tuples.
|
|
895
|
-
* @remarks Time O(n), Space O(n)
|
|
896
804
|
|
|
897
805
|
|
|
898
806
|
|
|
@@ -931,15 +839,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
931
839
|
|
|
932
840
|
|
|
933
841
|
|
|
934
|
-
* @example
|
|
935
|
-
* // Convert to array
|
|
936
|
-
* const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
|
|
937
|
-
* console.log(tm.toArray()); // [[1, 'a'], [2, 'b']];
|
|
938
|
-
*/
|
|
939
|
-
toArray(): Array<[K, V | undefined]>;
|
|
940
|
-
/**
|
|
941
|
-
* Print a human-friendly representation.
|
|
942
|
-
* @remarks Time O(n), Space O(n)
|
|
943
842
|
|
|
944
843
|
|
|
945
844
|
|
|
@@ -979,13 +878,44 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
979
878
|
|
|
980
879
|
|
|
981
880
|
* @example
|
|
982
|
-
* //
|
|
983
|
-
* const
|
|
984
|
-
*
|
|
881
|
+
* // Session management with expiry
|
|
882
|
+
* const sessions = new TreeMap<string, number>([
|
|
883
|
+
* ['sess_abc', Date.now()],
|
|
884
|
+
* ['sess_def', Date.now()],
|
|
885
|
+
* ['sess_ghi', Date.now()]
|
|
886
|
+
* ]);
|
|
887
|
+
*
|
|
888
|
+
* console.log(sessions.size); // 3;
|
|
889
|
+
* sessions.delete('sess_def');
|
|
890
|
+
* console.log(sessions.has('sess_def')); // false;
|
|
891
|
+
* console.log(sessions.size); // 2;
|
|
985
892
|
*/
|
|
986
|
-
|
|
893
|
+
delete(key: K): boolean;
|
|
987
894
|
/**
|
|
988
|
-
*
|
|
895
|
+
* Remove all entries.
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
|
|
903
|
+
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
|
|
989
919
|
|
|
990
920
|
|
|
991
921
|
|
|
@@ -997,36 +927,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
997
927
|
|
|
998
928
|
|
|
999
929
|
|
|
1000
|
-
* @example
|
|
1001
|
-
* // Leaderboard with ranked scores
|
|
1002
|
-
* // Use score as key (descending), player name as value
|
|
1003
|
-
* const leaderboard = new TreeMap<number, string>([], {
|
|
1004
|
-
* comparator: (a, b) => b - a // descending
|
|
1005
|
-
* });
|
|
1006
|
-
*
|
|
1007
|
-
* leaderboard.set(1500, 'Alice');
|
|
1008
|
-
* leaderboard.set(2200, 'Bob');
|
|
1009
|
-
* leaderboard.set(1800, 'Charlie');
|
|
1010
|
-
* leaderboard.set(2500, 'Diana');
|
|
1011
|
-
*
|
|
1012
|
-
* // Top 3 players (first 3 in descending order)
|
|
1013
|
-
* const top3 = [...leaderboard.entries()].slice(0, 3);
|
|
1014
|
-
* console.log(top3); // [
|
|
1015
|
-
* // [2500, 'Diana'],
|
|
1016
|
-
* // [2200, 'Bob'],
|
|
1017
|
-
* // [1800, 'Charlie']
|
|
1018
|
-
* // ];
|
|
1019
|
-
*
|
|
1020
|
-
* // Highest scorer
|
|
1021
|
-
* console.log(leaderboard.first()); // [2500, 'Diana'];
|
|
1022
|
-
*
|
|
1023
|
-
* // Remove lowest scorer
|
|
1024
|
-
* console.log(leaderboard.pollLast()); // [1500, 'Alice'];
|
|
1025
|
-
* console.log(leaderboard.size); // 3;
|
|
1026
|
-
*/
|
|
1027
|
-
first(): [K, V | undefined] | undefined;
|
|
1028
|
-
/**
|
|
1029
|
-
* Largest entry by key.
|
|
1030
930
|
|
|
1031
931
|
|
|
1032
932
|
|
|
@@ -1038,20 +938,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1038
938
|
|
|
1039
939
|
|
|
1040
940
|
|
|
1041
|
-
* @example
|
|
1042
|
-
* // Access the maximum entry
|
|
1043
|
-
* const scores = new TreeMap<number, string>([
|
|
1044
|
-
* [85, 'Bob'],
|
|
1045
|
-
* [92, 'Alice'],
|
|
1046
|
-
* [78, 'Charlie']
|
|
1047
|
-
* ]);
|
|
1048
|
-
*
|
|
1049
|
-
* console.log(scores.last()); // [92, 'Alice'];
|
|
1050
|
-
* console.log(scores.first()); // [78, 'Charlie'];
|
|
1051
|
-
*/
|
|
1052
|
-
last(): [K, V | undefined] | undefined;
|
|
1053
|
-
/**
|
|
1054
|
-
* Remove and return the smallest entry.
|
|
1055
941
|
|
|
1056
942
|
|
|
1057
943
|
|
|
@@ -1063,22 +949,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1063
949
|
|
|
1064
950
|
|
|
1065
951
|
|
|
1066
|
-
* @example
|
|
1067
|
-
* // Process items from lowest priority
|
|
1068
|
-
* const tasks = new TreeMap<number, string>([
|
|
1069
|
-
* [3, 'Low'],
|
|
1070
|
-
* [1, 'Critical'],
|
|
1071
|
-
* [2, 'Medium']
|
|
1072
|
-
* ]);
|
|
1073
|
-
*
|
|
1074
|
-
* // Process lowest priority first
|
|
1075
|
-
* console.log(tasks.pollFirst()); // [1, 'Critical'];
|
|
1076
|
-
* console.log(tasks.pollFirst()); // [2, 'Medium'];
|
|
1077
|
-
* console.log(tasks.size); // 1;
|
|
1078
|
-
*/
|
|
1079
|
-
pollFirst(): [K, V | undefined] | undefined;
|
|
1080
|
-
/**
|
|
1081
|
-
* Remove and return the largest entry.
|
|
1082
952
|
|
|
1083
953
|
|
|
1084
954
|
|
|
@@ -1090,22 +960,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1090
960
|
|
|
1091
961
|
|
|
1092
962
|
|
|
1093
|
-
* @example
|
|
1094
|
-
* // Remove the maximum entry
|
|
1095
|
-
* const bids = new TreeMap<number, string>([
|
|
1096
|
-
* [100, 'Alice'],
|
|
1097
|
-
* [150, 'Bob'],
|
|
1098
|
-
* [120, 'Charlie']
|
|
1099
|
-
* ]);
|
|
1100
|
-
*
|
|
1101
|
-
* // Remove highest bid
|
|
1102
|
-
* console.log(bids.pollLast()); // [150, 'Bob'];
|
|
1103
|
-
* console.log(bids.size); // 2;
|
|
1104
|
-
* console.log(bids.last()); // [120, 'Charlie'];
|
|
1105
|
-
*/
|
|
1106
|
-
pollLast(): [K, V | undefined] | undefined;
|
|
1107
|
-
/**
|
|
1108
|
-
* Smallest entry whose key is >= the given key.
|
|
1109
963
|
|
|
1110
964
|
|
|
1111
965
|
|
|
@@ -1144,41 +998,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1144
998
|
|
|
1145
999
|
|
|
1146
1000
|
|
|
1147
|
-
* @example
|
|
1148
|
-
* // Event scheduler with time-based lookup
|
|
1149
|
-
* const events = new TreeMap<Date, string>();
|
|
1150
|
-
*
|
|
1151
|
-
* const meeting = new Date('2024-01-15T10:00:00Z');
|
|
1152
|
-
* const lunch = new Date('2024-01-15T12:00:00Z');
|
|
1153
|
-
* const review = new Date('2024-01-15T15:00:00Z');
|
|
1154
|
-
* const standup = new Date('2024-01-15T09:00:00Z');
|
|
1155
|
-
*
|
|
1156
|
-
* events.set(meeting, 'Team Meeting');
|
|
1157
|
-
* events.set(lunch, 'Lunch Break');
|
|
1158
|
-
* events.set(review, 'Code Review');
|
|
1159
|
-
* events.set(standup, 'Daily Standup');
|
|
1160
|
-
*
|
|
1161
|
-
* // Events are sorted chronologically
|
|
1162
|
-
* console.log([...events.values()]); // [
|
|
1163
|
-
* // 'Daily Standup',
|
|
1164
|
-
* // 'Team Meeting',
|
|
1165
|
-
* // 'Lunch Break',
|
|
1166
|
-
* // 'Code Review'
|
|
1167
|
-
* // ];
|
|
1168
|
-
*
|
|
1169
|
-
* // Next event after 11:00
|
|
1170
|
-
* const after11 = new Date('2024-01-15T11:00:00Z');
|
|
1171
|
-
* console.log(events.ceiling(after11)?.[1]); // 'Lunch Break';
|
|
1172
|
-
*
|
|
1173
|
-
* // Events between 9:30 and 13:00
|
|
1174
|
-
* const from = new Date('2024-01-15T09:30:00Z');
|
|
1175
|
-
* const to = new Date('2024-01-15T13:00:00Z');
|
|
1176
|
-
* const window = events.rangeSearch([from, to]);
|
|
1177
|
-
* console.log(window.map(([, v]) => v)); // ['Team Meeting', 'Lunch Break'];
|
|
1178
|
-
*/
|
|
1179
|
-
ceiling(key: K): [K, V | undefined] | undefined;
|
|
1180
|
-
/**
|
|
1181
|
-
* Largest entry whose key is <= the given key.
|
|
1182
1001
|
|
|
1183
1002
|
|
|
1184
1003
|
|
|
@@ -1218,24 +1037,14 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1218
1037
|
|
|
1219
1038
|
|
|
1220
1039
|
* @example
|
|
1221
|
-
* //
|
|
1222
|
-
* const
|
|
1223
|
-
*
|
|
1224
|
-
*
|
|
1225
|
-
* [5, 'v5.0'],
|
|
1226
|
-
* [7, 'v7.0']
|
|
1227
|
-
* ]);
|
|
1228
|
-
*
|
|
1229
|
-
* // Largest version ≤ 4
|
|
1230
|
-
* console.log(versions.floor(4)); // [3, 'v3.0'];
|
|
1231
|
-
* // Largest version ≤ 5 (exact match)
|
|
1232
|
-
* console.log(versions.floor(5)); // [5, 'v5.0'];
|
|
1233
|
-
* // No version ≤ 0
|
|
1234
|
-
* console.log(versions.floor(0)); // undefined;
|
|
1040
|
+
* // Remove all
|
|
1041
|
+
* const tm = new TreeMap<number, string>([[1, 'a']]);
|
|
1042
|
+
* tm.clear();
|
|
1043
|
+
* console.log(tm.isEmpty()); // true;
|
|
1235
1044
|
*/
|
|
1236
|
-
|
|
1045
|
+
clear(): void;
|
|
1237
1046
|
/**
|
|
1238
|
-
*
|
|
1047
|
+
* Iterate over keys in ascending order.
|
|
1239
1048
|
|
|
1240
1049
|
|
|
1241
1050
|
|
|
@@ -1274,25 +1083,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1274
1083
|
|
|
1275
1084
|
|
|
1276
1085
|
|
|
1277
|
-
* @example
|
|
1278
|
-
* // Find the smallest key strictly > target
|
|
1279
|
-
* const prices = new TreeMap<number, string>([
|
|
1280
|
-
* [10, 'Basic'],
|
|
1281
|
-
* [25, 'Standard'],
|
|
1282
|
-
* [50, 'Premium'],
|
|
1283
|
-
* [100, 'Enterprise']
|
|
1284
|
-
* ]);
|
|
1285
|
-
*
|
|
1286
|
-
* // Next tier above $25
|
|
1287
|
-
* console.log(prices.higher(25)); // [50, 'Premium'];
|
|
1288
|
-
* // Next tier above $99
|
|
1289
|
-
* console.log(prices.higher(99)); // [100, 'Enterprise'];
|
|
1290
|
-
* // Nothing above $100
|
|
1291
|
-
* console.log(prices.higher(100)); // undefined;
|
|
1292
|
-
*/
|
|
1293
|
-
higher(key: K): [K, V | undefined] | undefined;
|
|
1294
|
-
/**
|
|
1295
|
-
* Largest entry whose key is < the given key.
|
|
1296
1086
|
|
|
1297
1087
|
|
|
1298
1088
|
|
|
@@ -1331,26 +1121,6 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1331
1121
|
|
|
1332
1122
|
|
|
1333
1123
|
|
|
1334
|
-
* @example
|
|
1335
|
-
* // Find the largest key strictly < target
|
|
1336
|
-
* const temps = new TreeMap<number, string>([
|
|
1337
|
-
* [0, 'Freezing'],
|
|
1338
|
-
* [20, 'Cool'],
|
|
1339
|
-
* [30, 'Warm'],
|
|
1340
|
-
* [40, 'Hot']
|
|
1341
|
-
* ]);
|
|
1342
|
-
*
|
|
1343
|
-
* // Largest reading below 30
|
|
1344
|
-
* console.log(temps.lower(30)); // [20, 'Cool'];
|
|
1345
|
-
* // Nothing below 0
|
|
1346
|
-
* console.log(temps.lower(0)); // undefined;
|
|
1347
|
-
*/
|
|
1348
|
-
lower(key: K): [K, V | undefined] | undefined;
|
|
1349
|
-
/**
|
|
1350
|
-
* Return all entries in a given key range.
|
|
1351
|
-
*
|
|
1352
|
-
* @param range `[low, high]`
|
|
1353
|
-
* @param options Inclusive/exclusive bounds (defaults to inclusive).
|
|
1354
1124
|
|
|
1355
1125
|
|
|
1356
1126
|
|
|
@@ -1389,27 +1159,2651 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1389
1159
|
|
|
1390
1160
|
|
|
1391
1161
|
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
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
|
+
* @example
|
|
1192
|
+
* // Get sorted keys
|
|
1193
|
+
* const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a']]);
|
|
1194
|
+
* console.log([...tm.keys()]); // [1, 3];
|
|
1195
|
+
*/
|
|
1196
|
+
keys(): IterableIterator<K>;
|
|
1197
|
+
private _entryFromKey;
|
|
1198
|
+
/**
|
|
1199
|
+
* Iterate over values in ascending key order.
|
|
1200
|
+
*
|
|
1201
|
+
* Note: values may be `undefined` (TreeMap allows storing `undefined`, like native `Map`).
|
|
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
|
+
|
|
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
|
+
* @example
|
|
1346
|
+
* // Get values in key order
|
|
1347
|
+
* const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
|
|
1348
|
+
* console.log([...tm.values()]); // ['a', 'b'];
|
|
1349
|
+
*/
|
|
1350
|
+
values(): IterableIterator<V | undefined>;
|
|
1351
|
+
/**
|
|
1352
|
+
* Iterate over `[key, value]` entries in ascending key order.
|
|
1353
|
+
*
|
|
1354
|
+
* Note: values may be `undefined`.
|
|
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
|
+
|
|
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
|
+
* @example
|
|
1499
|
+
* // Iterate key-value pairs
|
|
1500
|
+
* const tm = new TreeMap<number, string>([[3, 'c'], [1, 'a'], [2, 'b']]);
|
|
1501
|
+
* console.log([...tm.entries()]); // [[1, 'a'], [2, 'b'], [3, 'c']];
|
|
1502
|
+
*/
|
|
1503
|
+
entries(): IterableIterator<[K, V | undefined]>;
|
|
1504
|
+
[Symbol.iterator](): IterableIterator<[K, V | undefined]>;
|
|
1505
|
+
/**
|
|
1506
|
+
* Visit each entry in ascending key order.
|
|
1507
|
+
*
|
|
1508
|
+
* Note: callback value may be `undefined`.
|
|
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
|
+
|
|
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
|
+
* @example
|
|
1653
|
+
* // Execute for each entry
|
|
1654
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
1655
|
+
* const pairs: string[] = [];
|
|
1656
|
+
* tm.forEach((v, k) => pairs.push(`${k}:${v}`));
|
|
1657
|
+
* console.log(pairs); // ['1:a', '2:b'];
|
|
1658
|
+
*/
|
|
1659
|
+
forEach(cb: (value: V | undefined, key: K, map: TreeMap<K, V>) => void, thisArg?: unknown): void;
|
|
1660
|
+
/**
|
|
1661
|
+
* Create a new TreeMap by mapping each entry to a new `[key, value]` entry.
|
|
1662
|
+
*
|
|
1663
|
+
* This mirrors `RedBlackTree.map`: mapping produces a new ordered container.
|
|
1664
|
+
* @remarks Time O(n log n) expected, Space O(n)
|
|
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
|
+
|
|
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
|
+
* @example
|
|
1809
|
+
* // Transform entries
|
|
1810
|
+
* const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
|
|
1811
|
+
* const doubled = tm.map((v, k) => [k, (v ?? 0) * 2] as [number, number]);
|
|
1812
|
+
* console.log([...doubled.values()]); // [20, 40];
|
|
1813
|
+
*/
|
|
1814
|
+
map<MK, MV>(callbackfn: TreeMapEntryCallback<K, V, [MK, MV], TreeMap<K, V>>, options?: Omit<TreeMapOptions<MK, MV>, 'toEntryFn'> & {
|
|
1815
|
+
comparator?: (a: MK, b: MK) => number;
|
|
1816
|
+
}, thisArg?: unknown): TreeMap<MK, MV>;
|
|
1817
|
+
/**
|
|
1818
|
+
* Create a new TreeMap containing only entries that satisfy the predicate.
|
|
1819
|
+
* @remarks Time O(n log n) expected, Space O(n)
|
|
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
|
+
|
|
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
|
+
* @example
|
|
1964
|
+
* // Filter entries
|
|
1965
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b'], [3, 'c']]);
|
|
1966
|
+
* const filtered = tm.filter((v, k) => k > 1);
|
|
1967
|
+
* console.log([...filtered.keys()]); // [2, 3];
|
|
1968
|
+
*/
|
|
1969
|
+
filter(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): TreeMap<K, V>;
|
|
1970
|
+
/**
|
|
1971
|
+
* Reduce entries into a single accumulator.
|
|
1972
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
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
|
+
* @example
|
|
2117
|
+
* // Aggregate values
|
|
2118
|
+
* const tm = new TreeMap<number, number>([[1, 10], [2, 20]]);
|
|
2119
|
+
* console.log(tm.reduce((acc, v) => acc + (v ?? 0), 0)); // 30;
|
|
2120
|
+
*/
|
|
2121
|
+
reduce<A>(callbackfn: TreeMapReduceCallback<K, V, A, TreeMap<K, V>>, initialValue: A): A;
|
|
2122
|
+
/**
|
|
2123
|
+
* Test whether all entries satisfy a predicate.
|
|
2124
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
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
|
+
* @example
|
|
2267
|
+
* // Test all entries
|
|
2268
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
2269
|
+
* console.log(tm.every((v, k) => k > 0)); // true;
|
|
2270
|
+
*/
|
|
2271
|
+
every(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
|
|
2272
|
+
/**
|
|
2273
|
+
* Test whether any entry satisfies a predicate.
|
|
2274
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
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
|
+
* @example
|
|
2417
|
+
* // Test any entry
|
|
2418
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
2419
|
+
* console.log(tm.some((v, k) => k === 2)); // true;
|
|
2420
|
+
*/
|
|
2421
|
+
some(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): boolean;
|
|
2422
|
+
/**
|
|
2423
|
+
* Find the first entry that satisfies a predicate.
|
|
2424
|
+
* @returns The first matching `[key, value]` tuple, or `undefined`.
|
|
2425
|
+
* @remarks Time O(n), Space O(1)
|
|
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
|
+
|
|
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
|
+
* @example
|
|
2568
|
+
* // Find matching entry
|
|
2569
|
+
* const tm = new TreeMap<number, string>([[1, 'a'], [2, 'b']]);
|
|
2570
|
+
* console.log(tm.find(v => v === 'b')?.[0]); // 2;
|
|
2571
|
+
*/
|
|
2572
|
+
find(callbackfn: TreeMapEntryCallback<K, V, boolean, TreeMap<K, V>>, thisArg?: unknown): [K, V | undefined] | undefined;
|
|
2573
|
+
/**
|
|
2574
|
+
* Materialize the map into an array of `[key, value]` tuples.
|
|
2575
|
+
* @remarks Time O(n), Space O(n)
|
|
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
|
+
|
|
2678
|
+
|
|
2679
|
+
|
|
2680
|
+
|
|
2681
|
+
|
|
2682
|
+
|
|
2683
|
+
|
|
2684
|
+
|
|
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
|
+
|
|
2718
|
+
|
|
2719
|
+
* @example
|
|
2720
|
+
* // Convert to array
|
|
2721
|
+
* const tm = new TreeMap<number, string>([[2, 'b'], [1, 'a']]);
|
|
2722
|
+
* console.log(tm.toArray()); // [[1, 'a'], [2, 'b']];
|
|
2723
|
+
*/
|
|
2724
|
+
toArray(): Array<[K, V | undefined]>;
|
|
2725
|
+
/**
|
|
2726
|
+
* Print a human-friendly representation.
|
|
2727
|
+
* @remarks Time O(n), Space O(n)
|
|
2728
|
+
|
|
2729
|
+
|
|
2730
|
+
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
|
|
2734
|
+
|
|
2735
|
+
|
|
2736
|
+
|
|
2737
|
+
|
|
2738
|
+
|
|
2739
|
+
|
|
2740
|
+
|
|
2741
|
+
|
|
2742
|
+
|
|
2743
|
+
|
|
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
|
+
|
|
2776
|
+
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
|
|
2780
|
+
|
|
2781
|
+
|
|
2782
|
+
|
|
2783
|
+
|
|
2784
|
+
|
|
2785
|
+
|
|
2786
|
+
|
|
2787
|
+
|
|
2788
|
+
|
|
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
|
+
|
|
2822
|
+
|
|
2823
|
+
|
|
2824
|
+
|
|
2825
|
+
|
|
2826
|
+
|
|
2827
|
+
|
|
2828
|
+
|
|
2829
|
+
|
|
2830
|
+
|
|
2831
|
+
|
|
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
|
+
|
|
2865
|
+
|
|
2866
|
+
|
|
2867
|
+
|
|
2868
|
+
|
|
2869
|
+
|
|
2870
|
+
|
|
2871
|
+
* @example
|
|
2872
|
+
* // Display tree
|
|
2873
|
+
* const tm = new TreeMap<number, string>([[1, 'a']]);
|
|
2874
|
+
* expect(() => tm.print()).not.toThrow();
|
|
2875
|
+
*/
|
|
2876
|
+
print(): void;
|
|
2877
|
+
/**
|
|
2878
|
+
* Smallest entry by key.
|
|
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
|
+
* @example
|
|
2912
|
+
* // Leaderboard with ranked scores
|
|
2913
|
+
* // Use score as key (descending), player name as value
|
|
2914
|
+
* const leaderboard = new TreeMap<number, string>([], {
|
|
2915
|
+
* comparator: (a, b) => b - a // descending
|
|
2916
|
+
* });
|
|
2917
|
+
*
|
|
2918
|
+
* leaderboard.set(1500, 'Alice');
|
|
2919
|
+
* leaderboard.set(2200, 'Bob');
|
|
2920
|
+
* leaderboard.set(1800, 'Charlie');
|
|
2921
|
+
* leaderboard.set(2500, 'Diana');
|
|
2922
|
+
*
|
|
2923
|
+
* // Top 3 players (first 3 in descending order)
|
|
2924
|
+
* const top3 = [...leaderboard.entries()].slice(0, 3);
|
|
2925
|
+
* console.log(top3); // [
|
|
2926
|
+
* // [2500, 'Diana'],
|
|
2927
|
+
* // [2200, 'Bob'],
|
|
2928
|
+
* // [1800, 'Charlie']
|
|
2929
|
+
* // ];
|
|
2930
|
+
*
|
|
2931
|
+
* // Highest scorer
|
|
2932
|
+
* console.log(leaderboard.first()); // [2500, 'Diana'];
|
|
2933
|
+
*
|
|
2934
|
+
* // Remove lowest scorer
|
|
2935
|
+
* console.log(leaderboard.pollLast()); // [1500, 'Alice'];
|
|
2936
|
+
* console.log(leaderboard.size); // 3;
|
|
2937
|
+
*/
|
|
2938
|
+
first(): [K, V | undefined] | undefined;
|
|
2939
|
+
/**
|
|
2940
|
+
* Largest entry by key.
|
|
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
|
+
* @example
|
|
2974
|
+
* // Access the maximum entry
|
|
2975
|
+
* const scores = new TreeMap<number, string>([
|
|
2976
|
+
* [85, 'Bob'],
|
|
2977
|
+
* [92, 'Alice'],
|
|
2978
|
+
* [78, 'Charlie']
|
|
2979
|
+
* ]);
|
|
2980
|
+
*
|
|
2981
|
+
* console.log(scores.last()); // [92, 'Alice'];
|
|
2982
|
+
* console.log(scores.first()); // [78, 'Charlie'];
|
|
2983
|
+
*/
|
|
2984
|
+
last(): [K, V | undefined] | undefined;
|
|
2985
|
+
/**
|
|
2986
|
+
* Remove and return the smallest entry.
|
|
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
|
+
* @example
|
|
3020
|
+
* // Process items from lowest priority
|
|
3021
|
+
* const tasks = new TreeMap<number, string>([
|
|
3022
|
+
* [3, 'Low'],
|
|
3023
|
+
* [1, 'Critical'],
|
|
3024
|
+
* [2, 'Medium']
|
|
3025
|
+
* ]);
|
|
3026
|
+
*
|
|
3027
|
+
* // Process lowest priority first
|
|
3028
|
+
* console.log(tasks.pollFirst()); // [1, 'Critical'];
|
|
3029
|
+
* console.log(tasks.pollFirst()); // [2, 'Medium'];
|
|
3030
|
+
* console.log(tasks.size); // 1;
|
|
3031
|
+
*/
|
|
3032
|
+
pollFirst(): [K, V | undefined] | undefined;
|
|
3033
|
+
/**
|
|
3034
|
+
* Remove and return the largest entry.
|
|
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
|
+
* @example
|
|
3068
|
+
* // Remove the maximum entry
|
|
3069
|
+
* const bids = new TreeMap<number, string>([
|
|
3070
|
+
* [100, 'Alice'],
|
|
3071
|
+
* [150, 'Bob'],
|
|
3072
|
+
* [120, 'Charlie']
|
|
3073
|
+
* ]);
|
|
3074
|
+
*
|
|
3075
|
+
* // Remove highest bid
|
|
3076
|
+
* console.log(bids.pollLast()); // [150, 'Bob'];
|
|
3077
|
+
* console.log(bids.size); // 2;
|
|
3078
|
+
* console.log(bids.last()); // [120, 'Charlie'];
|
|
3079
|
+
*/
|
|
3080
|
+
pollLast(): [K, V | undefined] | undefined;
|
|
3081
|
+
/**
|
|
3082
|
+
* Smallest entry whose key is >= the given key.
|
|
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
|
+
|
|
3139
|
+
|
|
3140
|
+
|
|
3141
|
+
|
|
3142
|
+
|
|
3143
|
+
|
|
3144
|
+
|
|
3145
|
+
|
|
3146
|
+
|
|
3147
|
+
|
|
3148
|
+
|
|
3149
|
+
|
|
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
|
+
* @example
|
|
3206
|
+
* // Event scheduler with time-based lookup
|
|
3207
|
+
* const events = new TreeMap<Date, string>();
|
|
3208
|
+
*
|
|
3209
|
+
* const meeting = new Date('2024-01-15T10:00:00Z');
|
|
3210
|
+
* const lunch = new Date('2024-01-15T12:00:00Z');
|
|
3211
|
+
* const review = new Date('2024-01-15T15:00:00Z');
|
|
3212
|
+
* const standup = new Date('2024-01-15T09:00:00Z');
|
|
3213
|
+
*
|
|
3214
|
+
* events.set(meeting, 'Team Meeting');
|
|
3215
|
+
* events.set(lunch, 'Lunch Break');
|
|
3216
|
+
* events.set(review, 'Code Review');
|
|
3217
|
+
* events.set(standup, 'Daily Standup');
|
|
3218
|
+
*
|
|
3219
|
+
* // Events are sorted chronologically
|
|
3220
|
+
* console.log([...events.values()]); // [
|
|
3221
|
+
* // 'Daily Standup',
|
|
3222
|
+
* // 'Team Meeting',
|
|
3223
|
+
* // 'Lunch Break',
|
|
3224
|
+
* // 'Code Review'
|
|
3225
|
+
* // ];
|
|
3226
|
+
*
|
|
3227
|
+
* // Next event after 11:00
|
|
3228
|
+
* const after11 = new Date('2024-01-15T11:00:00Z');
|
|
3229
|
+
* console.log(events.ceiling(after11)?.[1]); // 'Lunch Break';
|
|
3230
|
+
*
|
|
3231
|
+
* // Events between 9:30 and 13:00
|
|
3232
|
+
* const from = new Date('2024-01-15T09:30:00Z');
|
|
3233
|
+
* const to = new Date('2024-01-15T13:00:00Z');
|
|
3234
|
+
* const window = events.rangeSearch([from, to]);
|
|
3235
|
+
* console.log(window.map(([, v]) => v)); // ['Team Meeting', 'Lunch Break'];
|
|
3236
|
+
*/
|
|
3237
|
+
ceiling(key: K): [K, V | undefined] | undefined;
|
|
3238
|
+
/**
|
|
3239
|
+
* Largest entry whose key is <= the given key.
|
|
3240
|
+
|
|
3241
|
+
|
|
3242
|
+
|
|
3243
|
+
|
|
3244
|
+
|
|
3245
|
+
|
|
3246
|
+
|
|
3247
|
+
|
|
3248
|
+
|
|
3249
|
+
|
|
3250
|
+
|
|
3251
|
+
|
|
3252
|
+
|
|
3253
|
+
|
|
3254
|
+
|
|
3255
|
+
|
|
3256
|
+
|
|
3257
|
+
|
|
3258
|
+
|
|
3259
|
+
|
|
3260
|
+
|
|
3261
|
+
|
|
3262
|
+
|
|
3263
|
+
|
|
3264
|
+
|
|
3265
|
+
|
|
3266
|
+
|
|
3267
|
+
|
|
3268
|
+
|
|
3269
|
+
|
|
3270
|
+
|
|
3271
|
+
|
|
3272
|
+
|
|
3273
|
+
|
|
3274
|
+
|
|
3275
|
+
|
|
3276
|
+
|
|
3277
|
+
|
|
3278
|
+
|
|
3279
|
+
|
|
3280
|
+
|
|
3281
|
+
|
|
3282
|
+
|
|
3283
|
+
|
|
3284
|
+
|
|
3285
|
+
|
|
3286
|
+
|
|
3287
|
+
|
|
3288
|
+
|
|
3289
|
+
|
|
3290
|
+
|
|
3291
|
+
|
|
3292
|
+
|
|
3293
|
+
|
|
3294
|
+
|
|
3295
|
+
|
|
3296
|
+
|
|
3297
|
+
|
|
3298
|
+
|
|
3299
|
+
|
|
3300
|
+
|
|
3301
|
+
|
|
3302
|
+
|
|
3303
|
+
|
|
3304
|
+
|
|
3305
|
+
|
|
3306
|
+
|
|
3307
|
+
|
|
3308
|
+
|
|
3309
|
+
|
|
3310
|
+
|
|
3311
|
+
|
|
3312
|
+
|
|
3313
|
+
|
|
3314
|
+
|
|
3315
|
+
|
|
3316
|
+
|
|
3317
|
+
|
|
3318
|
+
|
|
3319
|
+
|
|
3320
|
+
|
|
3321
|
+
|
|
3322
|
+
|
|
3323
|
+
|
|
3324
|
+
|
|
3325
|
+
|
|
3326
|
+
|
|
3327
|
+
|
|
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
|
+
* @example
|
|
3363
|
+
* // Find the largest key ≤ target
|
|
3364
|
+
* const versions = new TreeMap<number, string>([
|
|
3365
|
+
* [1, 'v1.0'],
|
|
3366
|
+
* [3, 'v3.0'],
|
|
3367
|
+
* [5, 'v5.0'],
|
|
3368
|
+
* [7, 'v7.0']
|
|
3369
|
+
* ]);
|
|
3370
|
+
*
|
|
3371
|
+
* // Largest version ≤ 4
|
|
3372
|
+
* console.log(versions.floor(4)); // [3, 'v3.0'];
|
|
3373
|
+
* // Largest version ≤ 5 (exact match)
|
|
3374
|
+
* console.log(versions.floor(5)); // [5, 'v5.0'];
|
|
3375
|
+
* // No version ≤ 0
|
|
3376
|
+
* console.log(versions.floor(0)); // undefined;
|
|
3377
|
+
*/
|
|
3378
|
+
floor(key: K): [K, V | undefined] | undefined;
|
|
3379
|
+
/**
|
|
3380
|
+
* Smallest entry whose key is > the given key.
|
|
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
|
+
|
|
3409
|
+
|
|
3410
|
+
|
|
3411
|
+
|
|
3412
|
+
|
|
3413
|
+
|
|
3414
|
+
|
|
3415
|
+
|
|
3416
|
+
|
|
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
|
+
|
|
3463
|
+
|
|
3464
|
+
|
|
3465
|
+
|
|
3466
|
+
|
|
3467
|
+
|
|
3468
|
+
|
|
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
|
+
* @example
|
|
3504
|
+
* // Find the smallest key strictly > target
|
|
3505
|
+
* const prices = new TreeMap<number, string>([
|
|
3506
|
+
* [10, 'Basic'],
|
|
3507
|
+
* [25, 'Standard'],
|
|
3508
|
+
* [50, 'Premium'],
|
|
3509
|
+
* [100, 'Enterprise']
|
|
3510
|
+
* ]);
|
|
3511
|
+
*
|
|
3512
|
+
* // Next tier above $25
|
|
3513
|
+
* console.log(prices.higher(25)); // [50, 'Premium'];
|
|
3514
|
+
* // Next tier above $99
|
|
3515
|
+
* console.log(prices.higher(99)); // [100, 'Enterprise'];
|
|
3516
|
+
* // Nothing above $100
|
|
3517
|
+
* console.log(prices.higher(100)); // undefined;
|
|
3518
|
+
*/
|
|
3519
|
+
higher(key: K): [K, V | undefined] | undefined;
|
|
3520
|
+
/**
|
|
3521
|
+
* Largest entry whose key is < the given key.
|
|
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
|
+
|
|
3570
|
+
|
|
3571
|
+
|
|
3572
|
+
|
|
3573
|
+
|
|
3574
|
+
|
|
3575
|
+
|
|
3576
|
+
|
|
3577
|
+
|
|
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
|
+
* @example
|
|
3645
|
+
* // Find the largest key strictly < target
|
|
3646
|
+
* const temps = new TreeMap<number, string>([
|
|
3647
|
+
* [0, 'Freezing'],
|
|
3648
|
+
* [20, 'Cool'],
|
|
3649
|
+
* [30, 'Warm'],
|
|
3650
|
+
* [40, 'Hot']
|
|
3651
|
+
* ]);
|
|
3652
|
+
*
|
|
3653
|
+
* // Largest reading below 30
|
|
3654
|
+
* console.log(temps.lower(30)); // [20, 'Cool'];
|
|
3655
|
+
* // Nothing below 0
|
|
3656
|
+
* console.log(temps.lower(0)); // undefined;
|
|
3657
|
+
*/
|
|
3658
|
+
lower(key: K): [K, V | undefined] | undefined;
|
|
3659
|
+
/**
|
|
3660
|
+
* Return all entries in a given key range.
|
|
3661
|
+
*
|
|
3662
|
+
* @param range `[low, high]`
|
|
3663
|
+
* @param options Inclusive/exclusive bounds (defaults to inclusive).
|
|
3664
|
+
|
|
3665
|
+
|
|
3666
|
+
|
|
3667
|
+
|
|
3668
|
+
|
|
3669
|
+
|
|
3670
|
+
|
|
3671
|
+
|
|
3672
|
+
|
|
3673
|
+
|
|
3674
|
+
|
|
3675
|
+
|
|
3676
|
+
|
|
3677
|
+
|
|
3678
|
+
|
|
3679
|
+
|
|
3680
|
+
|
|
3681
|
+
|
|
3682
|
+
|
|
3683
|
+
|
|
3684
|
+
|
|
3685
|
+
|
|
3686
|
+
|
|
3687
|
+
|
|
3688
|
+
|
|
3689
|
+
|
|
3690
|
+
|
|
3691
|
+
|
|
3692
|
+
|
|
3693
|
+
|
|
3694
|
+
|
|
3695
|
+
|
|
3696
|
+
|
|
3697
|
+
|
|
3698
|
+
|
|
3699
|
+
|
|
3700
|
+
|
|
3701
|
+
|
|
3702
|
+
|
|
3703
|
+
|
|
3704
|
+
|
|
3705
|
+
|
|
3706
|
+
|
|
3707
|
+
|
|
3708
|
+
|
|
3709
|
+
|
|
3710
|
+
|
|
3711
|
+
|
|
3712
|
+
|
|
3713
|
+
|
|
3714
|
+
|
|
3715
|
+
|
|
3716
|
+
|
|
3717
|
+
|
|
3718
|
+
|
|
3719
|
+
|
|
3720
|
+
|
|
3721
|
+
|
|
3722
|
+
|
|
3723
|
+
|
|
3724
|
+
|
|
3725
|
+
|
|
3726
|
+
|
|
3727
|
+
|
|
3728
|
+
|
|
3729
|
+
|
|
3730
|
+
|
|
3731
|
+
|
|
3732
|
+
|
|
3733
|
+
|
|
3734
|
+
|
|
3735
|
+
|
|
3736
|
+
|
|
3737
|
+
|
|
3738
|
+
|
|
3739
|
+
|
|
3740
|
+
|
|
3741
|
+
|
|
3742
|
+
|
|
3743
|
+
|
|
3744
|
+
|
|
3745
|
+
|
|
3746
|
+
|
|
3747
|
+
|
|
3748
|
+
|
|
3749
|
+
|
|
3750
|
+
|
|
3751
|
+
|
|
3752
|
+
|
|
3753
|
+
|
|
3754
|
+
|
|
3755
|
+
|
|
3756
|
+
|
|
3757
|
+
|
|
3758
|
+
|
|
3759
|
+
|
|
3760
|
+
|
|
3761
|
+
|
|
3762
|
+
|
|
3763
|
+
|
|
3764
|
+
|
|
3765
|
+
|
|
3766
|
+
|
|
3767
|
+
|
|
3768
|
+
|
|
3769
|
+
|
|
3770
|
+
|
|
3771
|
+
|
|
3772
|
+
|
|
3773
|
+
|
|
3774
|
+
|
|
3775
|
+
|
|
3776
|
+
|
|
3777
|
+
|
|
3778
|
+
|
|
3779
|
+
|
|
3780
|
+
|
|
3781
|
+
|
|
3782
|
+
|
|
3783
|
+
|
|
3784
|
+
|
|
3785
|
+
|
|
3786
|
+
* @example
|
|
3787
|
+
* // Inventory system with price-sorted products
|
|
3788
|
+
* interface Product {
|
|
3789
|
+
* name: string;
|
|
3790
|
+
* price: number;
|
|
3791
|
+
* stock: number;
|
|
3792
|
+
* }
|
|
3793
|
+
*
|
|
3794
|
+
* const inventory = new TreeMap<string, Product, Product>(
|
|
3795
|
+
* [
|
|
3796
|
+
* { name: 'Widget', price: 9.99, stock: 100 },
|
|
3797
|
+
* { name: 'Gadget', price: 24.99, stock: 50 },
|
|
3798
|
+
* { name: 'Doohickey', price: 4.99, stock: 200 }
|
|
3799
|
+
* ],
|
|
3800
|
+
* { toEntryFn: p => [p.name, p] }
|
|
3801
|
+
* );
|
|
3802
|
+
*
|
|
3803
|
+
* // Sorted alphabetically by product name
|
|
3804
|
+
* console.log([...inventory.keys()]); // ['Doohickey', 'Gadget', 'Widget'];
|
|
3805
|
+
*
|
|
3806
|
+
* // Filter high-stock items
|
|
1413
3807
|
* const highStock = inventory.filter(p => (p?.stock ?? 0) > 75);
|
|
1414
3808
|
* console.log([...highStock.keys()]); // ['Doohickey', 'Widget'];
|
|
1415
3809
|
*
|
|
@@ -1442,6 +3836,111 @@ export declare class TreeMap<K = any, V = any, R = [K, V]> implements Iterable<[
|
|
|
1442
3836
|
|
|
1443
3837
|
|
|
1444
3838
|
|
|
3839
|
+
|
|
3840
|
+
|
|
3841
|
+
|
|
3842
|
+
|
|
3843
|
+
|
|
3844
|
+
|
|
3845
|
+
|
|
3846
|
+
|
|
3847
|
+
|
|
3848
|
+
|
|
3849
|
+
|
|
3850
|
+
|
|
3851
|
+
|
|
3852
|
+
|
|
3853
|
+
|
|
3854
|
+
|
|
3855
|
+
|
|
3856
|
+
|
|
3857
|
+
|
|
3858
|
+
|
|
3859
|
+
|
|
3860
|
+
|
|
3861
|
+
|
|
3862
|
+
|
|
3863
|
+
|
|
3864
|
+
|
|
3865
|
+
|
|
3866
|
+
|
|
3867
|
+
|
|
3868
|
+
|
|
3869
|
+
|
|
3870
|
+
|
|
3871
|
+
|
|
3872
|
+
|
|
3873
|
+
|
|
3874
|
+
|
|
3875
|
+
|
|
3876
|
+
|
|
3877
|
+
|
|
3878
|
+
|
|
3879
|
+
|
|
3880
|
+
|
|
3881
|
+
|
|
3882
|
+
|
|
3883
|
+
|
|
3884
|
+
|
|
3885
|
+
|
|
3886
|
+
|
|
3887
|
+
|
|
3888
|
+
|
|
3889
|
+
|
|
3890
|
+
|
|
3891
|
+
|
|
3892
|
+
|
|
3893
|
+
|
|
3894
|
+
|
|
3895
|
+
|
|
3896
|
+
|
|
3897
|
+
|
|
3898
|
+
|
|
3899
|
+
|
|
3900
|
+
|
|
3901
|
+
|
|
3902
|
+
|
|
3903
|
+
|
|
3904
|
+
|
|
3905
|
+
|
|
3906
|
+
|
|
3907
|
+
|
|
3908
|
+
|
|
3909
|
+
|
|
3910
|
+
|
|
3911
|
+
|
|
3912
|
+
|
|
3913
|
+
|
|
3914
|
+
|
|
3915
|
+
|
|
3916
|
+
|
|
3917
|
+
|
|
3918
|
+
|
|
3919
|
+
|
|
3920
|
+
|
|
3921
|
+
|
|
3922
|
+
|
|
3923
|
+
|
|
3924
|
+
|
|
3925
|
+
|
|
3926
|
+
|
|
3927
|
+
|
|
3928
|
+
|
|
3929
|
+
|
|
3930
|
+
|
|
3931
|
+
|
|
3932
|
+
|
|
3933
|
+
|
|
3934
|
+
|
|
3935
|
+
|
|
3936
|
+
|
|
3937
|
+
|
|
3938
|
+
|
|
3939
|
+
|
|
3940
|
+
|
|
3941
|
+
|
|
3942
|
+
|
|
3943
|
+
|
|
1445
3944
|
|
|
1446
3945
|
|
|
1447
3946
|
|