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
@@ -330,7 +330,7 @@ Producing the iterator is O(1); consuming the entire iterator is Time O(n) with
330
330
  add(word): boolean;
331
331
  ```
332
332
 
333
- Defined in: [data-structures/trie/trie.ts:343](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L343)
333
+ Defined in: [data-structures/trie/trie.ts:346](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L346)
334
334
 
335
335
  Insert one word into the trie.
336
336
 
@@ -381,7 +381,7 @@ Time O(L), Space O(L)
381
381
  addMany(words): boolean[];
382
382
  ```
383
383
 
384
- Defined in: [data-structures/trie/trie.ts:413](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L413)
384
+ Defined in: [data-structures/trie/trie.ts:419](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L419)
385
385
 
386
386
  Insert many words from an iterable.
387
387
 
@@ -424,7 +424,7 @@ Time O(ΣL), Space O(ΣL)
424
424
  clear(): void;
425
425
  ```
426
426
 
427
- Defined in: [data-structures/trie/trie.ts:588](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L588)
427
+ Defined in: [data-structures/trie/trie.ts:603](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L603)
428
428
 
429
429
  Remove all words and reset to a fresh root.
430
430
 
@@ -461,7 +461,7 @@ Time O(1), Space O(1)
461
461
  clone(): this;
462
462
  ```
463
463
 
464
- Defined in: [data-structures/trie/trie.ts:1025](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1025)
464
+ Defined in: [data-structures/trie/trie.ts:1055](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1055)
465
465
 
466
466
  Deep clone this trie by iterating and inserting all words.
467
467
 
@@ -499,7 +499,7 @@ Time O(ΣL), Space O(ΣL)
499
499
  delete(word): boolean;
500
500
  ```
501
501
 
502
- Defined in: [data-structures/trie/trie.ts:656](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L656)
502
+ Defined in: [data-structures/trie/trie.ts:674](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L674)
503
503
 
504
504
  Delete one word if present.
505
505
 
@@ -546,6 +546,30 @@ Time O(L), Space O(1)
546
546
 
547
547
  ***
548
548
 
549
+ ### entries()
550
+
551
+ ```ts
552
+ entries(): IterableIterator<[number, string]>;
553
+ ```
554
+
555
+ Defined in: [data-structures/base/iterable-element-base.ts:208](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L208)
556
+
557
+ Return an iterator of `[index, value]` pairs (Array-compatible).
558
+
559
+ #### Returns
560
+
561
+ `IterableIterator`\<\[`number`, `string`\]\>
562
+
563
+ #### Remarks
564
+
565
+ Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
566
+
567
+ #### Inherited from
568
+
569
+ [`IterableElementBase`](IterableElementBase.md).[`entries`](IterableElementBase.md#entries)
570
+
571
+ ***
572
+
549
573
  ### every()
550
574
 
551
575
  ```ts
@@ -592,7 +616,7 @@ Time O(n) in the worst case; may exit early when the first failure is found. Spa
592
616
  filter(predicate, thisArg?): this;
593
617
  ```
594
618
 
595
- Defined in: [data-structures/trie/trie.ts:1080](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1080)
619
+ Defined in: [data-structures/trie/trie.ts:1113](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1113)
596
620
 
597
621
  Filter words into a new trie of the same class.
598
622
 
@@ -773,7 +797,7 @@ Time O(n), Space O(1).
773
797
  getHeight(): number;
774
798
  ```
775
799
 
776
- Defined in: [data-structures/trie/trie.ts:698](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L698)
800
+ Defined in: [data-structures/trie/trie.ts:716](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L716)
777
801
 
778
802
  Compute the height (max depth) of the trie.
779
803
 
@@ -795,7 +819,7 @@ Time O(N), Space O(H)
795
819
  getLongestCommonPrefix(): string;
796
820
  ```
797
821
 
798
- Defined in: [data-structures/trie/trie.ts:871](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L871)
822
+ Defined in: [data-structures/trie/trie.ts:895](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L895)
799
823
 
800
824
  Return the longest common prefix among all words.
801
825
 
@@ -831,7 +855,7 @@ getWords(
831
855
  isAllWhenEmptyPrefix?): string[];
832
856
  ```
