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
@@ -64,7 +64,7 @@ number of elements, or an array of initial values
64
64
  iterator: IterableIterator<number>;
65
65
  ```
66
66
 
67
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:704](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L704)
67
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:746](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L746)
68
68
 
69
69
  Iterate over point values in index order.
70
70
 
@@ -86,7 +86,7 @@ Iterable.[iterator]
86
86
  get(index): number;
87
87
  ```
88
88
 
89
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:305](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L305)
89
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:323](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L323)
90
90
 
91
91
  Get the point value at index (0-based).
92
92
  Time: O(log n)
@@ -120,7 +120,7 @@ Time: O(log n)
120
120
  lowerBound(sum): number;
121
121
  ```
122
122
 
123
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:564](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L564)
123
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:600](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L600)
124
124
 
125
125
  Find the smallest index i such that prefix sum [0..i] >= sum.
126
126
  Requires all values to be non-negative (behavior undefined otherwise).
@@ -156,7 +156,7 @@ Time: O(log n)
156
156
  query(index): number;
157
157
  ```
158
158
 
159
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:389](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L389)
159
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:413](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L413)
160
160
 
161
161
  Prefix sum query: returns sum of elements [0..index] (inclusive, 0-based).
162
162
  Time: O(log n)
@@ -189,7 +189,7 @@ Time: O(log n)
189
189
  queryRange(start, end): number;
190
190
  ```
191
191
 
192
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:472](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L472)
192
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:502](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L502)
193
193
 
194
194
  Range sum query: returns sum of elements [start..end] (inclusive, 0-based).
195
195
  Time: O(log n)
@@ -226,7 +226,7 @@ Time: O(log n)
226
226
  set(index, value): void;
227
227
  ```
228
228
 
229
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:220](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L220)
229
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:232](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L232)
230
230
 
231
231
  Point set: set the value at index to an absolute value (0-based).
232
232
  Time: O(log n)
@@ -264,7 +264,7 @@ Time: O(log n)
264
264
  toArray(): number[];
265
265
  ```
266
266
 
267
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:693](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L693)
267
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:735](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L735)
268
268
 
269
269
  Returns the point values as a plain array.
270
270
  Time: O(n log n)
@@ -291,7 +291,7 @@ Time: O(n log n)
291
291
  update(index, delta): void;
292
292
  ```
293
293
 
294
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:135](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L135)
294
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:141](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L141)
295
295
 
296
296
  Point update: add delta to the value at index (0-based).
297
297
  Time: O(log n)
@@ -329,7 +329,7 @@ Time: O(log n)
329
329
  upperBound(sum): number;
330
330
  ```
331
331
 
332
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:621](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L621)
332
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:660](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L660)
333
333
 
334
334
  Find the smallest index i such that prefix sum [0..i] > sum.
335
335
  Requires all values to be non-negative (behavior undefined otherwise).
@@ -368,7 +368,7 @@ Time: O(log n)
368
368
  protected _highBit(n): number;
369
369
  ```
370
370
 
371
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:774](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L774)
371
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:816](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L816)
372
372
 
373
373
  Returns highest power of 2 <= n.
374
374
 
@@ -390,7 +390,7 @@ Returns highest power of 2 <= n.
390
390
  protected _pointQuery(pos): number;
391
391
  ```
392
392
 
393
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:753](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L753)
393
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:795](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L795)
394
394
 
395
395
  1-based point query: get exact value at pos.
396
396
 
@@ -412,7 +412,7 @@ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:753](https://git
412
412
  protected _pointUpdate(pos, delta): void;
413
413
  ```
414
414
 
415
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:745](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L745)
415
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:787](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L787)
416
416
 
417
417
  1-based point update: add delta to position pos.
418
418
 
@@ -438,7 +438,7 @@ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:745](https://git
438
438
  protected _prefixSum(pos): number;
439
439
  ```
440
440
 
441
- Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:735](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L735)
441
+ Defined in: [data-structures/binary-tree/binary-indexed-tree.ts:777](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/binary-tree/binary-indexed-tree.ts#L777)
442
442
 
443
443
  1-based prefix sum up to pos (inclusive).
444
444