binary-tree-typed 2.5.0 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/cjs/index.cjs +609 -0
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs-legacy/index.cjs +609 -0
  4. package/dist/cjs-legacy/index.cjs.map +1 -1
  5. package/dist/esm/index.mjs +609 -0
  6. package/dist/esm/index.mjs.map +1 -1
  7. package/dist/esm-legacy/index.mjs +609 -0
  8. package/dist/esm-legacy/index.mjs.map +1 -1
  9. package/dist/types/data-structures/base/index.d.ts +1 -0
  10. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  11. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  12. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +252 -0
  13. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +294 -0
  14. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +527 -2
  15. package/dist/types/data-structures/binary-tree/bst.d.ts +505 -1
  16. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +399 -0
  17. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +126 -1
  18. package/dist/types/data-structures/binary-tree/tree-map.d.ts +2881 -382
  19. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +2867 -347
  20. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2328 -312
  21. package/dist/types/data-structures/binary-tree/tree-set.d.ts +2671 -277
  22. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  23. package/dist/types/data-structures/graph/directed-graph.d.ts +210 -0
  24. package/dist/types/data-structures/graph/undirected-graph.d.ts +189 -0
  25. package/dist/types/data-structures/hash/hash-map.d.ts +241 -10
  26. package/dist/types/data-structures/heap/heap.d.ts +294 -0
  27. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +360 -3
  28. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +318 -3
  29. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +380 -2
  30. package/dist/types/data-structures/matrix/matrix.d.ts +168 -0
  31. package/dist/types/data-structures/queue/deque.d.ts +319 -4
  32. package/dist/types/data-structures/queue/queue.d.ts +252 -0
  33. package/dist/types/data-structures/stack/stack.d.ts +210 -0
  34. package/dist/types/data-structures/trie/trie.d.ts +256 -4
  35. package/dist/types/interfaces/graph.d.ts +1 -1
  36. package/dist/types/types/common.d.ts +2 -2
  37. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  38. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  39. package/dist/types/types/utils/validate-type.d.ts +4 -4
  40. package/dist/umd/binary-tree-typed.js +609 -0
  41. package/dist/umd/binary-tree-typed.js.map +1 -1
  42. package/dist/umd/binary-tree-typed.min.js +5 -5
  43. package/dist/umd/binary-tree-typed.min.js.map +1 -1
  44. package/package.json +2 -2
  45. package/src/data-structures/base/index.ts +1 -0
  46. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  47. package/src/data-structures/base/linear-base.ts +3 -3
  48. package/src/data-structures/binary-tree/avl-tree.ts +252 -0
  49. package/src/data-structures/binary-tree/binary-indexed-tree.ts +295 -1
  50. package/src/data-structures/binary-tree/binary-tree.ts +527 -2
  51. package/src/data-structures/binary-tree/bst.ts +505 -1
  52. package/src/data-structures/binary-tree/red-black-tree.ts +399 -0
  53. package/src/data-structures/binary-tree/segment-tree.ts +127 -2
  54. package/src/data-structures/binary-tree/tree-map.ts +2958 -459
  55. package/src/data-structures/binary-tree/tree-multi-map.ts +3069 -549
  56. package/src/data-structures/binary-tree/tree-multi-set.ts +2476 -460
  57. package/src/data-structures/binary-tree/tree-set.ts +2816 -422
  58. package/src/data-structures/graph/abstract-graph.ts +4 -4
  59. package/src/data-structures/graph/directed-graph.ts +210 -0
  60. package/src/data-structures/graph/undirected-graph.ts +189 -0
  61. package/src/data-structures/hash/hash-map.ts +246 -15
  62. package/src/data-structures/heap/heap.ts +294 -0
  63. package/src/data-structures/linked-list/doubly-linked-list.ts +360 -3
  64. package/src/data-structures/linked-list/singly-linked-list.ts +318 -3
  65. package/src/data-structures/linked-list/skip-linked-list.ts +380 -2
  66. package/src/data-structures/matrix/matrix.ts +169 -1
  67. package/src/data-structures/queue/deque.ts +320 -5
  68. package/src/data-structures/queue/queue.ts +252 -0
  69. package/src/data-structures/stack/stack.ts +210 -0
  70. package/src/data-structures/trie/trie.ts +257 -5
  71. package/src/interfaces/graph.ts +1 -1
  72. package/src/types/common.ts +2 -2
  73. package/src/types/data-structures/heap/heap.ts +1 -0
  74. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  75. package/src/types/utils/validate-type.ts +4 -4
@@ -307,6 +307,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
307
307
 
308
308
 
309
309
 
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+
310
331
  * @example
311
332
  * // basic SinglyLinkedList creation and push operation
312
333
  * // Create a simple SinglyLinkedList with initial values
@@ -352,6 +373,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
352
373
 
353
374
 
354
375
 
376
+
377
+
378
+
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
355
397
  * @example
356
398
  * // SinglyLinkedList pop and shift operations
357
399
  * const list = new SinglyLinkedList<number>([10, 20, 30, 40, 50]);
@@ -402,6 +444,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
402
444
 
403
445
 
404
446
 
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+
405
468
  * @example