833
857
 
834
- Defined in: [data-structures/trie/trie.ts:942](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L942)
858
+ Defined in: [data-structures/trie/trie.ts:969](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L969)
835
859
 
836
860
  Collect words under a prefix up to a maximum count.
837
861
 
@@ -890,7 +914,7 @@ Time O(K·L), Space O(K·L)
890
914
  has(word): boolean;
891
915
  ```
892
916
 
893
- Defined in: [data-structures/trie/trie.ts:478](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L478)
917
+ Defined in: [data-structures/trie/trie.ts:487](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L487)
894
918
 
895
919
  Check whether a word exists.
896
920
 
@@ -937,7 +961,7 @@ Time O(L), Space O(1)
937
961
  hasCommonPrefix(input): boolean;
938
962
  ```
939
963
 
940
- Defined in: [data-structures/trie/trie.ts:807](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L807)
964
+ Defined in: [data-structures/trie/trie.ts:828](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L828)
941
965
 
942
966
  Check whether the trie’s longest common prefix equals input.
943
967
 
@@ -967,7 +991,7 @@ Time O(min(H,L)), Space O(1)
967
991
  hasPrefix(input): boolean;
968
992
  ```
969
993
 
970
- Defined in: [data-structures/trie/trie.ts:789](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L789)
994
+ Defined in: [data-structures/trie/trie.ts:810](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L810)
971
995
 
972
996
  Check whether any word starts with input.
973
997
 
@@ -1010,7 +1034,7 @@ Time O(L), Space O(1)
1010
1034
  hasPurePrefix(input): boolean;
1011
1035
  ```
1012
1036
 
1013
- Defined in: [data-structures/trie/trie.ts:725](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L725)
1037
+ Defined in: [data-structures/trie/trie.ts:743](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L743)
1014
1038
 
1015
1039
  Check whether input is a proper prefix of at least one word.
1016
1040
 
@@ -1034,13 +1058,47 @@ Time O(L), Space O(1)
1034
1058
 
1035
1059
  ***
1036
1060
 
