max-priority-queue-typed 2.5.2 → 2.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/cjs/index.cjs +103 -16
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs-legacy/index.cjs +103 -16
  4. package/dist/cjs-legacy/index.cjs.map +1 -1
  5. package/dist/esm/index.mjs +103 -16
  6. package/dist/esm/index.mjs.map +1 -1
  7. package/dist/esm-legacy/index.mjs +103 -16
  8. package/dist/esm-legacy/index.mjs.map +1 -1
  9. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +50 -2
  10. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
  11. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +116 -15
  12. package/dist/types/data-structures/binary-tree/bst.d.ts +99 -3
  13. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +79 -8
  14. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
  15. package/dist/types/data-structures/binary-tree/tree-map.d.ts +520 -1
  16. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +489 -1
  17. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +393 -1
  18. package/dist/types/data-structures/binary-tree/tree-set.d.ts +500 -1
  19. package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
  20. package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
  21. package/dist/types/data-structures/hash/hash-map.d.ts +51 -6
  22. package/dist/types/data-structures/heap/heap.d.ts +98 -12
  23. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -0
  24. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +61 -1
  25. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
  26. package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
  27. package/dist/types/data-structures/queue/deque.d.ts +82 -0
  28. package/dist/types/data-structures/queue/queue.d.ts +61 -0
  29. package/dist/types/data-structures/stack/stack.d.ts +42 -2
  30. package/dist/types/data-structures/trie/trie.d.ts +48 -0
  31. package/dist/types/interfaces/binary-tree.d.ts +2 -3
  32. package/dist/umd/max-priority-queue-typed.js +103 -16
  33. package/dist/umd/max-priority-queue-typed.js.map +1 -1
  34. package/dist/umd/max-priority-queue-typed.min.js +1 -1
  35. package/dist/umd/max-priority-queue-typed.min.js.map +1 -1
  36. package/package.json +2 -2
  37. package/src/data-structures/binary-tree/avl-tree.ts +52 -5
  38. package/src/data-structures/binary-tree/binary-indexed-tree.ts +56 -0
  39. package/src/data-structures/binary-tree/binary-tree.ts +167 -81
  40. package/src/data-structures/binary-tree/bst.ts +101 -7
  41. package/src/data-structures/binary-tree/red-black-tree.ts +82 -15
  42. package/src/data-structures/binary-tree/segment-tree.ts +24 -0
  43. package/src/data-structures/binary-tree/tree-map.ts +540 -3
  44. package/src/data-structures/binary-tree/tree-multi-map.ts +490 -2
  45. package/src/data-structures/binary-tree/tree-multi-set.ts +393 -1
  46. package/src/data-structures/binary-tree/tree-set.ts +520 -3
  47. package/src/data-structures/graph/directed-graph.ts +41 -1
  48. package/src/data-structures/graph/undirected-graph.ts +37 -1
  49. package/src/data-structures/hash/hash-map.ts +67 -12
  50. package/src/data-structures/heap/heap.ts +107 -19
  51. package/src/data-structures/linked-list/doubly-linked-list.ts +88 -0
  52. package/src/data-structures/linked-list/singly-linked-list.ts +61 -1
  53. package/src/data-structures/linked-list/skip-linked-list.ts +72 -0
  54. package/src/data-structures/matrix/matrix.ts +32 -0
  55. package/src/data-structures/queue/deque.ts +85 -0
  56. package/src/data-structures/queue/queue.ts +73 -0
  57. package/src/data-structures/stack/stack.ts +45 -5
  58. package/src/data-structures/trie/trie.ts +48 -0
  59. package/src/interfaces/binary-tree.ts +1 -9
@@ -136,7 +136,7 @@ export declare class BinaryTreeNode<K = any, V = any> {
136
136
  * node?: BinaryTreeNode<string> | null,
137
137
  * conditions?: { [key: string]: boolean }
138
138
  * ): string {
139
- * if (!node) raise(Error, 'Invalid node');
139
+ * if (!node) throw new Error('Invalid node');
140
140
  *
141
141
  * // If it's a leaf node, return the decision result
142
142
  * if (!node.left && !node.right) return node.key;
@@ -181,7 +181,7 @@ export declare class BinaryTreeNode<K = any, V = any> {
181
181
  * case '/':
182
182
  * return rightValue !== 0 ? leftValue / rightValue : 0; // Handle division by zero
183
183
  * default:
184
- * raise(Error, `Unsupported operator: ${node.key}`);
184
+ * throw new Error(`Unsupported operator: ${node.key}`);
185
185
  * }
186
186
  * }
