data-structure-typed 2.5.3 → 2.6.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 (158) hide show
  1. package/.github/workflows/ci.yml +7 -2
  2. package/.github/workflows/release-package.yml +9 -2
  3. package/.husky/pre-commit +3 -0
  4. package/CHANGELOG.md +1 -1
  5. package/MIGRATION.md +48 -0
  6. package/README.md +20 -2
  7. package/README_CN.md +20 -2
  8. package/SPECIFICATION.md +24 -0
  9. package/SPECIFICATION.zh-CN.md +24 -0
  10. package/dist/cjs/binary-tree.cjs +1897 -19
  11. package/dist/cjs/graph.cjs +174 -0
  12. package/dist/cjs/hash.cjs +33 -0
  13. package/dist/cjs/heap.cjs +71 -0
  14. package/dist/cjs/index.cjs +2383 -3
  15. package/dist/cjs/linked-list.cjs +224 -2
  16. package/dist/cjs/matrix.cjs +24 -0
  17. package/dist/cjs/priority-queue.cjs +71 -0
  18. package/dist/cjs/queue.cjs +221 -1
  19. package/dist/cjs/stack.cjs +59 -0
  20. package/dist/cjs/trie.cjs +62 -0
  21. package/dist/cjs-legacy/binary-tree.cjs +1897 -19
  22. package/dist/cjs-legacy/graph.cjs +174 -0
  23. package/dist/cjs-legacy/hash.cjs +33 -0
  24. package/dist/cjs-legacy/heap.cjs +71 -0
  25. package/dist/cjs-legacy/index.cjs +2383 -3
  26. package/dist/cjs-legacy/linked-list.cjs +224 -2
  27. package/dist/cjs-legacy/matrix.cjs +24 -0
  28. package/dist/cjs-legacy/priority-queue.cjs +71 -0
  29. package/dist/cjs-legacy/queue.cjs +221 -1
  30. package/dist/cjs-legacy/stack.cjs +59 -0
  31. package/dist/cjs-legacy/trie.cjs +62 -0
  32. package/dist/esm/binary-tree.mjs +1897 -19
  33. package/dist/esm/graph.mjs +174 -0
  34. package/dist/esm/hash.mjs +33 -0
  35. package/dist/esm/heap.mjs +71 -0
  36. package/dist/esm/index.mjs +2383 -3
  37. package/dist/esm/linked-list.mjs +224 -2
  38. package/dist/esm/matrix.mjs +24 -0
  39. package/dist/esm/priority-queue.mjs +71 -0
  40. package/dist/esm/queue.mjs +221 -1
  41. package/dist/esm/stack.mjs +59 -0
  42. package/dist/esm/trie.mjs +62 -0
  43. package/dist/esm-legacy/binary-tree.mjs +1897 -19
  44. package/dist/esm-legacy/graph.mjs +174 -0
  45. package/dist/esm-legacy/hash.mjs +33 -0
  46. package/dist/esm-legacy/heap.mjs +71 -0
  47. package/dist/esm-legacy/index.mjs +2383 -3
  48. package/dist/esm-legacy/linked-list.mjs +224 -2
  49. package/dist/esm-legacy/matrix.mjs +24 -0
  50. package/dist/esm-legacy/priority-queue.mjs +71 -0
  51. package/dist/esm-legacy/queue.mjs +221 -1
  52. package/dist/esm-legacy/stack.mjs +59 -0
  53. package/dist/esm-legacy/trie.mjs +62 -0
  54. package/dist/types/data-structures/base/iterable-element-base.d.ts +17 -0
  55. package/dist/types/data-structures/base/linear-base.d.ts +6 -0
  56. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +36 -0
  57. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +42 -0
  58. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +75 -0
  59. package/dist/types/data-structures/binary-tree/bst.d.ts +72 -0
  60. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +57 -0
  61. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +18 -0
  62. package/dist/types/data-structures/binary-tree/tree-map.d.ts +375 -0
  63. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +389 -0
  64. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +330 -0
  65. package/dist/types/data-structures/binary-tree/tree-set.d.ts +438 -0
  66. package/dist/types/data-structures/graph/directed-graph.d.ts +30 -0
  67. package/dist/types/data-structures/graph/undirected-graph.d.ts +27 -0
  68. package/dist/types/data-structures/hash/hash-map.d.ts +33 -0
  69. package/dist/types/data-structures/heap/heap.d.ts +42 -0
  70. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -2
  71. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +45 -0
  72. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +54 -0
  73. package/dist/types/data-structures/matrix/matrix.d.ts +24 -0
  74. package/dist/types/data-structures/queue/deque.d.ts +90 -1
  75. package/dist/types/data-structures/queue/queue.d.ts +36 -0
  76. package/dist/types/data-structures/stack/stack.d.ts +30 -0
  77. package/dist/types/data-structures/trie/trie.d.ts +36 -0
  78. package/dist/umd/data-structure-typed.js +2383 -3
  79. package/dist/umd/data-structure-typed.min.js +3 -3
  80. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +108 -108
  81. package/docs-site-docusaurus/docs/api/classes/BST.md +101 -101
  82. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +13 -13
  83. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +66 -66
  84. package/docs-site-docusaurus/docs/api/classes/Deque.md +235 -51
  85. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +21 -21
  86. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +231 -67
  87. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +9 -9
  88. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  89. package/docs-site-docusaurus/docs/api/classes/HashMap.md +14 -14
  90. package/docs-site-docusaurus/docs/api/classes/Heap.md +117 -34
  91. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +83 -13
  92. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +124 -20
  93. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +140 -32
  94. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +30 -26
  95. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +159 -51
  96. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +20 -20
  97. package/docs-site-docusaurus/docs/api/classes/Matrix.md +23 -23
  98. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +117 -34
  99. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +117 -34
  100. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +117 -34
  101. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +117 -34
  102. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +117 -34
  103. package/docs-site-docusaurus/docs/api/classes/Queue.md +142 -34
  104. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +117 -117
  105. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +8 -8
  106. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +158 -50
  107. package/docs-site-docusaurus/docs/api/classes/SkipList.md +21 -21
  108. package/docs-site-docusaurus/docs/api/classes/Stack.md +108 -26
  109. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +33 -33
  110. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +75 -39
  111. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +301 -39
  112. package/docs-site-docusaurus/docs/api/classes/Trie.md +110 -28
  113. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +20 -20
  114. package/jest.integration.config.js +1 -2
  115. package/package.json +51 -50
  116. package/src/common/error.ts +15 -32
  117. package/src/common/index.ts +0 -3
  118. package/src/data-structures/base/iterable-element-base.ts +32 -3
  119. package/src/data-structures/base/linear-base.ts +13 -36
  120. package/src/data-structures/binary-tree/avl-tree.ts +31 -493
  121. package/src/data-structures/binary-tree/binary-indexed-tree.ts +47 -530
  122. package/src/data-structures/binary-tree/binary-tree.ts +326 -1236
  123. package/src/data-structures/binary-tree/bst.ts +158 -1010
  124. package/src/data-structures/binary-tree/red-black-tree.ts +451 -1233
  125. package/src/data-structures/binary-tree/segment-tree.ts +73 -333
  126. package/src/data-structures/binary-tree/tree-map.ts +462 -4749
  127. package/src/data-structures/binary-tree/tree-multi-map.ts +310 -4530
  128. package/src/data-structures/binary-tree/tree-multi-set.ts +300 -3652
  129. package/src/data-structures/binary-tree/tree-set.ts +437 -4443
  130. package/src/data-structures/graph/abstract-graph.ts +98 -167
  131. package/src/data-structures/graph/directed-graph.ts +137 -532
  132. package/src/data-structures/graph/map-graph.ts +0 -3
  133. package/src/data-structures/graph/undirected-graph.ts +132 -484
  134. package/src/data-structures/hash/hash-map.ts +154 -549
  135. package/src/data-structures/heap/heap.ts +200 -753
  136. package/src/data-structures/linked-list/doubly-linked-list.ts +153 -809
  137. package/src/data-structures/linked-list/singly-linked-list.ts +122 -749
  138. package/src/data-structures/linked-list/skip-linked-list.ts +211 -864
  139. package/src/data-structures/matrix/matrix.ts +179 -494
  140. package/src/data-structures/matrix/navigator.ts +0 -1
  141. package/src/data-structures/priority-queue/max-priority-queue.ts +1 -6
  142. package/src/data-structures/priority-queue/min-priority-queue.ts +6 -11
  143. package/src/data-structures/priority-queue/priority-queue.ts +1 -2
  144. package/src/data-structures/queue/deque.ts +241 -807
  145. package/src/data-structures/queue/queue.ts +102 -589
  146. package/src/data-structures/stack/stack.ts +76 -475
  147. package/src/data-structures/trie/trie.ts +98 -592
  148. package/src/types/common.ts +0 -10
  149. package/src/types/data-structures/binary-tree/bst.ts +0 -7
  150. package/src/types/data-structures/binary-tree/red-black-tree.ts +0 -1
  151. package/src/types/data-structures/graph/abstract-graph.ts +0 -2
  152. package/src/types/data-structures/hash/hash-map.ts +0 -3
  153. package/src/types/data-structures/hash/index.ts +0 -1
  154. package/src/types/data-structures/matrix/navigator.ts +0 -2
  155. package/src/types/utils/utils.ts +0 -7
  156. package/src/types/utils/validate-type.ts +0 -7
  157. package/src/utils/number.ts +0 -2
  158. package/src/utils/utils.ts +0 -5
