typescript-dsa-stl 2.5.0 → 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.
- package/README.md +38 -3
- package/dist/collections/Deque.d.ts +44 -0
- package/dist/collections/Deque.d.ts.map +1 -0
- package/dist/collections/Deque.js +178 -0
- package/dist/collections/Deque.js.map +1 -0
- package/dist/collections/index.d.ts +1 -0
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/collections/index.js +1 -0
- package/dist/collections/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**This is the GitHub repository** for the npm package **[typescript-dsa-stl](https://www.npmjs.com/package/typescript-dsa-stl)**.
|
|
4
4
|
|
|
5
|
-
STL-style data structures and algorithms for TypeScript: **Vector**, **Stack**, **Queue**, **List**, **PriorityQueue**, **OrderedMap** (Map), **UnorderedMap**, **OrderedSet** (Set), **UnorderedSet**, **OrderedMultiMap**, **OrderedMultiSet**, **segment trees** (`SegmentTreeSum`, `SegmentTreeMin`, `SegmentTreeMax`, `SegmentTree`, `GeneralSegmentTree`, `LazySegmentTreeSum`), and algorithms (`sort`, `binarySearch`, `lowerBound`, `min`, `max`, **KnuthMorrisPratt**, **RabinKarp**, **StringRollingHash**, etc.). Install from npm to use in your project; this repo holds the source code.
|
|
5
|
+
STL-style data structures and algorithms for TypeScript: **Vector**, **Stack**, **Queue**, **Deque**, **List**, **PriorityQueue**, **OrderedMap** (Map), **UnorderedMap**, **OrderedSet** (Set), **UnorderedSet**, **OrderedMultiMap**, **OrderedMultiSet**, **segment trees** (`SegmentTreeSum`, `SegmentTreeMin`, `SegmentTreeMax`, `SegmentTree`, `GeneralSegmentTree`, `LazySegmentTreeSum`), and algorithms (`sort`, `binarySearch`, `lowerBound`, `min`, `max`, **KnuthMorrisPratt**, **RabinKarp**, **StringRollingHash**, etc.). Install from npm to use in your project; this repo holds the source code.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
Vector,
|
|
22
22
|
Stack,
|
|
23
23
|
Queue,
|
|
24
|
+
Deque,
|
|
24
25
|
List,
|
|
25
26
|
PriorityQueue,
|
|
26
27
|
OrderedMap,
|
|
@@ -53,6 +54,15 @@ queue.enqueue(1);
|
|
|
53
54
|
queue.enqueue(2);
|
|
54
55
|
console.log(queue.front()); // 1
|
|
55
56
|
|
|
57
|
+
// Deque — double-ended queue (like C++ std::deque): O(1) both ends + O(1) index access
|
|
58
|
+
const deque = new Deque<number>();
|
|
59
|
+
deque.pushBack(2);
|
|
60
|
+
deque.pushFront(1);
|
|
61
|
+
deque.pushBack(3);
|
|
62
|
+
console.log(deque.front()); // 1
|
|
63
|
+
console.log(deque.back()); // 3
|
|
64
|
+
console.log(deque.at(1)); // 2
|
|
65
|
+
|
|
56
66
|
const list = new List<number>();
|
|
57
67
|
list.pushBack(10);
|
|
58
68
|
const node = list.pushBack(20);
|
|
@@ -102,6 +112,30 @@ clamp(42, 0, 10); // 10
|
|
|
102
112
|
range(0, 5); // [0, 1, 2, 3, 4]
|
|
103
113
|
```
|
|
104
114
|
|
|
115
|
+
### Deque (like C++ `std::deque`)
|
|
116
|
+
|
|
117
|
+
A **double-ended queue**: amortized **O(1)** `pushFront` / `pushBack` / `popFront` / `popBack`, and **O(1)** random access via `at` / `set`. Implemented as a growable circular buffer (same asymptotics as a typical `std::deque` for these operations).
|
|
118
|
+
|
|
119
|
+
| C++ | TypeScript |
|
|
120
|
+
|-----|------------|
|
|
121
|
+
| `push_front` | `pushFront` |
|
|
122
|
+
| `push_back` | `pushBack` |
|
|
123
|
+
| `pop_front` | `popFront` |
|
|
124
|
+
| `pop_back` | `popBack` |
|
|
125
|
+
| `front` / `back` | `front()` / `back()` |
|
|
126
|
+
| `operator[]` / `at` | `at(i)` / `set(i, value)` |
|
|
127
|
+
| `size` / `empty` | `size` / `empty` |
|
|
128
|
+
| — | `capacity`, `reserve`, `shrinkToFit`, `toArray()`, iterator |
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
import { Deque } from 'typescript-dsa-stl';
|
|
132
|
+
|
|
133
|
+
const d = new Deque<number>([1, 2, 3]); // copy initial elements, or `new Deque()` / `new Deque(64)` for capacity hint
|
|
134
|
+
d.pushFront(0);
|
|
135
|
+
d.popBack();
|
|
136
|
+
console.log(d.toArray()); // [0, 1, 2]
|
|
137
|
+
```
|
|
138
|
+
|
|
105
139
|
### 2D and 3D vectors (like C++ `vector<vector<int>>`)
|
|
106
140
|
|
|
107
141
|
`Vector<T>` is generic, so you can nest it for 2D/3D grids:
|
|
@@ -683,7 +717,7 @@ The same idea applies to **inventory deltas** across bin ranges, **loyalty point
|
|
|
683
717
|
|
|
684
718
|
| Module | Exports |
|
|
685
719
|
|--------|--------|
|
|
686
|
-
| **Collections** | `Vector`, `Stack`, `Queue`, `List`, `ListNode`, `PriorityQueue`, `OrderedMap`, `UnorderedMap`, `OrderedSet`, `UnorderedSet`, `OrderedMultiMap`, `OrderedMultiSet`, `GeneralSegmentTree`, `SegmentTree`, `SegmentTreeSum`, `SegmentTreeMin`, `SegmentTreeMax`, `LazySegmentTreeSum`, `WeightedEdge`, `AdjacencyList`, `WeightedAdjacencyList`, `createAdjacencyList`, `createWeightedAdjacencyList`, `addEdge`, `deleteEdge` |
|
|
720
|
+
| **Collections** | `Vector`, `Stack`, `Queue`, `Deque`, `List`, `ListNode`, `PriorityQueue`, `OrderedMap`, `UnorderedMap`, `OrderedSet`, `UnorderedSet`, `OrderedMultiMap`, `OrderedMultiSet`, `GeneralSegmentTree`, `SegmentTree`, `SegmentTreeSum`, `SegmentTreeMin`, `SegmentTreeMax`, `LazySegmentTreeSum`, `WeightedEdge`, `AdjacencyList`, `WeightedAdjacencyList`, `createAdjacencyList`, `createWeightedAdjacencyList`, `addEdge`, `deleteEdge` |
|
|
687
721
|
| **Algorithms** | `sort`, `find`, `findIndex`, `transform`, `filter`, `reduce`, `reverse`, `unique`, `binarySearch`, `lowerBound`, `upperBound`, `min`, `max`, `partition`, `DisjointSetUnion`, `KnuthMorrisPratt`, `RabinKarp`, `RABIN_KARP_DEFAULT_MODS`, `StringRollingHash`, `breadthFirstSearch`, `depthFirstSearch`, `connectedComponents`, `kruskalMST` |
|
|
688
722
|
| **Utils** | `clamp`, `range`, `noop`, `identity`, `swap` |
|
|
689
723
|
| **Types** | `Comparator`, `Predicate`, `UnaryFn`, `Reducer`, `IterableLike`, `toArray`, `RabinKarpTripleMods`, `GeneralSegmentTreeConfig`, `SegmentCombine`, `SegmentMerge`, `SegmentLeafBuild` |
|
|
@@ -691,7 +725,7 @@ The same idea applies to **inventory deltas** across bin ranges, **loyalty point
|
|
|
691
725
|
### Subpath imports (tree-shaking)
|
|
692
726
|
|
|
693
727
|
```ts
|
|
694
|
-
import { Vector, Stack } from 'typescript-dsa-stl/collections';
|
|
728
|
+
import { Vector, Stack, Queue, Deque } from 'typescript-dsa-stl/collections';
|
|
695
729
|
import { sort, binarySearch, breadthFirstSearch, depthFirstSearch, KnuthMorrisPratt, RabinKarp, StringRollingHash } from 'typescript-dsa-stl/algorithms';
|
|
696
730
|
import { clamp, range } from 'typescript-dsa-stl/utils';
|
|
697
731
|
import type { Comparator } from 'typescript-dsa-stl/types';
|
|
@@ -706,6 +740,7 @@ import type { Comparator } from 'typescript-dsa-stl/types';
|
|
|
706
740
|
| **Vector** | O(1) | O(1)* | O(n) | O(1) | O(n) |
|
|
707
741
|
| **Stack** | — | O(1) | — | O(1) | — |
|
|
708
742
|
| **Queue** | — | O(1)* | — | O(1)* | — |
|
|
743
|
+
| **Deque** | O(1) | O(1)* (front/back) | — | O(1)* (front/back) | — |
|
|
709
744
|
| **List** | O(n) | O(1) | O(1)** | O(1) | O(1)** |
|
|
710
745
|
| **PriorityQueue** | — | O(log n) | — | O(log n) | — |
|
|
711
746
|
| **OrderedMap** (Map) | O(log n) get | O(log n) set | — | O(log n) delete | — |
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Double-ended queue (STL `std::deque`-style API in camelCase).
|
|
3
|
+
*
|
|
4
|
+
* Backed by a growable circular buffer: amortized **O(1)** `pushFront` / `pushBack` /
|
|
5
|
+
* `popFront` / `popBack`, and **O(1)** indexed `at` / `set` (unlike a linked list).
|
|
6
|
+
*/
|
|
7
|
+
export declare class Deque<T> {
|
|
8
|
+
private _buf;
|
|
9
|
+
private _head;
|
|
10
|
+
private _size;
|
|
11
|
+
/**
|
|
12
|
+
* @param initial — initial capacity (number), or copy elements in order from an array.
|
|
13
|
+
*/
|
|
14
|
+
constructor(initial?: readonly T[] | number);
|
|
15
|
+
get size(): number;
|
|
16
|
+
get empty(): boolean;
|
|
17
|
+
/** Current backing slot count (≥ size). */
|
|
18
|
+
get capacity(): number;
|
|
19
|
+
private grow;
|
|
20
|
+
private ensureSpace;
|
|
21
|
+
/** Ensure buffer has room for at least `n` elements total (may shrink logical size only via pop/clear). */
|
|
22
|
+
reserve(minCapacity: number): void;
|
|
23
|
+
/** Drop unused buffer capacity (keeps current elements). */
|
|
24
|
+
shrinkToFit(): void;
|
|
25
|
+
private indexPhysical;
|
|
26
|
+
at(index: number): T;
|
|
27
|
+
set(index: number, value: T): void;
|
|
28
|
+
/** Same as C++ `push_front`. */
|
|
29
|
+
pushFront(value: T): void;
|
|
30
|
+
/** Same as C++ `push_back`. */
|
|
31
|
+
pushBack(value: T): void;
|
|
32
|
+
/** Same as C++ `pop_front`. */
|
|
33
|
+
popFront(): T | undefined;
|
|
34
|
+
/** Same as C++ `pop_back`. */
|
|
35
|
+
popBack(): T | undefined;
|
|
36
|
+
/** Same as C++ `front`. */
|
|
37
|
+
front(): T;
|
|
38
|
+
/** Same as C++ `back`. */
|
|
39
|
+
back(): T;
|
|
40
|
+
clear(): void;
|
|
41
|
+
[Symbol.iterator](): Iterator<T>;
|
|
42
|
+
toArray(): T[];
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=Deque.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Deque.d.ts","sourceRoot":"","sources":["../../src/collections/Deque.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,KAAK,CAAC,CAAC;IAClB,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAK;IAElB;;OAEG;gBACS,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,MAAM;IAkB3C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,2CAA2C;IAC3C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,WAAW;IAKnB,2GAA2G;IAC3G,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAWlC,4DAA4D;IAC5D,WAAW,IAAI,IAAI;IAgBnB,OAAO,CAAC,aAAa;IAIrB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;IAOpB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAOlC,gCAAgC;IAChC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAQzB,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAOxB,+BAA+B;IAC/B,QAAQ,IAAI,CAAC,GAAG,SAAS;IAUzB,8BAA8B;IAC9B,OAAO,IAAI,CAAC,GAAG,SAAS;IAUxB,2BAA2B;IAC3B,KAAK,IAAI,CAAC;IAKV,0BAA0B;IAC1B,IAAI,IAAI,CAAC;IAMT,KAAK,IAAI,IAAI;IAMb,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAgBhC,OAAO,IAAI,CAAC,EAAE;CAQf"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Double-ended queue (STL `std::deque`-style API in camelCase).
|
|
3
|
+
*
|
|
4
|
+
* Backed by a growable circular buffer: amortized **O(1)** `pushFront` / `pushBack` /
|
|
5
|
+
* `popFront` / `popBack`, and **O(1)** indexed `at` / `set` (unlike a linked list).
|
|
6
|
+
*/
|
|
7
|
+
export class Deque {
|
|
8
|
+
/**
|
|
9
|
+
* @param initial — initial capacity (number), or copy elements in order from an array.
|
|
10
|
+
*/
|
|
11
|
+
constructor(initial) {
|
|
12
|
+
this._head = 0;
|
|
13
|
+
this._size = 0;
|
|
14
|
+
if (initial === undefined) {
|
|
15
|
+
this._buf = new Array(16);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (typeof initial === 'number') {
|
|
19
|
+
this._buf = new Array(Math.max(4, initial));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const n = initial.length;
|
|
23
|
+
const cap = Math.max(16, n <= 4 ? 4 : 2 ** Math.ceil(Math.log2(n)));
|
|
24
|
+
this._buf = new Array(cap);
|
|
25
|
+
for (let i = 0; i < n; i++) {
|
|
26
|
+
this._buf[i] = initial[i];
|
|
27
|
+
}
|
|
28
|
+
this._size = n;
|
|
29
|
+
}
|
|
30
|
+
get size() {
|
|
31
|
+
return this._size;
|
|
32
|
+
}
|
|
33
|
+
get empty() {
|
|
34
|
+
return this._size === 0;
|
|
35
|
+
}
|
|
36
|
+
/** Current backing slot count (≥ size). */
|
|
37
|
+
get capacity() {
|
|
38
|
+
return this._buf.length;
|
|
39
|
+
}
|
|
40
|
+
grow() {
|
|
41
|
+
const cap = this._buf.length;
|
|
42
|
+
const next = new Array(Math.max(4, cap * 2));
|
|
43
|
+
for (let i = 0; i < this._size; i++) {
|
|
44
|
+
next[i] = this._buf[(this._head + i) % cap];
|
|
45
|
+
}
|
|
46
|
+
this._buf = next;
|
|
47
|
+
this._head = 0;
|
|
48
|
+
}
|
|
49
|
+
ensureSpace() {
|
|
50
|
+
if (this._size < this._buf.length)
|
|
51
|
+
return;
|
|
52
|
+
this.grow();
|
|
53
|
+
}
|
|
54
|
+
/** Ensure buffer has room for at least `n` elements total (may shrink logical size only via pop/clear). */
|
|
55
|
+
reserve(minCapacity) {
|
|
56
|
+
if (minCapacity <= this._buf.length)
|
|
57
|
+
return;
|
|
58
|
+
const next = new Array(minCapacity);
|
|
59
|
+
const cap = this._buf.length;
|
|
60
|
+
for (let i = 0; i < this._size; i++) {
|
|
61
|
+
next[i] = this._buf[(this._head + i) % cap];
|
|
62
|
+
}
|
|
63
|
+
this._buf = next;
|
|
64
|
+
this._head = 0;
|
|
65
|
+
}
|
|
66
|
+
/** Drop unused buffer capacity (keeps current elements). */
|
|
67
|
+
shrinkToFit() {
|
|
68
|
+
if (this._size === this._buf.length)
|
|
69
|
+
return;
|
|
70
|
+
if (this._size === 0) {
|
|
71
|
+
this._buf = new Array(4);
|
|
72
|
+
this._head = 0;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const next = new Array(this._size);
|
|
76
|
+
const cap = this._buf.length;
|
|
77
|
+
for (let i = 0; i < this._size; i++) {
|
|
78
|
+
next[i] = this._buf[(this._head + i) % cap];
|
|
79
|
+
}
|
|
80
|
+
this._buf = next;
|
|
81
|
+
this._head = 0;
|
|
82
|
+
}
|
|
83
|
+
indexPhysical(i) {
|
|
84
|
+
return (this._head + i) % this._buf.length;
|
|
85
|
+
}
|
|
86
|
+
at(index) {
|
|
87
|
+
if (index < 0 || index >= this._size) {
|
|
88
|
+
throw new RangeError(`Deque index ${index} out of range (size ${this._size})`);
|
|
89
|
+
}
|
|
90
|
+
return this._buf[this.indexPhysical(index)];
|
|
91
|
+
}
|
|
92
|
+
set(index, value) {
|
|
93
|
+
if (index < 0 || index >= this._size) {
|
|
94
|
+
throw new RangeError(`Deque index ${index} out of range (size ${this._size})`);
|
|
95
|
+
}
|
|
96
|
+
this._buf[this.indexPhysical(index)] = value;
|
|
97
|
+
}
|
|
98
|
+
/** Same as C++ `push_front`. */
|
|
99
|
+
pushFront(value) {
|
|
100
|
+
this.ensureSpace();
|
|
101
|
+
const cap = this._buf.length;
|
|
102
|
+
this._head = (this._head - 1 + cap) % cap;
|
|
103
|
+
this._buf[this._head] = value;
|
|
104
|
+
this._size++;
|
|
105
|
+
}
|
|
106
|
+
/** Same as C++ `push_back`. */
|
|
107
|
+
pushBack(value) {
|
|
108
|
+
this.ensureSpace();
|
|
109
|
+
const cap = this._buf.length;
|
|
110
|
+
this._buf[(this._head + this._size) % cap] = value;
|
|
111
|
+
this._size++;
|
|
112
|
+
}
|
|
113
|
+
/** Same as C++ `pop_front`. */
|
|
114
|
+
popFront() {
|
|
115
|
+
if (this._size === 0)
|
|
116
|
+
return undefined;
|
|
117
|
+
const cap = this._buf.length;
|
|
118
|
+
const value = this._buf[this._head];
|
|
119
|
+
this._buf[this._head] = undefined;
|
|
120
|
+
this._head = (this._head + 1) % cap;
|
|
121
|
+
this._size--;
|
|
122
|
+
return value;
|
|
123
|
+
}
|
|
124
|
+
/** Same as C++ `pop_back`. */
|
|
125
|
+
popBack() {
|
|
126
|
+
if (this._size === 0)
|
|
127
|
+
return undefined;
|
|
128
|
+
const cap = this._buf.length;
|
|
129
|
+
const idx = (this._head + this._size - 1 + cap) % cap;
|
|
130
|
+
const value = this._buf[idx];
|
|
131
|
+
this._buf[idx] = undefined;
|
|
132
|
+
this._size--;
|
|
133
|
+
return value;
|
|
134
|
+
}
|
|
135
|
+
/** Same as C++ `front`. */
|
|
136
|
+
front() {
|
|
137
|
+
if (this._size === 0)
|
|
138
|
+
throw new RangeError('Deque is empty');
|
|
139
|
+
return this._buf[this._head];
|
|
140
|
+
}
|
|
141
|
+
/** Same as C++ `back`. */
|
|
142
|
+
back() {
|
|
143
|
+
if (this._size === 0)
|
|
144
|
+
throw new RangeError('Deque is empty');
|
|
145
|
+
const cap = this._buf.length;
|
|
146
|
+
return this._buf[(this._head + this._size - 1 + cap) % cap];
|
|
147
|
+
}
|
|
148
|
+
clear() {
|
|
149
|
+
this._buf = new Array(this._buf.length);
|
|
150
|
+
this._head = 0;
|
|
151
|
+
this._size = 0;
|
|
152
|
+
}
|
|
153
|
+
[Symbol.iterator]() {
|
|
154
|
+
const buf = this._buf;
|
|
155
|
+
const cap = buf.length;
|
|
156
|
+
const head = this._head;
|
|
157
|
+
const size = this._size;
|
|
158
|
+
let i = 0;
|
|
159
|
+
return {
|
|
160
|
+
next() {
|
|
161
|
+
if (i >= size)
|
|
162
|
+
return { done: true, value: undefined };
|
|
163
|
+
const value = buf[(head + i) % cap];
|
|
164
|
+
i++;
|
|
165
|
+
return { done: false, value };
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
toArray() {
|
|
170
|
+
const out = [];
|
|
171
|
+
const cap = this._buf.length;
|
|
172
|
+
for (let i = 0; i < this._size; i++) {
|
|
173
|
+
out.push(this._buf[(this._head + i) % cap]);
|
|
174
|
+
}
|
|
175
|
+
return out;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=Deque.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Deque.js","sourceRoot":"","sources":["../../src/collections/Deque.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { Vector } from './Vector.js';
|
|
2
2
|
export { Stack } from './Stack.js';
|
|
3
3
|
export { Queue } from './Queue.js';
|
|
4
|
+
export { Deque } from './Deque.js';
|
|
4
5
|
export { List, ListNode } from './List.js';
|
|
5
6
|
export { PriorityQueue } from './PriorityQueue.js';
|
|
6
7
|
export { OrderedMap } from './OrderedMap.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { Vector } from './Vector.js';
|
|
2
2
|
export { Stack } from './Stack.js';
|
|
3
3
|
export { Queue } from './Queue.js';
|
|
4
|
+
export { Deque } from './Deque.js';
|
|
4
5
|
export { List, ListNode } from './List.js';
|
|
5
6
|
export { PriorityQueue } from './PriorityQueue.js';
|
|
6
7
|
export { OrderedMap } from './OrderedMap.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @example
|
|
6
6
|
* import { Vector, Stack, Queue, List, sort, binarySearch, clamp } from 'typescript-dsa-stl';
|
|
7
7
|
*/
|
|
8
|
-
export { Vector, Stack, Queue, List, ListNode, PriorityQueue, OrderedMap, UnorderedMap, OrderedSet, UnorderedSet, OrderedMultiSet, OrderedMultiMap, addEdge, deleteEdge, createAdjacencyList, createWeightedAdjacencyList, GeneralSegmentTree, SegmentTree, SegmentTreeSum, SegmentTreeMin, SegmentTreeMax, LazySegmentTreeSum, } from './collections/index.js';
|
|
8
|
+
export { Vector, Stack, Queue, Deque, List, ListNode, PriorityQueue, OrderedMap, UnorderedMap, OrderedSet, UnorderedSet, OrderedMultiSet, OrderedMultiMap, addEdge, deleteEdge, createAdjacencyList, createWeightedAdjacencyList, GeneralSegmentTree, SegmentTree, SegmentTreeSum, SegmentTreeMin, SegmentTreeMax, LazySegmentTreeSum, } from './collections/index.js';
|
|
9
9
|
export type { WeightedEdge, AdjacencyList, WeightedAdjacencyList, GeneralSegmentTreeConfig, SegmentCombine, SegmentLeafBuild, SegmentMerge, } from './collections/index.js';
|
|
10
10
|
export { sort, find, findIndex, transform, filter, reduce, reverse, unique, binarySearch, lowerBound, upperBound, min, max, partition, DisjointSetUnion, KnuthMorrisPratt, StringRollingHash, RabinKarp, RABIN_KARP_DEFAULT_MODS, breadthFirstSearch, depthFirstSearch, connectedComponents, dijkstra, reconstructPath, kruskalMST, } from './algorithms/index.js';
|
|
11
11
|
export type { WeightedUndirectedEdge, RabinKarpTripleMods } from './algorithms/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,GAAG,EACH,GAAG,EACH,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,eAAe,EACf,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,GAAG,EACH,GAAG,EACH,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,eAAe,EACf,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @example
|
|
6
6
|
* import { Vector, Stack, Queue, List, sort, binarySearch, clamp } from 'typescript-dsa-stl';
|
|
7
7
|
*/
|
|
8
|
-
export { Vector, Stack, Queue, List, ListNode, PriorityQueue, OrderedMap, UnorderedMap, OrderedSet, UnorderedSet, OrderedMultiSet, OrderedMultiMap, addEdge, deleteEdge, createAdjacencyList, createWeightedAdjacencyList, GeneralSegmentTree, SegmentTree, SegmentTreeSum, SegmentTreeMin, SegmentTreeMax, LazySegmentTreeSum, } from './collections/index.js';
|
|
8
|
+
export { Vector, Stack, Queue, Deque, List, ListNode, PriorityQueue, OrderedMap, UnorderedMap, OrderedSet, UnorderedSet, OrderedMultiSet, OrderedMultiMap, addEdge, deleteEdge, createAdjacencyList, createWeightedAdjacencyList, GeneralSegmentTree, SegmentTree, SegmentTreeSum, SegmentTreeMin, SegmentTreeMax, LazySegmentTreeSum, } from './collections/index.js';
|
|
9
9
|
export { sort, find, findIndex, transform, filter, reduce, reverse, unique, binarySearch, lowerBound, upperBound, min, max, partition, DisjointSetUnion, KnuthMorrisPratt, StringRollingHash, RabinKarp, RABIN_KARP_DEFAULT_MODS, breadthFirstSearch, depthFirstSearch, connectedComponents, dijkstra, reconstructPath, kruskalMST, } from './algorithms/index.js';
|
|
10
10
|
export { clamp, range, noop, identity, swap } from './utils/index.js';
|
|
11
11
|
export { toArray } from './types/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,GAAG,EACH,GAAG,EACH,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,eAAe,EACf,UAAU,GACX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,GAAG,EACH,GAAG,EACH,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,eAAe,EACf,UAAU,GACX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typescript-dsa-stl",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "STL-style data structures and algorithms for TypeScript: Vector, Stack, Queue, List, PriorityQueue, Map, Set, sort, binarySearch, graph utilities. Use like C++ STL.",
|
|
3
|
+
"version": "2.6.0",
|
|
4
|
+
"description": "STL-style data structures and algorithms for TypeScript: Vector, Stack, Queue, Deque (double-ended queue), List, PriorityQueue, Map, Set, sort, binarySearch, graph utilities. Use like C++ STL.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.js",
|
|
@@ -52,6 +52,8 @@
|
|
|
52
52
|
"vector",
|
|
53
53
|
"stack",
|
|
54
54
|
"queue",
|
|
55
|
+
"deque",
|
|
56
|
+
"double-ended-queue",
|
|
55
57
|
"list",
|
|
56
58
|
"priority-queue",
|
|
57
59
|
"map",
|