187
187
  *
@@ -353,7 +353,7 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
353
353
  isValidKey(key: unknown): key is K;
354
354
  /**
355
355
  * Adds a new node to the tree.
356
- * @remarks Time O(log N), For BST, Red-Black Tree, and AVL Tree subclasses, the worst-case time is O(log N). This implementation adds the node at the first available position in a level-order (BFS) traversal. This is NOT a Binary Search Tree insertion. Time O(N), where N is the number of nodes. It must traverse level-by-level to find an empty slot. Space O(N) in the worst case for the BFS queue (e.g., a full last level).
356
+ * @remarks Time O(N) level-order traversal to find an empty slot. Space O(N) for the BFS queue. BST/Red-Black Tree/AVL Tree subclasses override to O(log N).
357
357
  *
358
358
  * @param keyNodeOrEntry - The key, node, or entry to add.
359
359
  * @returns True if the addition was successful, false otherwise.
@@ -382,6 +382,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
382
382
 
383
383
 
384
384
 
385
+
386
+
387
+
388
+
385
389
 
386
390
 
387
391
 
@@ -399,7 +403,7 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
399
403
  add(keyNodeOrEntry: K | BinaryTreeNode<K, V> | [K | null | undefined, V | undefined] | null | undefined): boolean;
400
404
  /**
401
405
  * Adds or updates a new node to the tree.
402
- * @remarks Time O(log N), For BST, Red-Black Tree, and AVL Tree subclasses, the worst-case time is O(log N). This implementation sets the node at the first available position in a level-order (BFS) traversal. This is NOT a Binary Search Tree insertion. Time O(N), where N is the number of nodes. It must traverse level-by-level to find an empty slot. Space O(N) in the worst case for the BFS queue (e.g., a full last level).
406
+ * @remarks Time O(N) level-order traversal to find an empty slot. Space O(N) for the BFS queue. BST/Red-Black Tree/AVL Tree subclasses override to O(log N).
403
407
  *
404
408
  * @param keyNodeOrEntry - The key, node, or entry to set or update.
405
409
  * @param [value] - The value, if providing just a key.
@@ -434,6 +438,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
434
438
 
435
439
 
436
440
 
441
+
442
+
443
+
444
+
437
445
 
438
446
 
439
447
 
@@ -498,6 +506,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
498
506
 
499
507
 
500
508
 
509
+
510
+
511
+
512
+
501
513
 
502
514
 
503
515
 
@@ -538,6 +550,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
538
550
 
539
551
 
540
552
 
553
+
554
+
555
+
556
+
541
557
 
542
558
 
543
559
 
@@ -583,6 +599,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
583
599
 
584
600
 
585
601
 
602
+
603
+
604
+
605
+
586
606
 
587
607
 
588
608
 
@@ -597,19 +617,24 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
597
617
  */
598
618
  merge(anotherTree: BinaryTree<K, V, R>): void;
599
619
  /**
600
- * Clears the tree and refills it with new items.
601
- * @remarks Time O(N) (for `clear`) + O(N * M) (for `setMany`) = O(N * M). Space O(M) (from `setMany`).
620
+ * Deletes a node from the tree (internal, returns balancing metadata).
621
+ * @remarks Time O(N) O(N) to find the node + O(H) for predecessor swap. Space O(1). BST/Red-Black Tree/AVL Tree subclasses override to O(log N).
622
+ * @internal Used by AVL/BST subclasses that need balancing metadata after deletion.
602
623
  *
603
- * @param keysNodesEntriesOrRaws - An iterable of items to set.
604
- * @param [values] - An optional parallel iterable of values.
624
+ * @param keyNodeEntryRawOrPredicate - The node to delete.
625
+ * @returns An array containing deletion results with balancing metadata.
605
626
  */