@@ -382,6 +382,12 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
382
382
 
383
383
 
384
384
 
385
+
386
+
387
+
388
+
389
+
390
+
385
391
 
386
392
 
387
393
 
@@ -462,6 +468,12 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
462
468
 
463
469
 
464
470
 
471
+
472
+
473
+
474
+
475
+
476
+
465
477
 
466
478
 
467
479
 
@@ -545,6 +557,12 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
545
557
 
546
558
 
547
559
 
560
+
561
+
562
+
563
+
564
+
565
+
548
566
 
549
567
 
550
568
 
@@ -639,6 +657,12 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
639
657
 
640
658
 
641
659
 
660
+
661
+
662
+
663
+
664
+
665
+
642
666
 
643
667
 
644
668
 
@@ -717,6 +741,12 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
717
741
 
718
742
 
719
743
 
744
+
745
+
746
+
747
+
748
+
749
+
720
750
 
721
751
 
722
752
 
@@ -769,6 +799,9 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
769
799
 
770
800
 
771
801
 
802
+
803
+
804
+
772
805
 
773
806
 
774
807
 
@@ -949,6 +982,15 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
949
982
 
950
983
 
951
984
 
985
+
986
+
987
+
988
+
989
+
990
+
991
+
992
+
993
+
952
994
 
