data-structure-typed 2.5.3 → 2.6.0

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 (104) hide show
  1. package/.husky/pre-commit +3 -0
  2. package/CHANGELOG.md +1 -1
  3. package/MIGRATION.md +48 -0
  4. package/README.md +20 -2
  5. package/README_CN.md +20 -2
  6. package/SPECIFICATION.md +24 -0
  7. package/SPECIFICATION.zh-CN.md +24 -0
  8. package/dist/cjs/binary-tree.cjs +1897 -19
  9. package/dist/cjs/graph.cjs +174 -0
  10. package/dist/cjs/hash.cjs +33 -0
  11. package/dist/cjs/heap.cjs +71 -0
  12. package/dist/cjs/index.cjs +2383 -3
  13. package/dist/cjs/linked-list.cjs +224 -2
  14. package/dist/cjs/matrix.cjs +24 -0
  15. package/dist/cjs/priority-queue.cjs +71 -0
  16. package/dist/cjs/queue.cjs +221 -1
  17. package/dist/cjs/stack.cjs +59 -0
  18. package/dist/cjs/trie.cjs +62 -0
  19. package/dist/cjs-legacy/binary-tree.cjs +1897 -19
  20. package/dist/cjs-legacy/graph.cjs +174 -0
  21. package/dist/cjs-legacy/hash.cjs +33 -0
  22. package/dist/cjs-legacy/heap.cjs +71 -0
  23. package/dist/cjs-legacy/index.cjs +2383 -3
  24. package/dist/cjs-legacy/linked-list.cjs +224 -2
  25. package/dist/cjs-legacy/matrix.cjs +24 -0
  26. package/dist/cjs-legacy/priority-queue.cjs +71 -0
  27. package/dist/cjs-legacy/queue.cjs +221 -1
  28. package/dist/cjs-legacy/stack.cjs +59 -0
  29. package/dist/cjs-legacy/trie.cjs +62 -0
  30. package/dist/esm/binary-tree.mjs +1897 -19
  31. package/dist/esm/graph.mjs +174 -0
  32. package/dist/esm/hash.mjs +33 -0
  33. package/dist/esm/heap.mjs +71 -0
  34. package/dist/esm/index.mjs +2383 -3
  35. package/dist/esm/linked-list.mjs +224 -2
  36. package/dist/esm/matrix.mjs +24 -0
  37. package/dist/esm/priority-queue.mjs +71 -0
  38. package/dist/esm/queue.mjs +221 -1
  39. package/dist/esm/stack.mjs +59 -0
  40. package/dist/esm/trie.mjs +62 -0
  41. package/dist/esm-legacy/binary-tree.mjs +1897 -19
  42. package/dist/esm-legacy/graph.mjs +174 -0
  43. package/dist/esm-legacy/hash.mjs +33 -0
  44. package/dist/esm-legacy/heap.mjs +71 -0
  45. package/dist/esm-legacy/index.mjs +2383 -3
  46. package/dist/esm-legacy/linked-list.mjs +224 -2
  47. package/dist/esm-legacy/matrix.mjs +24 -0
  48. package/dist/esm-legacy/priority-queue.mjs +71 -0
  49. package/dist/esm-legacy/queue.mjs +221 -1
  50. package/dist/esm-legacy/stack.mjs +59 -0
  51. package/dist/esm-legacy/trie.mjs +62 -0
  52. package/dist/types/data-structures/base/iterable-element-base.d.ts +17 -0
  53. package/dist/types/data-structures/base/linear-base.d.ts +6 -0
  54. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +36 -0
  55. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +42 -0
  56. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +75 -0
  57. package/dist/types/data-structures/binary-tree/bst.d.ts +72 -0
  58. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +57 -0
  59. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +18 -0
  60. package/dist/types/data-structures/binary-tree/tree-map.d.ts +375 -0
  61. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +389 -0
  62. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +330 -0
  63. package/dist/types/data-structures/binary-tree/tree-set.d.ts +438 -0
  64. package/dist/types/data-structures/graph/directed-graph.d.ts +30 -0
  65. package/dist/types/data-structures/graph/undirected-graph.d.ts +27 -0
  66. package/dist/types/data-structures/hash/hash-map.d.ts +33 -0
  67. package/dist/types/data-structures/heap/heap.d.ts +42 -0
  68. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -2
  69. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +45 -0
  70. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +54 -0
  71. package/dist/types/data-structures/matrix/matrix.d.ts +24 -0
  72. package/dist/types/data-structures/queue/deque.d.ts +90 -1
  73. package/dist/types/data-structures/queue/queue.d.ts +36 -0
  74. package/dist/types/data-structures/stack/stack.d.ts +30 -0
  75. package/dist/types/data-structures/trie/trie.d.ts +36 -0
  76. package/dist/umd/data-structure-typed.js +2383 -3
  77. package/dist/umd/data-structure-typed.min.js +3 -3
  78. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +14 -10
  79. package/jest.integration.config.js +1 -2
  80. package/package.json +9 -7
  81. package/src/data-structures/base/iterable-element-base.ts +32 -0
  82. package/src/data-structures/base/linear-base.ts +11 -0
  83. package/src/data-structures/binary-tree/avl-tree.ts +36 -0
  84. package/src/data-structures/binary-tree/binary-indexed-tree.ts +42 -0
  85. package/src/data-structures/binary-tree/binary-tree.ts +75 -0
  86. package/src/data-structures/binary-tree/bst.ts +72 -0
  87. package/src/data-structures/binary-tree/red-black-tree.ts +57 -0
  88. package/src/data-structures/binary-tree/segment-tree.ts +18 -0
  89. package/src/data-structures/binary-tree/tree-map.ts +375 -0
  90. package/src/data-structures/binary-tree/tree-multi-map.ts +392 -0
  91. package/src/data-structures/binary-tree/tree-multi-set.ts +336 -0
  92. package/src/data-structures/binary-tree/tree-set.ts +492 -0
  93. package/src/data-structures/graph/directed-graph.ts +30 -0
  94. package/src/data-structures/graph/undirected-graph.ts +27 -0
  95. package/src/data-structures/hash/hash-map.ts +33 -0
  96. package/src/data-structures/heap/heap.ts +42 -0
  97. package/src/data-structures/linked-list/doubly-linked-list.ts +90 -2
  98. package/src/data-structures/linked-list/singly-linked-list.ts +45 -0
  99. package/src/data-structures/linked-list/skip-linked-list.ts +54 -0
  100. package/src/data-structures/matrix/matrix.ts +24 -0
  101. package/src/data-structures/queue/deque.ts +103 -1
  102. package/src/data-structures/queue/queue.ts +36 -0
  103. package/src/data-structures/stack/stack.ts +30 -0
  104. package/src/data-structures/trie/trie.ts +36 -0