1061
+ ### includes()
1062
+
1063
+ ```ts
1064
+ includes(element): boolean;
1065
+ ```
1066
+
1067
+ Defined in: [data-structures/base/iterable-element-base.ts:200](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L200)
1068
+
1069
+ Check whether a value exists (Array-compatible alias for `has`).
1070
+
1071
+ #### Parameters
1072
+
1073
+ ##### element
1074
+
1075
+ `string`
1076
+
1077
+ Element to search for (uses `===`).
1078
+
1079
+ #### Returns
1080
+
1081
+ `boolean`
1082
+
1083
+ `true` if found.
1084
+
1085
+ #### Remarks
1086
+
1087
+ Provided for familiarity when migrating from Array. Time O(n), Space O(1).
1088
+
1089
+ #### Inherited from
1090
+
1091
+ [`IterableElementBase`](IterableElementBase.md).[`includes`](IterableElementBase.md#includes)
1092
+
1093
+ ***
1094
+
1037
1095
  ### isEmpty()
1038
1096
 
1039
1097
  ```ts
1040
1098
  isEmpty(): boolean;
1041
1099
  ```
1042
1100
 
1043
- Defined in: [data-structures/trie/trie.ts:537](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L537)
1101
+ Defined in: [data-structures/trie/trie.ts:549](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L549)
1044
1102
 
1045
1103
  Check whether the trie is empty.
1046
1104
 
@@ -1072,6 +1130,30 @@ Time O(1), Space O(1)
1072
1130
 
1073
1131
  ***
1074
1132
 
1133
+ ### keys()
1134
+
1135
+ ```ts
1136
+ keys(): IterableIterator<number>;
1137
+ ```
1138
+
1139
+ Defined in: [data-structures/base/iterable-element-base.ts:219](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L219)
1140
+
1141
+ Return an iterator of numeric indices (Array-compatible).
1142
+
1143
+ #### Returns
1144
+
1145
+ `IterableIterator`\<`number`\>
1146
+
1147
+ #### Remarks
1148
+
1149
+ Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
1150
+
1151
+ #### Inherited from
1152
+
1153
+ [`IterableElementBase`](IterableElementBase.md).[`keys`](IterableElementBase.md#keys)
1154
+
1155
+ ***
1156
+
1075
1157
  ### map()
1076
1158
 
1077
1159
  #### Call Signature
@@ -1083,7 +1165,7 @@ map<RM>(
1083
1165
  thisArg?): Trie<RM>;
1084
1166
  ```
1085
1167
 
1086
- Defined in: [data-structures/trie/trie.ts:1136](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1136)
1168
+ Defined in: [data-structures/trie/trie.ts:1172](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1172)
1087
1169
 
1088
1170
  Transform words
1089
1171
 
@@ -1135,7 +1217,7 @@ map<EM, RM>(
1135
1217
  thisArg?): IterableElementBase<EM, RM>;
1136
1218
  ```
1137
1219
 
1138
- Defined in: [data-structures/trie/trie.ts:1149](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1149)
1220
+ Defined in: [data-structures/trie/trie.ts:1185](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1185)
1139
1221
 
1140
1222
  Map words into a new trie (possibly different record type).
1141
1223
 
@@ -1193,7 +1275,7 @@ IterableElementBase.map
1193
1275
  mapSame(callback, thisArg?): this;
1194
1276
  ```
1195
1277
 
1196
- Defined in: [data-structures/trie/trie.ts:1176](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1176)
1278
+ Defined in: [data-structures/trie/trie.ts:1212](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1212)
1197
1279
 
1198
1280
  Map words into a new trie of the same element type.
1199
1281
 
@@ -1233,7 +1315,7 @@ Time O(ΣL), Space O(ΣL)
1233
1315
  print(): void;
1234
1316
  ```
1235
1317
 
1236
- Defined in: [data-structures/base/iterable-element-base.ts:269](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L269)
1318
+ Defined in: [data-structures/base/iterable-element-base.ts:301](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L301)
1237
1319
 
1238
1320
  Prints `toVisual()` to the console. Intended for quick debugging.
1239
1321
 
@@ -1291,7 +1373,7 @@ Time O(n), Space O(1). Throws if called on an empty structure without `initialVa
1291
1373
  reduce(callbackfn): string;
1292
1374
  ```
1293
1375
 
1294
- Defined in: [data-structures/base/iterable-element-base.ts:194](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L194)
1376
+ Defined in: [data-structures/base/iterable-element-base.ts:226](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L226)
1295
1377
 
1296
1378
  ##### Parameters
1297
1379
 
@@ -1313,7 +1395,7 @@ Defined in: [data-structures/base/iterable-element-base.ts:194](https://github.c
1313
1395
  reduce(callbackfn, initialValue): string;
1314
1396
  ```
1315
1397
 
1316
- Defined in: [data-structures/base/iterable-element-base.ts:195](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L195)
1398
+ Defined in: [data-structures/base/iterable-element-base.ts:227](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L227)
1317
1399
 
1318
1400
  ##### Parameters
1319
1401
 
@@ -1339,7 +1421,7 @@ Defined in: [data-structures/base/iterable-element-base.ts:195](https://github.c
1339
1421
  reduce<U>(callbackfn, initialValue): U;
1340
1422
  ```
1341
1423
 
1342
- Defined in: [data-structures/base/iterable-element-base.ts:196](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L196)
1424
+ Defined in: [data-structures/base/iterable-element-base.ts:228](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L228)
1343
1425
 
1344
1426
  ##### Type Parameters
1345
1427
 
@@ -1413,7 +1495,7 @@ Time O(n) in the worst case; may exit early on first success. Space O(1).
1413
1495
  toArray(): string[];
1414
1496
  ```
1415
1497
 
1416
- Defined in: [data-structures/base/iterable-element-base.ts:246](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L246)
1498
+ Defined in: [data-structures/base/iterable-element-base.ts:278](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L278)
1417
1499
 
1418
1500
  Materializes the elements into a new array.
1419
1501
 
@@ -1439,7 +1521,7 @@ Time O(n), Space O(n).
1439
1521
  toVisual(): string[];
1440
1522
  ```
1441
1523
 
1442
- Defined in: [data-structures/base/iterable-element-base.ts:258](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L258)
1524
+ Defined in: [data-structures/base/iterable-element-base.ts:290](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L290)
1443
1525
 
1444
1526
  Returns a representation of the structure suitable for quick visualization.
1445
1527
  Defaults to an array of elements; subclasses may override to provide richer visuals.
@@ -1549,7 +1631,7 @@ Total number of elements.
1549
1631
  protected _caseProcess(str): string;
1550
1632
  ```
1551
1633
 
1552
- Defined in: [data-structures/trie/trie.ts:1260](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1260)
1634
+ Defined in: [data-structures/trie/trie.ts:1296](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1296)
1553
1635
 
1554
1636
  (Protected) Normalize a string according to case sensitivity.
1555
1637
 
@@ -1579,7 +1661,7 @@ Time O(L), Space O(L)
1579
1661
  protected _createInstance(options?): this;
1580
1662
  ```
1581
1663
 
1582
- Defined in: [data-structures/trie/trie.ts:1193](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1193)
1664
+ Defined in: [data-structures/trie/trie.ts:1229](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1229)
1583
1665
 
1584
1666
  (Protected) Create an empty instance of the same concrete class.
1585
1667
 
@@ -1609,7 +1691,7 @@ Time O(1), Space O(1)
1609
1691
  protected _createLike<RM>(elements?, options?): Trie<RM>;
1610
1692
  ```
1611
1693
 
1612
- Defined in: [data-structures/trie/trie.ts:1214](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1214)
1694
+ Defined in: [data-structures/trie/trie.ts:1250](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1250)
1613
1695
 
1614
1696
  (Protected) Create a like-kind trie and seed it from an iterable.
1615
1697
 
@@ -1651,7 +1733,7 @@ Time O(ΣL), Space O(ΣL)
1651
1733
  protected _getIterator(): IterableIterator<string>;
1652
1734
  ```
1653
1735
 
1654
- Defined in: [data-structures/trie/trie.ts:1240](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1240)
1736
+ Defined in: [data-structures/trie/trie.ts:1276](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1276)
1655
1737
 
1656
1738
  (Protected) Iterate all words in lexicographic order of edges.
1657
1739
 
@@ -1677,7 +1759,7 @@ Time O(ΣL), Space O(H)
1677
1759
  protected _spawnLike<RM>(options?): Trie<RM>;
1678
1760
  ```
1679
1761
 
1680
- Defined in: [data-structures/trie/trie.ts:1230](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1230)
1762
+ Defined in: [data-structures/trie/trie.ts:1266](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/trie/trie.ts#L1266)
1681
1763
 
1682
1764
  (Protected) Spawn an empty like-kind trie instance.
1683
1765
 
@@ -513,7 +513,7 @@ Time O(V * E), Space O(V + E)
513
513
  clear(): void;
514
514
  ```
515
515
 
516
- Defined in: [data-structures/graph/undirected-graph.ts:702](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L702)
516
+ Defined in: [data-structures/graph/undirected-graph.ts:717](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L717)
517
517
 
518
518
  Remove all vertices and edges.
519
519
 
@@ -543,7 +543,7 @@ IGraph.clear
543
543
  clone(): this;
544
544
  ```
545
545
 
546
- Defined in: [data-structures/graph/undirected-graph.ts:712](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L712)
546
+ Defined in: [data-structures/graph/undirected-graph.ts:727](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L727)
547
547
 
548
548
  Deep clone as the same concrete class.
549
549
 
@@ -683,7 +683,7 @@ IGraph.createVertex
683
683
  degreeOf(vertexOrKey): number;
684
684
  ```
685
685
 
686
- Defined in: [data-structures/graph/undirected-graph.ts:500](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L500)
686
+ Defined in: [data-structures/graph/undirected-graph.ts:509](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L509)
687
687
 
688
688
  Degree of a vertex (# of incident undirected edges).
689
689
 
@@ -723,7 +723,7 @@ IGraph.degreeOf
723
723
  deleteEdge(edgeOrOneSideVertexKey, otherSideVertexKey?): EO | undefined;
724
724
  ```
725
725
 
726
- Defined in: [data-structures/graph/undirected-graph.ts:388](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L388)
726
+ Defined in: [data-structures/graph/undirected-graph.ts:394](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L394)
727
727
 
728
728
  Delete an edge by instance or by a pair of keys.
729
729
 
@@ -802,7 +802,7 @@ IGraph.deleteEdge
802
802
  deleteEdgeBetween(v1, v2): EO | undefined;
803
803
  ```
804
804
 
805
- Defined in: [data-structures/graph/undirected-graph.ts:295](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L295)
805
+ Defined in: [data-structures/graph/undirected-graph.ts:298](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L298)
806
806
 
807
807
  Delete a single undirected edge between two vertices.
808
808
 
@@ -838,7 +838,7 @@ Time O(1) avg, Space O(1)
838
838
  deleteVertex(vertexOrKey): boolean;
839
839
  ```
840
840
 
841
- Defined in: [data-structures/graph/undirected-graph.ts:459](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L459)
841
+ Defined in: [data-structures/graph/undirected-graph.ts:468](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L468)
842
842
 
843
843
  Delete a vertex and remove it from all neighbor lists.
844
844
 
@@ -948,7 +948,7 @@ Time O(V^2 + E), Space O(V + E)
948
948
  edgeSet(): EO[];
949
949
  ```
950
950
 
951
- Defined in: [data-structures/graph/undirected-graph.ts:572](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L572)
951
+ Defined in: [data-structures/graph/undirected-graph.ts:584](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L584)
952
952
 
953
953
  Unique set of undirected edges across endpoints.
954
954
 
@@ -993,7 +993,7 @@ IGraph.edgeSet
993
993
  edgesOf(vertexOrKey): EO[];
994
994
  ```
995
995
 
996
- Defined in: [data-structures/graph/undirected-graph.ts:515](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L515)
996
+ Defined in: [data-structures/graph/undirected-graph.ts:524](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L524)
997
997
 
998
998
  Incident undirected edges of a vertex.
999
999
 
@@ -1379,7 +1379,7 @@ Time O(paths) worst-case exponential, Space O(V + paths)
1379
1379
  getBiconnectedComponents(): EO[][];
1380
1380
  ```
1381
1381
 
1382
- Defined in: [data-structures/graph/undirected-graph.ts:832](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L832)
1382
+ Defined in: [data-structures/graph/undirected-graph.ts:850](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L850)
1383
1383
 
1384
1384
  Find biconnected components using edge-stack Tarjan variant.
1385
1385
  A biconnected component is a maximal biconnected subgraph.
@@ -1402,7 +1402,7 @@ Time O(V + E), Space O(V + E)
1402
1402
  getBridges(): EO[];
1403
1403
  ```
1404
1404
 
1405
- Defined in: [data-structures/graph/undirected-graph.ts:1019](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L1019)
1405
+ Defined in: [data-structures/graph/undirected-graph.ts:1043](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L1043)
1406
1406
 
1407
1407
  Get bridges discovered by `tarjan()`.
1408
1408
 
@@ -1440,7 +1440,7 @@ Time O(B), Space O(1)
1440
1440
  getCutVertices(): VO[];
1441
1441
  ```
1442
1442
 
1443
- Defined in: [data-structures/graph/undirected-graph.ts:1075](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L1075)
1443
+ Defined in: [data-structures/graph/undirected-graph.ts:1102](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L1102)
1444
1444
 
1445
1445
  Get articulation points discovered by `tarjan()`.
1446
1446
 
@@ -1513,7 +1513,7 @@ Time exponential in worst-case, Space O(V + E)
1513
1513
  getDFNMap(): Map<VO, number>;
1514
1514
  ```
1515
1515
 
1516
- Defined in: [data-structures/graph/undirected-graph.ts:1084](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L1084)
1516
+ Defined in: [data-structures/graph/undirected-graph.ts:1111](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L1111)
1517
1517
 
1518
1518
  DFN index map computed by `tarjan()`.
1519
1519
 
@@ -1535,7 +1535,7 @@ Time O(V), Space O(V)
1535
1535
  getEdge(v1, v2): EO | undefined;
1536
1536
  ```
1537
1537
 
1538
- Defined in: [data-structures/graph/undirected-graph.ts:273](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L273)
1538
+ Defined in: [data-structures/graph/undirected-graph.ts:276](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L276)
1539
1539
 
1540
1540
  Get an undirected edge between two vertices, if present.
1541
1541
 
@@ -1594,7 +1594,7 @@ IGraph.getEdge
1594
1594
  getEndsOfEdge(edge): [VO, VO] | undefined;
1595
1595
  ```
1596
1596
 
1597
- Defined in: [data-structures/graph/undirected-graph.ts:677](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L677)
1597
+ Defined in: [data-structures/graph/undirected-graph.ts:692](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L692)
1598
1598
 
1599
1599
  Resolve an edge's two endpoints to vertex instances.
1600
1600
 
@@ -1634,7 +1634,7 @@ IGraph.getEndsOfEdge
1634
1634
  getLowMap(): Map<VO, number>;
1635
1635
  ```
1636
1636
 
1637
- Defined in: [data-structures/graph/undirected-graph.ts:1093](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L1093)
1637
+ Defined in: [data-structures/graph/undirected-graph.ts:1120](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L1120)
1638
1638
 
1639
1639
  LOW link map computed by `tarjan()`.
1640
1640
 
@@ -1761,7 +1761,7 @@ Time O((V + E) log V) weighted / O(V + E) unweighted, Space O(V + E)
1761
1761
  getNeighbors(vertexOrKey): VO[];
1762
1762
  ```
1763
1763
 
1764
- Defined in: [data-structures/graph/undirected-graph.ts:656](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L656)
1764
+ Defined in: [data-structures/graph/undirected-graph.ts:671](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L671)
1765
1765
 
1766
1766
  UndirectedGraph connectivity and neighbors
1767
1767
 
@@ -1939,7 +1939,7 @@ Time O(n) generic, Space O(1)
1939
1939
  hasCycle(): boolean;
1940
1940
  ```
1941
1941
 
1942
- Defined in: [data-structures/graph/undirected-graph.ts:945](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L945)
1942
+ Defined in: [data-structures/graph/undirected-graph.ts:966](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L966)
1943
1943
 
1944
1944
  Detect whether the graph contains a cycle.
1945
1945
  Uses DFS with parent tracking.
@@ -2093,7 +2093,7 @@ IGraph.hasVertex
2093
2093
  isEmpty(): boolean;
2094
2094
  ```
2095
2095
 
2096
- Defined in: [data-structures/graph/undirected-graph.ts:694](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L694)
2096
+ Defined in: [data-structures/graph/undirected-graph.ts:709](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L709)
2097
2097
 
2098
2098
  Whether the graph has no vertices and no edges.
2099
2099
 
@@ -2422,7 +2422,7 @@ Time O(n), Space O(1)
2422
2422
  tarjan(): object;
2423
2423
  ```
2424
2424
 
2425
- Defined in: [data-structures/graph/undirected-graph.ts:767](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L767)
2425
+ Defined in: [data-structures/graph/undirected-graph.ts:785](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L785)
2426
2426
 
2427
2427
  Tarjan-based bridge and articulation point detection.
2428
2428
 
@@ -2722,7 +2722,7 @@ Override in subclasses (e.g., '--' for undirected, '->' for directed).
2722
2722
  protected _addEdge(edge): boolean;
2723
2723
  ```
2724
2724
 
2725
- Defined in: [data-structures/graph/undirected-graph.ts:1103](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L1103)
2725
+ Defined in: [data-structures/graph/undirected-graph.ts:1130](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/graph/undirected-graph.ts#L1130)
2726
2726
 
2727
2727
  Internal hook to attach an undirected edge into adjacency maps.
2728
2728
 
@@ -3,8 +3,7 @@ module.exports = {
3
3
  testEnvironment: 'node',
4
4
  testMatch: [
5
5
  '<rootDir>/test/integration/**/*.test.ts',
6
- '<rootDir>/test/integration/**/*.test.js',
7
- '<rootDir>/test/integration/**/*.test.mjs'
6
+ '<rootDir>/test/integration/**/*.test.js'
8
7
  ],
9
8
  transform: {
10
9
  '^.+\\.(ts|tsx)$': ['ts-jest', { tsconfig: 'tsconfig.test.json' }]