606
- refill(keysNodesEntriesOrRaws: Iterable<K | BinaryTreeNode<K, V> | [K | null | undefined, V | undefined] | null | undefined | R>, values?: Iterable<V | undefined>): void;
627
+ protected _deleteInternal(keyNodeEntryRawOrPredicate: BTNRep<K, V, BinaryTreeNode<K, V>> | NodePredicate<BinaryTreeNode<K, V> | null>): BinaryTreeDeleteResult<BinaryTreeNode<K, V>>[];
607
628
  /**
608
629
  * Deletes a node from the tree.
609
- * @remarks Time O(log N), For BST, Red-Black Tree, and AVL Tree subclasses, the worst-case time is O(log N). This implementation finds the node, and if it has two children, swaps it with the rightmost node of its left subtree (in-order predecessor) before deleting. Time O(N) in the worst case. O(N) to find the node (`getNode`) and O(H) (which is O(N) worst-case) to find the rightmost node. Space O(1) (if `getNode` is iterative, which it is).
630
+ * @remarks Time O(N) O(N) to find the node + O(H) for predecessor swap. Space O(1). BST/Red-Black Tree/AVL Tree subclasses override to O(log N).
610
631
  *
611
632
  * @param keyNodeEntryRawOrPredicate - The node to delete.
612
- * @returns An array containing deletion results (for compatibility with self-balancing trees).
633
+ * @returns True if the node was found and deleted, false otherwise.
634
+
635
+
636
+
637
+
613
638
 
614
639
 
615
640
 
@@ -652,7 +677,7 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
652
677
  * console.log(tree.has(3)); // false;
653
678
  * console.log(tree.size); // 4;
654
679
  */