@@ -160,6 +160,35 @@ var _IterableElementBase = class _IterableElementBase {
160
160
  for (const ele of this) if (ele === element) return true;
161
161
  return false;
162
162
  }
163
+ /**
164
+ * Check whether a value exists (Array-compatible alias for `has`).
165
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
166
+ * @param element - Element to search for (uses `===`).
167
+ * @returns `true` if found.
168
+ */
169
+ includes(element) {
170
+ return this.has(element);
171
+ }
172
+ /**
173
+ * Return an iterator of `[index, value]` pairs (Array-compatible).
174
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
175
+ */
176
+ *entries() {
177
+ let index = 0;
178
+ for (const value of this) {
179
+ yield [index++, value];
180
+ }
181
+ }
182
+ /**
183
+ * Return an iterator of numeric indices (Array-compatible).
184
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
185
+ */
186
+ *keys() {
187
+ let index = 0;
188
+ for (const _ of this) {
189
+ yield index++;
190
+ }
191
+ }
163
192
  /**
164
193
  * Reduces all elements to a single accumulated value.
165
194
  *
@@ -293,6 +322,9 @@ var _Stack = class _Stack extends IterableElementBase {
293
322
 
294
323
 
295
324
 
325
+
326
+
327
+
296
328
 
297
329
 
298
330
 
@@ -357,6 +389,9 @@ var _Stack = class _Stack extends IterableElementBase {
357
389
 
358
390
 
359
391
 
392
+
393
+
394
+
360
395
 
361
396
 
362
397
 
@@ -410,6 +445,9 @@ var _Stack = class _Stack extends IterableElementBase {
410
445
 
411
446
 
412
447
 
448
+
449
+
450
+
413
451
 
414
452
 
415
453
 
@@ -463,6 +501,9 @@ var _Stack = class _Stack extends IterableElementBase {
463
501
 
464
502
 
465
503
 
504
+
505
+
506
+
466
507
 
467
508
 
468
509
 
@@ -525,6 +566,9 @@ var _Stack = class _Stack extends IterableElementBase {
525
566
 
526
567
 
527
568
 
569
+
570
+
571
+
528
572
 
529
573
 
530
574
 
@@ -602,6 +646,9 @@ var _Stack = class _Stack extends IterableElementBase {
602
646
 
603
647
 
604
648
 
649
+
650
+
651
+
605
652
 
606
653
 
607
654
 
@@ -679,6 +726,9 @@ var _Stack = class _Stack extends IterableElementBase {
679
726
 
680
727
 
681
728
 
729
+
730
+
731
+
682
732
 
683
733
 
684
734
 
@@ -729,6 +779,9 @@ var _Stack = class _Stack extends IterableElementBase {
729
779
 
730
780
 
731
781
 
782
+
783
+
784
+
732
785
 
733
786
 
734
787
 
@@ -785,6 +838,9 @@ var _Stack = class _Stack extends IterableElementBase {
785
838
 
786
839
 
787
840
 
841
+
842
+
843
+
788
844
 
789
845
 
790
846
 
@@ -861,6 +917,9 @@ var _Stack = class _Stack extends IterableElementBase {
861
917
 
862
918
 
863
919
 
920
+
921
+
922
+
864
923
 
865
924
 
866
925
 
@@ -185,6 +185,35 @@ var _IterableElementBase = class _IterableElementBase {
185
185
  for (const ele of this) if (ele === element) return true;
186
186
  return false;
187
187
  }
188
+ /**
189
+ * Check whether a value exists (Array-compatible alias for `has`).
190
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
191
+ * @param element - Element to search for (uses `===`).
192
+ * @returns `true` if found.
193
+ */
194
+ includes(element) {
195
+ return this.has(element);
196
+ }
197
+ /**
198
+ * Return an iterator of `[index, value]` pairs (Array-compatible).
199
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
200
+ */
201
+ *entries() {
202
+ let index = 0;
203
+ for (const value of this) {
204
+ yield [index++, value];
205
+ }
206
+ }
207
+ /**
208
+ * Return an iterator of numeric indices (Array-compatible).
209
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
210
+ */
211
+ *keys() {
212
+ let index = 0;
213
+ for (const _ of this) {
214
+ yield index++;
215
+ }
216
+ }
188
217
  /**
189
218
  * Reduces all elements to a single accumulated value.
190
219
  *
@@ -420,6 +449,9 @@ var _Trie = class _Trie extends IterableElementBase {
420
449
 
421
450
 
422
451
 
452
+
453
+
454
+
423
455
 
424
456
 
425
457
 
@@ -496,6 +528,9 @@ var _Trie = class _Trie extends IterableElementBase {
496
528
 
497
529
 
498
530
 
531
+
532
+
533
+
499
534
 
500
535
 
501
536
 
@@ -559,6 +594,9 @@ var _Trie = class _Trie extends IterableElementBase {
559
594
 
560
595
 
561
596
 
597
+
598
+
599
+
562
600
 
563
601
 
564
602
 
@@ -617,6 +655,9 @@ var _Trie = class _Trie extends IterableElementBase {
617
655
 
618
656
 
619
657
 
658
+
659
+
660
+
620
661
 
621
662
 
622
663
 
@@ -667,6 +708,9 @@ var _Trie = class _Trie extends IterableElementBase {
667
708
 
668
709
 
669
710
 
711
+
712
+
713
+
670
714
 
671
715
 
672
716
 
@@ -721,6 +765,9 @@ var _Trie = class _Trie extends IterableElementBase {
721
765
 
722
766
 
723
767
 
768
+
769
+
770
+
724
771
 
725
772
 
726
773
 
@@ -857,6 +904,9 @@ var _Trie = class _Trie extends IterableElementBase {
857
904
 
858
905
 
859
906
 
907
+
908
+
909
+
860
910
 
861
911
 
862
912
 
@@ -937,6 +987,9 @@ var _Trie = class _Trie extends IterableElementBase {
937
987
 
938
988
 
939
989
 
990
+
991
+
992
+
940
993
 
941
994
 
942
995
 
@@ -1000,6 +1053,9 @@ var _Trie = class _Trie extends IterableElementBase {
1000
1053
 
1001
1054
 
1002
1055
 
1056
+
1057
+
1058
+
1003
1059
 
1004
1060
 
1005
1061
 
@@ -1081,6 +1137,9 @@ var _Trie = class _Trie extends IterableElementBase {
1081
1137
 
1082
1138
 
1083
1139
 
1140
+
1141
+
1142
+
1084
1143
 
1085
1144
 
1086
1145
 
@@ -1135,6 +1194,9 @@ var _Trie = class _Trie extends IterableElementBase {
1135
1194
 
1136
1195
 
1137
1196
 
1197
+
1198
+
1199
+
1138
1200
 
1139
1201
 
1140
1202