406
469
  * // Remove from the front
407
470
  * const list = new SinglyLinkedList<number>([10, 20, 30]);
@@ -434,6 +497,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
434
497
 
435
498
 
436
499
 
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+
516
+
517
+
518
+
519
+
520
+
437
521
  * @example
438
522
  * // SinglyLinkedList unshift and forward traversal
439
523
  * const list = new SinglyLinkedList<number>([20, 30, 40]);
@@ -535,6 +619,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
535
619
 
536
620
 
537
621
 
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+
639
+
640
+
641
+
642
+
538
643
  * @example
539
644
  * // Access element by index
540
645
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c', 'd']);
@@ -576,6 +681,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
576
681
 
577
682
 
578
683
 
684
+
685
+
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+
698
+
699
+
700
+
701
+
702
+
703
+
704
+
579
705
  * @example
580
706
  * // Get node at index
581
707
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
@@ -602,6 +728,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
602
728
 
603
729
 
604
730
 
731
+
732
+
733
+
734
+
735
+
736
+
737
+
738
+
739
+
740
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
605
752
  * @example
606
753
  * // Remove by index
607
754
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
@@ -634,6 +781,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
634
781
 
635
782
 
636
783
 
784
+
785
+
786
+
787
+
788
+
789
+
790
+
791
+
792
+
793
+
794
+
795
+
796
+
797
+
798
+
799
+
800
+
801
+
802
+
803
+
804
+
637
805
  * @example
638
806
  * // Remove first occurrence
639
807
  * const list = new SinglyLinkedList<number>([1, 2, 3, 2]);
@@ -672,6 +840,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
672
840
 
673
841
 
674
842
 
843
+
844
+
845
+
846
+
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+
862
+
863
+
675
864
  * @example
676
865
  * // Insert at index
677
866
  * const list = new SinglyLinkedList<number>([1, 3]);
@@ -719,6 +908,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
719
908
 
720
909
 
721
910
 
911
+
912
+
913
+
914
+
915
+
916
+
917
+
918
+
919
+
920
+
921
+
922
+
923
+
924
+
925
+
926
+
927
+
928
+
929
+
930
+
931
+
722
932
  * @example
723
933
  * // Check empty
724
934
  * console.log(new SinglyLinkedList().isEmpty()); // true;
@@ -741,6 +951,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
741
951
 
742
952
 
743
953
 
954
+
955
+
956
+
957
+
958
+
959
+
960
+
961
+
962
+
963
+
964
+
965
+
966
+
967
+
968
+
969
+
970
+
971
+
972
+
973
+
974
+
744
975
  * @example
745
976
  * // Remove all
746
977
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -769,6 +1000,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
769
1000
 
770
1001
 
771
1002
 
1003
+
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+
772
1024
  * @example
773
1025
  * // Reverse the list in-place
774
1026
  * const list = new SinglyLinkedList<number>([1, 2, 3, 4]);
@@ -991,6 +1243,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
991
1243
 
992
1244
 
993
1245
 
1246
+
1247
+
1248
+
1249
+
1250
+
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
994
1267
  * @example
995
1268
  * // Deep copy
996
1269
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1023,6 +1296,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
1023
1296
 
1024
1297
 
1025
1298
 
1299
+
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+
1306
+
1307
+
1308
+
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+
1026
1320
  * @example
1027
1321
  * // SinglyLinkedList filter and map operations
1028
1322
  * const list = new SinglyLinkedList<number>([1, 2, 3, 4, 5]);
@@ -1040,7 +1334,7 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
1040
1334
  * console.log(sum); // 15;
1041
1335
  */
1042
1336
 
1043
- filter(callback: ElementCallback<E, R, boolean>, thisArg?: any): this {
1337
+ filter(callback: ElementCallback<E, R, boolean>, thisArg?: unknown): this {
1044
1338
  const out = this._createInstance();
1045
1339
  let index = 0;
1046
1340
  for (const value of this) if (callback.call(thisArg, value, index++, this)) out.push(value);
@@ -1055,7 +1349,7 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
1055
1349
  * @returns A new list with mapped values.
1056
1350
  */
1057
1351
 
1058
- mapSame(callback: ElementCallback<E, R, E>, thisArg?: any): this {
1352
+ mapSame(callback: ElementCallback<E, R, E>, thisArg?: unknown): this {
1059
1353
  const out = this._createInstance();
1060
1354
  let index = 0;
1061
1355
  for (const value of this) {
@@ -1085,6 +1379,27 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
1085
1379
 
1086
1380
 
1087
1381
 
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+
1389
+
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1088
1403
  * @example
1089
1404
  * // Transform elements
1090
1405
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1095,7 +1410,7 @@ export class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, S
1095
1410
  map<EM, RM = any>(
1096
1411
  callback: ElementCallback<E, R, EM>,
1097
1412
  options?: SinglyLinkedListOptions<EM, RM>,
1098
- thisArg?: any
1413
+ thisArg?: unknown
1099
1414
  ): SinglyLinkedList<EM, RM> {
1100
1415
  const out = this._createLike<EM, RM>([], { ...(options ?? {}), maxLen: this._maxLen as number });
1101
1416
  let index = 0;