655
- delete(keyNodeEntryRawOrPredicate: BTNRep<K, V, BinaryTreeNode<K, V>> | NodePredicate<BinaryTreeNode<K, V> | null>): BinaryTreeDeleteResult<BinaryTreeNode<K, V>>[];
680
+ delete(keyNodeEntryRawOrPredicate: BTNRep<K, V, BinaryTreeNode<K, V>> | NodePredicate<BinaryTreeNode<K, V> | null>): boolean;
656
681
  /**
657
682
  * Search by predicate
658
683
 
@@ -676,6 +701,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
676
701
 
677
702
 
678
703
 
704
+
705
+
706
+
707
+
679
708
 
680
709
 
681
710
 
@@ -725,6 +754,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
725
754
 
726
755
 
727
756
 
757
+
758
+
759
+
760
+
728
761
 
729
762
 
730
763
 
@@ -739,7 +772,7 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
739
772
  getNodes(keyNodeEntryOrPredicate: K | BinaryTreeNode<K, V> | [K | null | undefined, V | undefined] | null | undefined | NodePredicate<BinaryTreeNode<K, V>>, onlyOne?: boolean, startNode?: K | BinaryTreeNode<K, V> | [K | null | undefined, V | undefined] | null | undefined, iterationType?: IterationType): BinaryTreeNode<K, V>[];
740
773
  /**
741
774
  * Gets the first node matching a predicate.
742
- * @remarks Time O(log N), For BST, Red-Black Tree, and AVL Tree subclasses, the worst-case time is O(log N). Time O(N) in the worst case (via `search`). Space O(H) or O(N) (via `search`).
775
+ * @remarks Time O(N) via `search`. Space O(H) or O(N). BST/Red-Black Tree/AVL Tree subclasses override to O(log N) for key lookups.
743
776
  *
744
777
  * @param keyNodeEntryOrPredicate - The key, node, entry, or predicate function to search for.
745
778
  * @param [startNode=this._root] - The node to start the search from.
@@ -773,6 +806,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
773
806
 
774
807
 
775
808
 
809
+
810
+
811
+
812
+
776
813
 
777
814
 
778
815
 
@@ -786,7 +823,7 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
786
823
  getNode(keyNodeEntryOrPredicate: K | BinaryTreeNode<K, V> | [K | null | undefined, V | undefined] | null | undefined | NodePredicate<BinaryTreeNode<K, V> | null>, startNode?: K | BinaryTreeNode<K, V> | [K | null | undefined, V | undefined] | null | undefined, iterationType?: IterationType): BinaryTreeNode<K, V> | null | undefined;
787
824
  /**
788
825
  * Gets the value associated with a key.
789
- * @remarks Time O(log N), For BST, Red-Black Tree, and AVL Tree subclasses, the worst-case time is O(log N). Time O(1) if in Map mode. O(N) if not in Map mode (uses `getNode`). Space O(1) if in Map mode. O(H) or O(N) otherwise.
826
+ * @remarks Time O(1) in Map mode, O(N) otherwise (via `getNode`). Space O(1) in Map mode, O(H) or O(N) otherwise. BST subclasses override non-Map-mode to O(log N).
790
827
  *
791
828
  * @param keyNodeEntryOrPredicate - The key, node, or entry to get the value for.
792
829
  * @param [startNode=this._root] - The node to start searching from (if not in Map mode).
@@ -822,6 +859,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
822
859
 
823
860
 
824
861
 
862
+
863
+
864
+
865
+
825
866
 
826
867
 
827
868
 
@@ -836,7 +877,7 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
836
877
  get(keyNodeEntryOrPredicate: K | BinaryTreeNode<K, V> | [K | null | undefined, V | undefined] | null | undefined, startNode?: K | BinaryTreeNode<K, V> | [K | null | undefined, V | undefined] | null | undefined, iterationType?: IterationType): V | undefined;
837
878
  /**
838
879
  * Checks if a node matching the predicate exists in the tree.
839
- * @remarks Time O(log N), For BST, Red-Black Tree, and AVL Tree subclasses, the worst-case time is O(log N). Time O(N) in the worst case (via `search`). Space O(H) or O(N) (via `search`).
880
+ * @remarks Time O(N) via `search`. Space O(H) or O(N). BST/Red-Black Tree/AVL Tree subclasses override to O(log N) for key lookups.
840
881
  *
841
882
  * @param [keyNodeEntryOrPredicate] - The key, node, entry, or predicate to check for.
842
883
  * @param [startNode] - The node to start the search from.
@@ -872,6 +913,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
872
913
 
873
914
 
874
915
 
916
+
917
+
918
+
919
+
875
920
 
876
921
 
877
922
 
@@ -938,6 +983,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
938
983
 
939
984
 
940
985
 
986
+
987
+
988
+
989
+
941
990
 
942
991
 
943
992
 
@@ -983,6 +1032,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
983
1032
 
984
1033
 
985
1034
 
1035
+
1036
+
1037
+
1038
+
986
1039
 
987
1040
 
988
1041
 
@@ -1036,6 +1089,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1036
1089
 
1037
1090
 
1038
1091
 
1092
+
1093
+
1094
+
1095
+
1039
1096
 
1040
1097
 
1041
1098
 
@@ -1085,6 +1142,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1085
1142
 
1086
1143
 
1087
1144
 
1145
+
1146
+
1147
+
1148
+
1088
1149
 
1089
1150
 
1090
1151
 
@@ -1134,6 +1195,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1134
1195
 
1135
1196
 
1136
1197
 
1198
+
1199
+
1200
+
1201
+
1137
1202
 
1138
1203
 
1139
1204
 
@@ -1208,6 +1273,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1208
1273
 
1209
1274
 
1210
1275
 
1276
+
1277
+
1278
+
1279
+
1211
1280
 
1212
1281
 
1213
1282
 
@@ -1254,6 +1323,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1254
1323
 
1255
1324
 
1256
1325
 
1326
+
1327
+
1328
+
1329
+
1257
1330
 
1258
1331
 
1259
1332
 
@@ -1320,6 +1393,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1320
1393
 
1321
1394
 
1322
1395
 
1396
+
1397
+
1398
+
1399
+
1323
1400
 
1324
1401
 
1325
1402
 
@@ -1362,6 +1439,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1362
1439
 
1363
1440
 
1364
1441
 
1442
+
1443
+
1444
+
1445
+
1365
1446
 
1366
1447
 
1367
1448
 
@@ -1406,6 +1487,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1406
1487
 
1407
1488
 
1408
1489
 
1490
+
1491
+
1492
+
1493
+
1409
1494
 
1410
1495
 
1411
1496
 
@@ -1452,6 +1537,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1452
1537
 
1453
1538
 
1454
1539
 
1540
+
1541
+
1542
+
1543
+
1455
1544
 
1456
1545
 
1457
1546
 
@@ -1500,6 +1589,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1500
1589
 
1501
1590
 
1502
1591
 
1592
+
1593
+
1594
+
1595
+
1503
1596
 
1504
1597
 
1505
1598
 
@@ -1551,6 +1644,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1551
1644
 
1552
1645
 
1553
1646
 
1647
+
1648
+
1649
+
1650
+
1554
1651
 
1555
1652
 
1556
1653
 
@@ -1606,6 +1703,10 @@ export declare class BinaryTree<K = any, V = any, R = any> extends IterableEntry
1606
1703
 
1607
1704
 
1608
1705
 
1706
+
1707
+
1708
+
1709
+
1609
1710
 
1610
1711
 
1611
1712
 
@@ -5,7 +5,7 @@
5
5
  * @copyright Copyright (c) 2022 Pablo Zeng <zrwusa@gmail.com>
6
6
  * @license MIT License
7
7
  */
