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.
- package/.github/workflows/ci.yml +7 -2
- package/.github/workflows/release-package.yml +9 -2
- package/.husky/pre-commit +3 -0
- package/CHANGELOG.md +1 -1
- package/MIGRATION.md +48 -0
- package/README.md +20 -2
- package/README_CN.md +20 -2
- package/SPECIFICATION.md +24 -0
- package/SPECIFICATION.zh-CN.md +24 -0
- package/dist/cjs/binary-tree.cjs +1897 -19
- package/dist/cjs/graph.cjs +174 -0
- package/dist/cjs/hash.cjs +33 -0
- package/dist/cjs/heap.cjs +71 -0
- package/dist/cjs/index.cjs +2383 -3
- package/dist/cjs/linked-list.cjs +224 -2
- package/dist/cjs/matrix.cjs +24 -0
- package/dist/cjs/priority-queue.cjs +71 -0
- package/dist/cjs/queue.cjs +221 -1
- package/dist/cjs/stack.cjs +59 -0
- package/dist/cjs/trie.cjs +62 -0
- package/dist/cjs-legacy/binary-tree.cjs +1897 -19
- package/dist/cjs-legacy/graph.cjs +174 -0
- package/dist/cjs-legacy/hash.cjs +33 -0
- package/dist/cjs-legacy/heap.cjs +71 -0
- package/dist/cjs-legacy/index.cjs +2383 -3
- package/dist/cjs-legacy/linked-list.cjs +224 -2
- package/dist/cjs-legacy/matrix.cjs +24 -0
- package/dist/cjs-legacy/priority-queue.cjs +71 -0
- package/dist/cjs-legacy/queue.cjs +221 -1
- package/dist/cjs-legacy/stack.cjs +59 -0
- package/dist/cjs-legacy/trie.cjs +62 -0
- package/dist/esm/binary-tree.mjs +1897 -19
- package/dist/esm/graph.mjs +174 -0
- package/dist/esm/hash.mjs +33 -0
- package/dist/esm/heap.mjs +71 -0
- package/dist/esm/index.mjs +2383 -3
- package/dist/esm/linked-list.mjs +224 -2
- package/dist/esm/matrix.mjs +24 -0
- package/dist/esm/priority-queue.mjs +71 -0
- package/dist/esm/queue.mjs +221 -1
- package/dist/esm/stack.mjs +59 -0
- package/dist/esm/trie.mjs +62 -0
- package/dist/esm-legacy/binary-tree.mjs +1897 -19
- package/dist/esm-legacy/graph.mjs +174 -0
- package/dist/esm-legacy/hash.mjs +33 -0
- package/dist/esm-legacy/heap.mjs +71 -0
- package/dist/esm-legacy/index.mjs +2383 -3
- package/dist/esm-legacy/linked-list.mjs +224 -2
- package/dist/esm-legacy/matrix.mjs +24 -0
- package/dist/esm-legacy/priority-queue.mjs +71 -0
- package/dist/esm-legacy/queue.mjs +221 -1
- package/dist/esm-legacy/stack.mjs +59 -0
- package/dist/esm-legacy/trie.mjs +62 -0
- package/dist/types/data-structures/base/iterable-element-base.d.ts +17 -0
- package/dist/types/data-structures/base/linear-base.d.ts +6 -0
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +36 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +42 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +75 -0
- package/dist/types/data-structures/binary-tree/bst.d.ts +72 -0
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +57 -0
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +18 -0
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +375 -0
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +389 -0
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +330 -0
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +438 -0
- package/dist/types/data-structures/graph/directed-graph.d.ts +30 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +27 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +33 -0
- package/dist/types/data-structures/heap/heap.d.ts +42 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -2
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +45 -0
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +54 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +24 -0
- package/dist/types/data-structures/queue/deque.d.ts +90 -1
- package/dist/types/data-structures/queue/queue.d.ts +36 -0
- package/dist/types/data-structures/stack/stack.d.ts +30 -0
- package/dist/types/data-structures/trie/trie.d.ts +36 -0
- package/dist/umd/data-structure-typed.js +2383 -3
- package/dist/umd/data-structure-typed.min.js +3 -3
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +108 -108
- package/docs-site-docusaurus/docs/api/classes/BST.md +101 -101
- package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +66 -66
- package/docs-site-docusaurus/docs/api/classes/Deque.md +235 -51
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +21 -21
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +231 -67
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +9 -9
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
- package/docs-site-docusaurus/docs/api/classes/HashMap.md +14 -14
- package/docs-site-docusaurus/docs/api/classes/Heap.md +117 -34
- package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +83 -13
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +124 -20
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +140 -32
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +30 -26
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +159 -51
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +20 -20
- package/docs-site-docusaurus/docs/api/classes/Matrix.md +23 -23
- package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +117 -34
- package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +117 -34
- package/docs-site-docusaurus/docs/api/classes/MinHeap.md +117 -34
- package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +117 -34
- package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +117 -34
- package/docs-site-docusaurus/docs/api/classes/Queue.md +142 -34
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +117 -117
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +158 -50
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +21 -21
- package/docs-site-docusaurus/docs/api/classes/Stack.md +108 -26
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +33 -33
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +75 -39
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +301 -39
- package/docs-site-docusaurus/docs/api/classes/Trie.md +110 -28
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +20 -20
- package/jest.integration.config.js +1 -2
- package/package.json +51 -50
- package/src/common/error.ts +15 -32
- package/src/common/index.ts +0 -3
- package/src/data-structures/base/iterable-element-base.ts +32 -3
- package/src/data-structures/base/linear-base.ts +13 -36
- package/src/data-structures/binary-tree/avl-tree.ts +31 -493
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +47 -530
- package/src/data-structures/binary-tree/binary-tree.ts +326 -1236
- package/src/data-structures/binary-tree/bst.ts +158 -1010
- package/src/data-structures/binary-tree/red-black-tree.ts +451 -1233
- package/src/data-structures/binary-tree/segment-tree.ts +73 -333
- package/src/data-structures/binary-tree/tree-map.ts +462 -4749
- package/src/data-structures/binary-tree/tree-multi-map.ts +310 -4530
- package/src/data-structures/binary-tree/tree-multi-set.ts +300 -3652
- package/src/data-structures/binary-tree/tree-set.ts +437 -4443
- package/src/data-structures/graph/abstract-graph.ts +98 -167
- package/src/data-structures/graph/directed-graph.ts +137 -532
- package/src/data-structures/graph/map-graph.ts +0 -3
- package/src/data-structures/graph/undirected-graph.ts +132 -484
- package/src/data-structures/hash/hash-map.ts +154 -549
- package/src/data-structures/heap/heap.ts +200 -753
- package/src/data-structures/linked-list/doubly-linked-list.ts +153 -809
- package/src/data-structures/linked-list/singly-linked-list.ts +122 -749
- package/src/data-structures/linked-list/skip-linked-list.ts +211 -864
- package/src/data-structures/matrix/matrix.ts +179 -494
- package/src/data-structures/matrix/navigator.ts +0 -1
- package/src/data-structures/priority-queue/max-priority-queue.ts +1 -6
- package/src/data-structures/priority-queue/min-priority-queue.ts +6 -11
- package/src/data-structures/priority-queue/priority-queue.ts +1 -2
- package/src/data-structures/queue/deque.ts +241 -807
- package/src/data-structures/queue/queue.ts +102 -589
- package/src/data-structures/stack/stack.ts +76 -475
- package/src/data-structures/trie/trie.ts +98 -592
- package/src/types/common.ts +0 -10
- package/src/types/data-structures/binary-tree/bst.ts +0 -7
- package/src/types/data-structures/binary-tree/red-black-tree.ts +0 -1
- package/src/types/data-structures/graph/abstract-graph.ts +0 -2
- package/src/types/data-structures/hash/hash-map.ts +0 -3
- package/src/types/data-structures/hash/index.ts +0 -1
- package/src/types/data-structures/matrix/navigator.ts +0 -2
- package/src/types/utils/utils.ts +0 -7
- package/src/types/utils/validate-type.ts +0 -7
- package/src/utils/number.ts +0 -2
- 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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|