953
995
 
954
996
 
@@ -1038,6 +1080,12 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1038
1080
 
1039
1081
 
1040
1082
 
1083
+
1084
+
1085
+
1086
+
1087
+
1088
+
1041
1089
 
1042
1090
 
1043
1091
 
@@ -1093,6 +1141,9 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1093
1141
 
1094
1142
 
1095
1143
 
1144
+
1145
+
1146
+
1096
1147
 
1097
1148
 
1098
1149
 
@@ -1151,6 +1202,9 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1151
1202
 
1152
1203
 
1153
1204
 
1205
+
1206
+
1207
+
1154
1208
 
1155
1209
 
1156
1210
 
@@ -1208,6 +1262,9 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1208
1262
 
1209
1263
 
1210
1264
 
1265
+
1266
+
1267
+
1211
1268
 
1212
1269
 
1213
1270
 
@@ -1266,6 +1323,9 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1266
1323
 
1267
1324
 
1268
1325
 
1326
+
1327
+
1328
+
1269
1329
 
1270
1330
 
1271
1331
 
@@ -1324,6 +1384,9 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1324
1384
 
1325
1385
 
1326
1386
 
1387
+
1388
+
1389
+
1327
1390
 
1328
1391
 
1329
1392
 
@@ -1377,6 +1440,9 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1377
1440
 
1378
1441
 
1379
1442
 
1443
+
1444
+
1445
+
1380
1446
 
1381
1447
 
1382
1448
 
@@ -1467,6 +1533,12 @@ export declare class BST<K = any, V = any, R = any> extends BinaryTree<K, V, R>
1467
1533
 
1468
1534
 
1469
1535
 
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+
1470
1542
 
1471
1543
 
1472
1544
 
@@ -353,6 +353,18 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
353
353
 
354
354
 
355
355
 
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
356
368
 
357
369
 
358
370
 
@@ -607,6 +619,18 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
607
619
 
608
620
 
609
621
 
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+
631
+
632
+
633
+
610
634
 
611
635
 
612
636
 
@@ -781,6 +805,18 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
781
805
 
782
806
 
783
807
 
808
+
809
+
810
+
811
+
812
+
813
+
814
+
815
+
816
+
817
+
818
+
819
+
784
820
 
785
821
 
786
822
 
@@ -916,6 +952,15 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
916
952
 
917
953
 
918
954
 
955
+
956
+
957
+
958
+
959
+
960
+
961
+
962
+
963
+
919
964
 
920
965
 
921
966
 
@@ -1069,6 +1114,18 @@ export declare class RedBlackTree<K = any, V = any, R = any> extends BST<K, V, R
1069
1114
 
1070
1115
 
1071
1116
 
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+
1123
+
1124
+
1125
+
1126
+
1127
+
1128
+
1072
1129
 
1073
1130
 
1074
1131
 
@@ -80,6 +80,9 @@ export declare class SegmentTree<E = number> implements Iterable<E> {
80
80
 
81
81
 
82
82
 
83
+
84
+
85
+
83
86
 
84
87
 
85
88
 
@@ -145,6 +148,9 @@ export declare class SegmentTree<E = number> implements Iterable<E> {
145
148
 
146
149
 
147
150
 
151
+
152
+
153
+
148
154
 
149
155
 
150
156
 
@@ -206,6 +212,9 @@ export declare class SegmentTree<E = number> implements Iterable<E> {
206
212
 
207
213
 
208
214
 
215
+
216
+
217
+
209
218
 
210
219
 
211
220
 
@@ -262,6 +271,9 @@ export declare class SegmentTree<E = number> implements Iterable<E> {
262
271
 
263
272
 
264
273
 
274
+
275
+
276
+
265
277
 
266
278
 
267
279
 
@@ -313,6 +325,9 @@ export declare class SegmentTree<E = number> implements Iterable<E> {
313
325
 
314
326
 
315
327
 
328
+
329
+
330
+
316
331
 
317
332
 
318
333
 
@@ -367,6 +382,9 @@ export declare class SegmentTree<E = number> implements Iterable<E> {
367
382
 
368
383
 
369
384
 
385
+
386
+
387
+
370
388
 
371
389
 
372
390