8
- import type { BinaryTreeDeleteResult, BSTNOptKeyOrNode, BSTOptions, BTNRep, Comparator, DFSOrderPattern, EntryCallback, FamilyPosition, IterationType, NodeCallback, NodePredicate, OptNode, RBTNColor } from '../../types';
8
+ import type { BSTNOptKeyOrNode, BSTOptions, BTNRep, Comparator, DFSOrderPattern, EntryCallback, FamilyPosition, IterationType, NodeCallback, NodePredicate, OptNode, RBTNColor } from '../../types';
9
9
  import { BinaryTree } from './binary-tree';
10
10
  import { IBinaryTree } from '../../interfaces';
11
11
  import { Range } from '../../common';
@@ -372,6 +372,14 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
372
372
 
373
373
 
374
374
 
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+
375
383
 
376
384
 
377
385
 
@@ -444,6 +452,14 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
444
452
 
445
453
 
446
454
 
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
447
463
 
448
464
 
449
465
 
@@ -519,6 +535,14 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
519
535
 
520
536
 
521
537
 
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
522
546
 
523
547
 
524
548
 
@@ -532,7 +556,7 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
532
556
  * // Level-order grouping
533
557
  * const bst = new BST<number>([5, 3, 7, 1, 4]);
534
558
  * const levels = bst.listLevels(node => node.key);
535
- * console.log(levels.length); // > 0;
559
+ * console.log(levels); // toBeInstanceOf;
536
560
  * console.log(levels[0].length); // 1; // root level has 1 node
537
561
  * const allKeys = levels.flat().sort((a, b) => a - b);
538
562
  * console.log(allKeys); // [1, 3, 4, 5, 7];
@@ -605,6 +629,14 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
605
629
 
606
630
 
607
631
 
632
+
633
+
634
+
635
+
636
+
637
+
638
+
639
+
608
640
 
609
641
 
610
642
 
@@ -675,6 +707,14 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
675
707
 
676
708
 
677
709
 
710
+
711
+
712
+
713
+
714
+
715
+
716
+
717
+
678
718
 
679
719
 
680
720
 
@@ -724,6 +764,10 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
724
764
 
725
765
 
726
766
 
767
+
768
+
769
+
770
+
727
771
 
728
772
 
729
773
 
@@ -890,6 +934,18 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
890
934
 
891
935
 
892
936
 
937
+
938
+
939
+
940
+
941
+
942
+
943
+
944
+
945
+
946
+
947
+
948
+
893
949
 
894
950
 
895
951
 
@@ -972,6 +1028,14 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
972
1028
 
973
1029
 
974
1030
 
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+
1037
+
1038
+
975
1039
 
976
1040
 
977
1041
 
@@ -1024,6 +1088,10 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1024
1088
 
1025
1089
 
1026
1090
 
1091
+
1092
+
1093
+
1094
+
1027
1095
 
1028
1096
 
1029
1097
 
@@ -1078,6 +1146,10 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1078
1146
 
1079
1147
 
1080
1148
 
1149
+
1150
+
1151
+
1152
+
1081
1153
 
1082
1154
 
1083
1155
 
@@ -1131,6 +1203,10 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1131
1203
 
1132
1204
 
1133
1205
 
1206
+
1207
+
1208
+
1209
+
1134
1210
 
1135
1211
 
1136
1212
 
@@ -1185,6 +1261,10 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1185
1261
 
1186
1262
 
1187
1263
 
1264
+
1265
+
1266
+
1267
+
1188
1268
 
1189
1269
 
1190
1270
 
@@ -1239,6 +1319,10 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1239
1319
 
1240
1320
 
1241
1321
 
1322
+
1323
+
1324
+
1325
+
1242
1326
 
1243
1327
 
1244
1328
 
@@ -1288,6 +1372,10 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1288
1372
 
1289
1373
 
1290
1374
 
1375
+
1376
+
1377
+
1378
+
1291
1379
 
1292
1380
 
1293
1381
 
@@ -1369,6 +1457,14 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1369
1457
 
1370
1458
 
1371
1459
 
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+
1466
+
1467
+
1372
1468
 
1373
1469
 
1374
1470
 
@@ -1421,7 +1517,7 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1421
1517
  * - Value: true if the deletion succeeded, false if it failed (e.g., key not found during deletion phase).
1422
1518
  * - If no nodes match the search criteria, the returned map is empty.
1423
1519
  */
1424
- deleteWhere(keyNodeEntryOrPredicate: K | BSTNode<K, V> | [K | null | undefined, V | undefined] | null | undefined | NodePredicate<BSTNode<K, V>> | Range<K>, onlyOne?: boolean, startNode?: K | BSTNode<K, V> | [K | null | undefined, V | undefined] | null | undefined, iterationType?: IterationType): BinaryTreeDeleteResult<BSTNode<K, V>>[];
1520
+ deleteWhere(keyNodeEntryOrPredicate: K | BSTNode<K, V> | [K | null | undefined, V | undefined] | null | undefined | NodePredicate<BSTNode<K, V>> | Range<K>, onlyOne?: boolean, startNode?: K | BSTNode<K, V> | [K | null | undefined, V | undefined] | null | undefined, iterationType?: IterationType): boolean;
1425
1521
  /**
1426
1522
  * (Protected) Creates the default comparator function for keys that don't have a custom comparator.
1427
1523
  * @remarks Time O(1) Space O(1)
@@ -5,7 +5,7 @@
5
5
  * @copyright Copyright (c) 2022 Pablo Zeng <zrwusa@gmail.com>
6
6
  * @license MIT License
7
7
  */
8
- import type { BinaryTreeDeleteResult, BTNRep, CRUD, EntryCallback, FamilyPosition, NodePredicate, RBTNColor, IterationType, RedBlackTreeOptions } from '../../types';
8
+ import type { BTNRep, CRUD, EntryCallback, FamilyPosition, NodePredicate, RBTNColor, IterationType, RedBlackTreeOptions } from '../../types';
9
9
  import { BST } from './bst';
10
10
  import { IBinaryTree } from '../../interfaces';
11
11
  export declare class RedBlackTreeNode<K = any, V = any> {
@@ -217,13 +217,24 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
217
217
  */
218
218
  isNode(keyNodeOrEntry: K | RedBlackTreeNode<K, V> | [K | null | undefined, V | undefined] | null | undefined): keyNodeOrEntry is RedBlackTreeNode<K, V>;
219
219
  /**
220
- * Remove all nodes and clear the key→value store (if in map mode).
220
+ * Remove all nodes, clear the key→value store (if in map mode) and internal caches.
221
221
  * @remarks Time O(n), Space O(1)
222
- * @returns void
223
- */
224
- /**
225
- * Remove all nodes and clear internal caches.
226
- * @remarks Time O(n) average, Space O(1)
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
227
238
 
228
239
 
229
240
 
@@ -576,6 +587,22 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
576
587
 
577
588
 
578
589
 
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
579
606
 
580
607
 
581
608
 
@@ -734,6 +761,22 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
734
761
 
735
762
 
736
763
 
764
+
765
+
766
+
767
+
768
+
769
+
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
737
780
 
738
781
 
739
782
 
@@ -758,7 +801,7 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
758
801
  * console.log(rbt.has(5)); // false;
759
802
  * console.log(rbt.size); // 4;
760
803
  */
761
- delete(keyNodeEntryRawOrPredicate: BTNRep<K, V, RedBlackTreeNode<K, V>> | NodePredicate<RedBlackTreeNode<K, V> | null>): BinaryTreeDeleteResult<RedBlackTreeNode<K, V>>[];
804
+ delete(keyNodeEntryRawOrPredicate: BTNRep<K, V, RedBlackTreeNode<K, V>> | NodePredicate<RedBlackTreeNode<K, V> | null>): boolean;
762
805
  /**
763
806
  * Transform entries into a like-kind red-black tree with possibly different key/value types.
764
807
  * @remarks Time O(n) average, Space O(n)
@@ -858,6 +901,18 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
858
901
 
859
902
 
860
903
 
904
+
905
+
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+
861
916
 
862
917
 
863
918
 
@@ -994,6 +1049,22 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
994
1049
 
995
1050
 
996
1051
 
1052
+
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+
1067
+
997
1068
 
998
1069
 
999
1070