data-structure-typed 1.50.0 → 1.50.2
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/CHANGELOG.md +2 -1
- package/README.md +204 -212
- package/benchmark/report.html +37 -1
- package/benchmark/report.json +370 -22
- package/dist/cjs/data-structures/base/iterable-base.d.ts +114 -9
- package/dist/cjs/data-structures/base/iterable-base.js +143 -7
- package/dist/cjs/data-structures/base/iterable-base.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +43 -46
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +68 -71
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +244 -199
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +484 -376
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +54 -74
- package/dist/cjs/data-structures/binary-tree/bst.js +30 -71
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +78 -60
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +84 -89
- package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multimap.d.ts +37 -56
- package/dist/cjs/data-structures/binary-tree/tree-multimap.js +64 -85
- package/dist/cjs/data-structures/binary-tree/tree-multimap.js.map +1 -1
- package/dist/cjs/data-structures/graph/abstract-graph.d.ts +1 -0
- package/dist/cjs/data-structures/graph/abstract-graph.js +3 -0
- package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/directed-graph.d.ts +14 -0
- package/dist/cjs/data-structures/graph/directed-graph.js +26 -0
- package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/map-graph.d.ts +8 -0
- package/dist/cjs/data-structures/graph/map-graph.js +14 -0
- package/dist/cjs/data-structures/graph/map-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/undirected-graph.d.ts +16 -0
- package/dist/cjs/data-structures/graph/undirected-graph.js +25 -0
- package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -1
- package/dist/cjs/data-structures/hash/hash-map.d.ts +121 -15
- package/dist/cjs/data-structures/hash/hash-map.js +160 -25
- package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
- package/dist/cjs/data-structures/heap/heap.d.ts +66 -6
- package/dist/cjs/data-structures/heap/heap.js +66 -6
- package/dist/cjs/data-structures/heap/heap.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +67 -50
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +70 -64
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +128 -103
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js +130 -112
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/skip-linked-list.d.ts +63 -36
- package/dist/cjs/data-structures/linked-list/skip-linked-list.js +63 -36
- package/dist/cjs/data-structures/linked-list/skip-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/matrix/matrix.d.ts +35 -4
- package/dist/cjs/data-structures/matrix/matrix.js +50 -11
- package/dist/cjs/data-structures/matrix/matrix.js.map +1 -1
- package/dist/cjs/data-structures/queue/deque.d.ts +49 -19
- package/dist/cjs/data-structures/queue/deque.js +101 -47
- package/dist/cjs/data-structures/queue/deque.js.map +1 -1
- package/dist/cjs/data-structures/queue/queue.d.ts +39 -5
- package/dist/cjs/data-structures/queue/queue.js +47 -5
- package/dist/cjs/data-structures/queue/queue.js.map +1 -1
- package/dist/cjs/data-structures/stack/stack.d.ts +16 -0
- package/dist/cjs/data-structures/stack/stack.js +22 -0
- package/dist/cjs/data-structures/stack/stack.js.map +1 -1
- package/dist/cjs/data-structures/trie/trie.d.ts +38 -1
- package/dist/cjs/data-structures/trie/trie.js +41 -0
- package/dist/cjs/data-structures/trie/trie.js.map +1 -1
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +1 -1
- package/dist/cjs/types/data-structures/hash/hash-map.d.ts +4 -3
- package/dist/cjs/types/utils/utils.d.ts +1 -0
- package/dist/mjs/data-structures/base/iterable-base.d.ts +114 -9
- package/dist/mjs/data-structures/base/iterable-base.js +143 -7
- package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +43 -46
- package/dist/mjs/data-structures/binary-tree/avl-tree.js +68 -71
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +244 -199
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +483 -375
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +54 -74
- package/dist/mjs/data-structures/binary-tree/bst.js +30 -71
- package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +78 -60
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +84 -89
- package/dist/mjs/data-structures/binary-tree/tree-multimap.d.ts +37 -56
- package/dist/mjs/data-structures/binary-tree/tree-multimap.js +64 -85
- package/dist/mjs/data-structures/graph/abstract-graph.d.ts +1 -0
- package/dist/mjs/data-structures/graph/abstract-graph.js +3 -0
- package/dist/mjs/data-structures/graph/directed-graph.d.ts +14 -0
- package/dist/mjs/data-structures/graph/directed-graph.js +26 -0
- package/dist/mjs/data-structures/graph/map-graph.d.ts +8 -0
- package/dist/mjs/data-structures/graph/map-graph.js +14 -0
- package/dist/mjs/data-structures/graph/undirected-graph.d.ts +16 -0
- package/dist/mjs/data-structures/graph/undirected-graph.js +25 -0
- package/dist/mjs/data-structures/hash/hash-map.d.ts +121 -15
- package/dist/mjs/data-structures/hash/hash-map.js +160 -25
- package/dist/mjs/data-structures/heap/heap.d.ts +66 -6
- package/dist/mjs/data-structures/heap/heap.js +66 -6
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +67 -50
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +70 -64
- package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +128 -103
- package/dist/mjs/data-structures/linked-list/singly-linked-list.js +130 -112
- package/dist/mjs/data-structures/linked-list/skip-linked-list.d.ts +63 -36
- package/dist/mjs/data-structures/linked-list/skip-linked-list.js +63 -36
- package/dist/mjs/data-structures/matrix/matrix.d.ts +35 -4
- package/dist/mjs/data-structures/matrix/matrix.js +50 -11
- package/dist/mjs/data-structures/queue/deque.d.ts +49 -19
- package/dist/mjs/data-structures/queue/deque.js +101 -47
- package/dist/mjs/data-structures/queue/queue.d.ts +39 -5
- package/dist/mjs/data-structures/queue/queue.js +47 -5
- package/dist/mjs/data-structures/stack/stack.d.ts +16 -0
- package/dist/mjs/data-structures/stack/stack.js +22 -0
- package/dist/mjs/data-structures/trie/trie.d.ts +38 -1
- package/dist/mjs/data-structures/trie/trie.js +41 -0
- package/dist/mjs/types/data-structures/binary-tree/binary-tree.d.ts +1 -1
- package/dist/mjs/types/data-structures/hash/hash-map.d.ts +4 -3
- package/dist/mjs/types/utils/utils.d.ts +1 -0
- package/dist/umd/data-structure-typed.js +1730 -1042
- package/dist/umd/data-structure-typed.min.js +3 -3
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +16 -40
- package/src/data-structures/base/iterable-base.ts +172 -19
- package/src/data-structures/binary-tree/avl-tree.ts +97 -97
- package/src/data-structures/binary-tree/binary-tree.ts +674 -671
- package/src/data-structures/binary-tree/bst.ts +89 -131
- package/src/data-structures/binary-tree/rb-tree.ts +127 -155
- package/src/data-structures/binary-tree/tree-multimap.ts +96 -112
- package/src/data-structures/graph/abstract-graph.ts +4 -0
- package/src/data-structures/graph/directed-graph.ts +30 -0
- package/src/data-structures/graph/map-graph.ts +15 -0
- package/src/data-structures/graph/undirected-graph.ts +28 -0
- package/src/data-structures/hash/hash-map.ts +175 -34
- package/src/data-structures/heap/heap.ts +66 -6
- package/src/data-structures/linked-list/doubly-linked-list.ts +72 -66
- package/src/data-structures/linked-list/singly-linked-list.ts +132 -114
- package/src/data-structures/linked-list/skip-linked-list.ts +63 -37
- package/src/data-structures/matrix/matrix.ts +52 -12
- package/src/data-structures/queue/deque.ts +108 -49
- package/src/data-structures/queue/queue.ts +51 -5
- package/src/data-structures/stack/stack.ts +24 -0
- package/src/data-structures/trie/trie.ts +45 -1
- package/src/types/data-structures/binary-tree/binary-tree.ts +1 -1
- package/src/types/data-structures/hash/hash-map.ts +4 -3
- package/src/types/utils/utils.ts +2 -0
- package/test/performance/data-structures/graph/directed-graph.test.ts +3 -3
- package/test/performance/data-structures/queue/deque.test.ts +26 -25
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +37 -0
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +46 -17
- package/test/unit/data-structures/binary-tree/bst.test.ts +65 -1
- package/test/unit/data-structures/binary-tree/rb-tree.test.ts +38 -1
- package/test/unit/data-structures/binary-tree/tree-multimap.test.ts +37 -32
- package/test/unit/data-structures/graph/abstract-graph.test.ts +8 -0
- package/test/unit/data-structures/graph/directed-graph.test.ts +249 -0
- package/test/unit/data-structures/hash/hash-map.test.ts +376 -353
- package/test/unit/data-structures/heap/heap.test.ts +18 -1
- package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +24 -5
- package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +20 -2
- package/test/unit/data-structures/linked-list/skip-list.test.ts +1 -1
- package/test/unit/data-structures/queue/deque.test.ts +71 -10
- package/test/unit/data-structures/queue/queue.test.ts +23 -6
- package/test/unit/data-structures/stack/stack.test.ts +17 -0
- package/test/unit/data-structures/trie/trie.test.ts +17 -0
- package/test/unit/unrestricted-interconversion.test.ts +143 -10
|
@@ -21,10 +21,36 @@ export declare class Deque<E> extends IterableElementBase<E> {
|
|
|
21
21
|
protected _lastInBucket: number;
|
|
22
22
|
protected _bucketCount: number;
|
|
23
23
|
protected readonly _bucketSize: number;
|
|
24
|
+
/**
|
|
25
|
+
* The constructor initializes a Deque object with an optional iterable of elements and options.
|
|
26
|
+
* @param elements - An iterable object (such as an array or a Set) that contains the initial
|
|
27
|
+
* elements to be added to the deque. It can also be an object with a `length` or `size` property
|
|
28
|
+
* that represents the number of elements in the iterable object. If no elements are provided, an
|
|
29
|
+
* empty deque
|
|
30
|
+
* @param {DequeOptions} [options] - The `options` parameter is an optional object that can contain
|
|
31
|
+
* configuration options for the deque. In this code, it is used to set the `bucketSize` option,
|
|
32
|
+
* which determines the size of each bucket in the deque. If the `bucketSize` option is not provided
|
|
33
|
+
* or is not a number
|
|
34
|
+
*/
|
|
24
35
|
constructor(elements?: IterableWithSizeOrLength<E>, options?: DequeOptions);
|
|
36
|
+
/**
|
|
37
|
+
* The bucketSize function returns the size of the bucket.
|
|
38
|
+
*
|
|
39
|
+
* @return The size of the bucket
|
|
40
|
+
*/
|
|
41
|
+
get bucketSize(): number;
|
|
25
42
|
protected _buckets: E[][];
|
|
43
|
+
/**
|
|
44
|
+
* The buckets function returns the buckets property of the object.
|
|
45
|
+
*
|
|
46
|
+
* @return The buckets property
|
|
47
|
+
*/
|
|
26
48
|
get buckets(): E[][];
|
|
27
49
|
protected _size: number;
|
|
50
|
+
/**
|
|
51
|
+
* The size function returns the number of items in the stack.
|
|
52
|
+
* @return The number of values in the set
|
|
53
|
+
*/
|
|
28
54
|
get size(): number;
|
|
29
55
|
/**
|
|
30
56
|
* The function returns the first element in a collection if it exists, otherwise it returns
|
|
@@ -32,6 +58,10 @@ export declare class Deque<E> extends IterableElementBase<E> {
|
|
|
32
58
|
* @returns The first element of the collection, of type E, is being returned.
|
|
33
59
|
*/
|
|
34
60
|
get first(): E | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* The last function returns the last element in the queue.
|
|
63
|
+
* @return The last element in the array
|
|
64
|
+
*/
|
|
35
65
|
get last(): E | undefined;
|
|
36
66
|
/**
|
|
37
67
|
* Time Complexity - Amortized O(1) (possible reallocation)
|
|
@@ -116,13 +146,13 @@ export declare class Deque<E> extends IterableElementBase<E> {
|
|
|
116
146
|
* Time Complexity: O(1)
|
|
117
147
|
* Space Complexity: O(1)
|
|
118
148
|
*
|
|
119
|
-
* The `
|
|
149
|
+
* The `at` function retrieves an element at a specified position in an array-like data structure.
|
|
120
150
|
* @param {number} pos - The `pos` parameter represents the position of the element that you want to
|
|
121
151
|
* retrieve from the data structure. It is of type `number` and should be a valid index within the
|
|
122
152
|
* range of the data structure.
|
|
123
153
|
* @returns The element at the specified position in the data structure is being returned.
|
|
124
154
|
*/
|
|
125
|
-
|
|
155
|
+
at(pos: number): E;
|
|
126
156
|
/**
|
|
127
157
|
* Time Complexity: O(1)
|
|
128
158
|
* Space Complexity: O(1)
|
|
@@ -170,9 +200,11 @@ export declare class Deque<E> extends IterableElementBase<E> {
|
|
|
170
200
|
* updated size.
|
|
171
201
|
* @param {number} pos - The `pos` parameter represents the position at which the string should be
|
|
172
202
|
* cut. It is a number that indicates the index of the character where the cut should be made.
|
|
203
|
+
* @param {boolean} isCutSelf - If true, the original deque will not be cut, and return a new deque
|
|
173
204
|
* @returns The method is returning the updated size of the data structure.
|
|
174
205
|
*/
|
|
175
|
-
cut(pos: number):
|
|
206
|
+
cut(pos: number, isCutSelf?: boolean): Deque<E>;
|
|
207
|
+
cutRest(pos: number, isCutSelf?: boolean): Deque<E>;
|
|
176
208
|
/**
|
|
177
209
|
* Time Complexity: O(n)
|
|
178
210
|
* Space Complexity: O(1)
|
|
@@ -260,22 +292,6 @@ export declare class Deque<E> extends IterableElementBase<E> {
|
|
|
260
292
|
* `this.size` is 0, but it does not return any value.
|
|
261
293
|
*/
|
|
262
294
|
shrinkToFit(): void;
|
|
263
|
-
/**
|
|
264
|
-
* Time Complexity: O(n)
|
|
265
|
-
* Space Complexity: O(1)
|
|
266
|
-
*/
|
|
267
|
-
/**
|
|
268
|
-
* Time Complexity: O(n)
|
|
269
|
-
* Space Complexity: O(1)
|
|
270
|
-
*
|
|
271
|
-
* The `find` function iterates over the elements in a deque and returns the first element for which
|
|
272
|
-
* the callback function returns true, or undefined if no such element is found.
|
|
273
|
-
* @param callback - A function that takes three parameters: element, index, and deque. It should
|
|
274
|
-
* return a boolean value indicating whether the element satisfies a certain condition.
|
|
275
|
-
* @returns The method `find` returns the first element in the deque that satisfies the condition
|
|
276
|
-
* specified by the callback function. If no element satisfies the condition, it returns `undefined`.
|
|
277
|
-
*/
|
|
278
|
-
find(callback: (element: E, index: number, deque: Deque<E>) => boolean): E | undefined;
|
|
279
295
|
/**
|
|
280
296
|
* Time Complexity: O(n)
|
|
281
297
|
* Space Complexity: O(1)
|
|
@@ -304,6 +320,20 @@ export declare class Deque<E> extends IterableElementBase<E> {
|
|
|
304
320
|
* @returns The `toArray()` method is returning an array of elements of type `E`.
|
|
305
321
|
*/
|
|
306
322
|
toArray(): E[];
|
|
323
|
+
/**
|
|
324
|
+
* Time Complexity: O(n)
|
|
325
|
+
* Space Complexity: O(n)
|
|
326
|
+
*/
|
|
327
|
+
/**
|
|
328
|
+
* Time Complexity: O(n)
|
|
329
|
+
* Space Complexity: O(n)
|
|
330
|
+
*
|
|
331
|
+
* The `clone()` function returns a new instance of the `Deque` class with the same elements and
|
|
332
|
+
* bucket size as the original instance.
|
|
333
|
+
* @returns The `clone()` method is returning a new instance of the `Deque` class with the same
|
|
334
|
+
* elements as the original deque (`this`) and the same bucket size.
|
|
335
|
+
*/
|
|
336
|
+
clone(): Deque<E>;
|
|
307
337
|
/**
|
|
308
338
|
* Time Complexity: O(n)
|
|
309
339
|
* Space Complexity: O(n)
|
|
@@ -11,6 +11,17 @@ const utils_1 = require("../../utils");
|
|
|
11
11
|
* 5. Performance jitter: Deque may experience performance jitter, but DoublyLinkedList will not
|
|
12
12
|
*/
|
|
13
13
|
class Deque extends base_1.IterableElementBase {
|
|
14
|
+
/**
|
|
15
|
+
* The constructor initializes a Deque object with an optional iterable of elements and options.
|
|
16
|
+
* @param elements - An iterable object (such as an array or a Set) that contains the initial
|
|
17
|
+
* elements to be added to the deque. It can also be an object with a `length` or `size` property
|
|
18
|
+
* that represents the number of elements in the iterable object. If no elements are provided, an
|
|
19
|
+
* empty deque
|
|
20
|
+
* @param {DequeOptions} [options] - The `options` parameter is an optional object that can contain
|
|
21
|
+
* configuration options for the deque. In this code, it is used to set the `bucketSize` option,
|
|
22
|
+
* which determines the size of each bucket in the deque. If the `bucketSize` option is not provided
|
|
23
|
+
* or is not a number
|
|
24
|
+
*/
|
|
14
25
|
constructor(elements = [], options) {
|
|
15
26
|
super();
|
|
16
27
|
this._bucketFirst = 0;
|
|
@@ -50,9 +61,26 @@ class Deque extends base_1.IterableElementBase {
|
|
|
50
61
|
this.push(element);
|
|
51
62
|
}
|
|
52
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* The bucketSize function returns the size of the bucket.
|
|
66
|
+
*
|
|
67
|
+
* @return The size of the bucket
|
|
68
|
+
*/
|
|
69
|
+
get bucketSize() {
|
|
70
|
+
return this._bucketSize;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The buckets function returns the buckets property of the object.
|
|
74
|
+
*
|
|
75
|
+
* @return The buckets property
|
|
76
|
+
*/
|
|
53
77
|
get buckets() {
|
|
54
78
|
return this._buckets;
|
|
55
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* The size function returns the number of items in the stack.
|
|
82
|
+
* @return The number of values in the set
|
|
83
|
+
*/
|
|
56
84
|
get size() {
|
|
57
85
|
return this._size;
|
|
58
86
|
}
|
|
@@ -66,6 +94,10 @@ class Deque extends base_1.IterableElementBase {
|
|
|
66
94
|
return;
|
|
67
95
|
return this._buckets[this._bucketFirst][this._firstInBucket];
|
|
68
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* The last function returns the last element in the queue.
|
|
99
|
+
* @return The last element in the array
|
|
100
|
+
*/
|
|
69
101
|
get last() {
|
|
70
102
|
if (this.size === 0)
|
|
71
103
|
return;
|
|
@@ -226,7 +258,7 @@ class Deque extends base_1.IterableElementBase {
|
|
|
226
258
|
*begin() {
|
|
227
259
|
let index = 0;
|
|
228
260
|
while (index < this.size) {
|
|
229
|
-
yield this.
|
|
261
|
+
yield this.at(index);
|
|
230
262
|
index++;
|
|
231
263
|
}
|
|
232
264
|
}
|
|
@@ -237,7 +269,7 @@ class Deque extends base_1.IterableElementBase {
|
|
|
237
269
|
*reverseBegin() {
|
|
238
270
|
let index = this.size - 1;
|
|
239
271
|
while (index >= 0) {
|
|
240
|
-
yield this.
|
|
272
|
+
yield this.at(index);
|
|
241
273
|
index--;
|
|
242
274
|
}
|
|
243
275
|
}
|
|
@@ -249,13 +281,13 @@ class Deque extends base_1.IterableElementBase {
|
|
|
249
281
|
* Time Complexity: O(1)
|
|
250
282
|
* Space Complexity: O(1)
|
|
251
283
|
*
|
|
252
|
-
* The `
|
|
284
|
+
* The `at` function retrieves an element at a specified position in an array-like data structure.
|
|
253
285
|
* @param {number} pos - The `pos` parameter represents the position of the element that you want to
|
|
254
286
|
* retrieve from the data structure. It is of type `number` and should be a valid index within the
|
|
255
287
|
* range of the data structure.
|
|
256
288
|
* @returns The element at the specified position in the data structure is being returned.
|
|
257
289
|
*/
|
|
258
|
-
|
|
290
|
+
at(pos) {
|
|
259
291
|
(0, utils_1.rangeCheck)(pos, 0, this.size - 1);
|
|
260
292
|
const { bucketIndex, indexInBucket } = this._getBucketAndPosition(pos);
|
|
261
293
|
return this._buckets[bucketIndex][indexInBucket];
|
|
@@ -313,9 +345,9 @@ class Deque extends base_1.IterableElementBase {
|
|
|
313
345
|
else {
|
|
314
346
|
const arr = [];
|
|
315
347
|
for (let i = pos; i < this.size; ++i) {
|
|
316
|
-
arr.push(this.
|
|
348
|
+
arr.push(this.at(i));
|
|
317
349
|
}
|
|
318
|
-
this.cut(pos - 1);
|
|
350
|
+
this.cut(pos - 1, true);
|
|
319
351
|
for (let i = 0; i < num; ++i)
|
|
320
352
|
this.push(element);
|
|
321
353
|
for (let i = 0; i < arr.length; ++i)
|
|
@@ -335,18 +367,48 @@ class Deque extends base_1.IterableElementBase {
|
|
|
335
367
|
* updated size.
|
|
336
368
|
* @param {number} pos - The `pos` parameter represents the position at which the string should be
|
|
337
369
|
* cut. It is a number that indicates the index of the character where the cut should be made.
|
|
370
|
+
* @param {boolean} isCutSelf - If true, the original deque will not be cut, and return a new deque
|
|
338
371
|
* @returns The method is returning the updated size of the data structure.
|
|
339
372
|
*/
|
|
340
|
-
cut(pos) {
|
|
341
|
-
if (
|
|
342
|
-
|
|
343
|
-
|
|
373
|
+
cut(pos, isCutSelf = false) {
|
|
374
|
+
if (isCutSelf) {
|
|
375
|
+
if (pos < 0) {
|
|
376
|
+
this.clear();
|
|
377
|
+
return this;
|
|
378
|
+
}
|
|
379
|
+
const { bucketIndex, indexInBucket } = this._getBucketAndPosition(pos);
|
|
380
|
+
this._bucketLast = bucketIndex;
|
|
381
|
+
this._lastInBucket = indexInBucket;
|
|
382
|
+
this._size = pos + 1;
|
|
383
|
+
return this;
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
const newDeque = new Deque([], { bucketSize: this._bucketSize });
|
|
387
|
+
for (let i = 0; i <= pos; i++) {
|
|
388
|
+
newDeque.push(this.at(i));
|
|
389
|
+
}
|
|
390
|
+
return newDeque;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
cutRest(pos, isCutSelf = false) {
|
|
394
|
+
if (isCutSelf) {
|
|
395
|
+
if (pos < 0) {
|
|
396
|
+
this.clear();
|
|
397
|
+
return this;
|
|
398
|
+
}
|
|
399
|
+
const { bucketIndex, indexInBucket } = this._getBucketAndPosition(pos);
|
|
400
|
+
this._bucketFirst = bucketIndex;
|
|
401
|
+
this._firstInBucket = indexInBucket;
|
|
402
|
+
this._size = this._size - pos;
|
|
403
|
+
return this;
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
const newDeque = new Deque([], { bucketSize: this._bucketSize });
|
|
407
|
+
for (let i = pos; i < this.size; i++) {
|
|
408
|
+
newDeque.push(this.at(i));
|
|
409
|
+
}
|
|
410
|
+
return newDeque;
|
|
344
411
|
}
|
|
345
|
-
const { bucketIndex, indexInBucket } = this._getBucketAndPosition(pos);
|
|
346
|
-
this._bucketLast = bucketIndex;
|
|
347
|
-
this._lastInBucket = indexInBucket;
|
|
348
|
-
this._size = pos + 1;
|
|
349
|
-
return this.size;
|
|
350
412
|
}
|
|
351
413
|
/**
|
|
352
414
|
* Time Complexity: O(n)
|
|
@@ -403,14 +465,14 @@ class Deque extends base_1.IterableElementBase {
|
|
|
403
465
|
let i = 0;
|
|
404
466
|
let index = 0;
|
|
405
467
|
while (i < size) {
|
|
406
|
-
const oldElement = this.
|
|
468
|
+
const oldElement = this.at(i);
|
|
407
469
|
if (oldElement !== element) {
|
|
408
470
|
this.setAt(index, oldElement);
|
|
409
471
|
index += 1;
|
|
410
472
|
}
|
|
411
473
|
i += 1;
|
|
412
474
|
}
|
|
413
|
-
this.cut(index - 1);
|
|
475
|
+
this.cut(index - 1, true);
|
|
414
476
|
return true;
|
|
415
477
|
}
|
|
416
478
|
/**
|
|
@@ -454,15 +516,15 @@ class Deque extends base_1.IterableElementBase {
|
|
|
454
516
|
return this;
|
|
455
517
|
}
|
|
456
518
|
let index = 1;
|
|
457
|
-
let prev = this.
|
|
519
|
+
let prev = this.at(0);
|
|
458
520
|
for (let i = 1; i < this.size; ++i) {
|
|
459
|
-
const cur = this.
|
|
521
|
+
const cur = this.at(i);
|
|
460
522
|
if (cur !== prev) {
|
|
461
523
|
prev = cur;
|
|
462
524
|
this.setAt(index++, cur);
|
|
463
525
|
}
|
|
464
526
|
}
|
|
465
|
-
this.cut(index - 1);
|
|
527
|
+
this.cut(index - 1, true);
|
|
466
528
|
return this;
|
|
467
529
|
}
|
|
468
530
|
/**
|
|
@@ -482,7 +544,7 @@ class Deque extends base_1.IterableElementBase {
|
|
|
482
544
|
sort(comparator) {
|
|
483
545
|
const arr = [];
|
|
484
546
|
for (let i = 0; i < this.size; ++i) {
|
|
485
|
-
arr.push(this.
|
|
547
|
+
arr.push(this.at(i));
|
|
486
548
|
}
|
|
487
549
|
arr.sort(comparator);
|
|
488
550
|
for (let i = 0; i < this.size; ++i) {
|
|
@@ -526,30 +588,6 @@ class Deque extends base_1.IterableElementBase {
|
|
|
526
588
|
this._bucketLast = newBuckets.length - 1;
|
|
527
589
|
this._buckets = newBuckets;
|
|
528
590
|
}
|
|
529
|
-
/**
|
|
530
|
-
* Time Complexity: O(n)
|
|
531
|
-
* Space Complexity: O(1)
|
|
532
|
-
*/
|
|
533
|
-
/**
|
|
534
|
-
* Time Complexity: O(n)
|
|
535
|
-
* Space Complexity: O(1)
|
|
536
|
-
*
|
|
537
|
-
* The `find` function iterates over the elements in a deque and returns the first element for which
|
|
538
|
-
* the callback function returns true, or undefined if no such element is found.
|
|
539
|
-
* @param callback - A function that takes three parameters: element, index, and deque. It should
|
|
540
|
-
* return a boolean value indicating whether the element satisfies a certain condition.
|
|
541
|
-
* @returns The method `find` returns the first element in the deque that satisfies the condition
|
|
542
|
-
* specified by the callback function. If no element satisfies the condition, it returns `undefined`.
|
|
543
|
-
*/
|
|
544
|
-
find(callback) {
|
|
545
|
-
for (let i = 0; i < this.size; ++i) {
|
|
546
|
-
const element = this.getAt(i);
|
|
547
|
-
if (callback(element, i, this)) {
|
|
548
|
-
return element;
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
return;
|
|
552
|
-
}
|
|
553
591
|
/**
|
|
554
592
|
* Time Complexity: O(n)
|
|
555
593
|
* Space Complexity: O(1)
|
|
@@ -567,7 +605,7 @@ class Deque extends base_1.IterableElementBase {
|
|
|
567
605
|
*/
|
|
568
606
|
indexOf(element) {
|
|
569
607
|
for (let i = 0; i < this.size; ++i) {
|
|
570
|
-
if (this.
|
|
608
|
+
if (this.at(i) === element) {
|
|
571
609
|
return i;
|
|
572
610
|
}
|
|
573
611
|
}
|
|
@@ -587,6 +625,22 @@ class Deque extends base_1.IterableElementBase {
|
|
|
587
625
|
toArray() {
|
|
588
626
|
return [...this];
|
|
589
627
|
}
|
|
628
|
+
/**
|
|
629
|
+
* Time Complexity: O(n)
|
|
630
|
+
* Space Complexity: O(n)
|
|
631
|
+
*/
|
|
632
|
+
/**
|
|
633
|
+
* Time Complexity: O(n)
|
|
634
|
+
* Space Complexity: O(n)
|
|
635
|
+
*
|
|
636
|
+
* The `clone()` function returns a new instance of the `Deque` class with the same elements and
|
|
637
|
+
* bucket size as the original instance.
|
|
638
|
+
* @returns The `clone()` method is returning a new instance of the `Deque` class with the same
|
|
639
|
+
* elements as the original deque (`this`) and the same bucket size.
|
|
640
|
+
*/
|
|
641
|
+
clone() {
|
|
642
|
+
return new Deque([...this], { bucketSize: this.bucketSize });
|
|
643
|
+
}
|
|
590
644
|
/**
|
|
591
645
|
* Time Complexity: O(n)
|
|
592
646
|
* Space Complexity: O(n)
|
|
@@ -704,7 +758,7 @@ class Deque extends base_1.IterableElementBase {
|
|
|
704
758
|
*/
|
|
705
759
|
*_getIterator() {
|
|
706
760
|
for (let i = 0; i < this.size; ++i) {
|
|
707
|
-
yield this.
|
|
761
|
+
yield this.at(i);
|
|
708
762
|
}
|
|
709
763
|
}
|
|
710
764
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deque.js","sourceRoot":"","sources":["../../../../src/data-structures/queue/deque.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deque.js","sourceRoot":"","sources":["../../../../src/data-structures/queue/deque.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,8 +24,16 @@ export declare class Queue<E = any> extends IterableElementBase<E> {
|
|
|
24
24
|
*/
|
|
25
25
|
constructor(elements?: Iterable<E>);
|
|
26
26
|
protected _elements: E[];
|
|
27
|
+
/**
|
|
28
|
+
* The elements function returns the elements of this set.
|
|
29
|
+
* @return An array of the elements in the stack
|
|
30
|
+
*/
|
|
27
31
|
get elements(): E[];
|
|
28
32
|
protected _offset: number;
|
|
33
|
+
/**
|
|
34
|
+
* The offset function returns the offset of the current page.
|
|
35
|
+
* @return The value of the private variable _offset
|
|
36
|
+
*/
|
|
29
37
|
get offset(): number;
|
|
30
38
|
/**
|
|
31
39
|
* The size function returns the number of elements in an array.
|
|
@@ -93,6 +101,18 @@ export declare class Queue<E = any> extends IterableElementBase<E> {
|
|
|
93
101
|
* @returns The function `shift()` returns either the first element in the queue or `undefined` if the queue is empty.
|
|
94
102
|
*/
|
|
95
103
|
shift(): E | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* The delete function removes an element from the list.
|
|
106
|
+
* @param element: E Specify the element to be deleted
|
|
107
|
+
* @return A boolean value indicating whether the element was successfully deleted or not
|
|
108
|
+
*/
|
|
109
|
+
delete(element: E): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* The deleteAt function deletes the element at a given index.
|
|
112
|
+
* @param index: number Determine the index of the element to be deleted
|
|
113
|
+
* @return A boolean value
|
|
114
|
+
*/
|
|
115
|
+
deleteAt(index: number): boolean;
|
|
96
116
|
/**
|
|
97
117
|
* Time Complexity: O(1) - constant time as it retrieves the value at the current offset.
|
|
98
118
|
* Space Complexity: O(1) - no additional space is used.
|
|
@@ -153,7 +173,7 @@ export declare class Queue<E = any> extends IterableElementBase<E> {
|
|
|
153
173
|
*
|
|
154
174
|
* @param index
|
|
155
175
|
*/
|
|
156
|
-
|
|
176
|
+
at(index: number): E | undefined;
|
|
157
177
|
/**
|
|
158
178
|
* Time Complexity: O(1) - constant time as it retrieves the value at the specified index.
|
|
159
179
|
* Space Complexity: O(1) - no additional space is used.
|
|
@@ -183,12 +203,13 @@ export declare class Queue<E = any> extends IterableElementBase<E> {
|
|
|
183
203
|
*/
|
|
184
204
|
clear(): void;
|
|
185
205
|
/**
|
|
186
|
-
* Time Complexity: O(n)
|
|
187
|
-
* Space Complexity: O(n)
|
|
206
|
+
* Time Complexity: O(n)
|
|
207
|
+
* Space Complexity: O(n)
|
|
208
|
+
* where n is the number of elements in the queue. It creates a shallow copy of the internal array. the space required is proportional to the number of elements in the queue.
|
|
188
209
|
*/
|
|
189
210
|
/**
|
|
190
|
-
* Time Complexity: O(n)
|
|
191
|
-
* Space Complexity: O(n)
|
|
211
|
+
* Time Complexity: O(n)
|
|
212
|
+
* Space Complexity: O(n)
|
|
192
213
|
*
|
|
193
214
|
* The `clone()` function returns a new Queue object with the same elements as the original Queue.
|
|
194
215
|
* @returns The `clone()` method is returning a new instance of the `Queue` class.
|
|
@@ -267,4 +288,17 @@ export declare class LinkedListQueue<E = any> extends SinglyLinkedList<E> {
|
|
|
267
288
|
* @returns The `peek()` method is returning the value of the `head` node if it exists, otherwise it returns `undefined`.
|
|
268
289
|
*/
|
|
269
290
|
peek(): E | undefined;
|
|
291
|
+
/**
|
|
292
|
+
* Time Complexity: O(n)
|
|
293
|
+
* Space Complexity: O(n)
|
|
294
|
+
*/
|
|
295
|
+
/**
|
|
296
|
+
* Time Complexity: O(n)
|
|
297
|
+
* Space Complexity: O(n)
|
|
298
|
+
* The `clone` function returns a new instance of the `LinkedListQueue` class with the same values as
|
|
299
|
+
* the current instance.
|
|
300
|
+
* @returns The `clone()` method is returning a new instance of `LinkedListQueue` with the same
|
|
301
|
+
* values as the original `LinkedListQueue`.
|
|
302
|
+
*/
|
|
303
|
+
clone(): LinkedListQueue<E>;
|
|
270
304
|
}
|
|
@@ -28,9 +28,17 @@ class Queue extends base_1.IterableElementBase {
|
|
|
28
28
|
this.push(el);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* The elements function returns the elements of this set.
|
|
33
|
+
* @return An array of the elements in the stack
|
|
34
|
+
*/
|
|
31
35
|
get elements() {
|
|
32
36
|
return this._elements;
|
|
33
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* The offset function returns the offset of the current page.
|
|
40
|
+
* @return The value of the private variable _offset
|
|
41
|
+
*/
|
|
34
42
|
get offset() {
|
|
35
43
|
return this._offset;
|
|
36
44
|
}
|
|
@@ -123,6 +131,24 @@ class Queue extends base_1.IterableElementBase {
|
|
|
123
131
|
this._offset = 0;
|
|
124
132
|
return first;
|
|
125
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* The delete function removes an element from the list.
|
|
136
|
+
* @param element: E Specify the element to be deleted
|
|
137
|
+
* @return A boolean value indicating whether the element was successfully deleted or not
|
|
138
|
+
*/
|
|
139
|
+
delete(element) {
|
|
140
|
+
const index = this.elements.indexOf(element);
|
|
141
|
+
return this.deleteAt(index);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* The deleteAt function deletes the element at a given index.
|
|
145
|
+
* @param index: number Determine the index of the element to be deleted
|
|
146
|
+
* @return A boolean value
|
|
147
|
+
*/
|
|
148
|
+
deleteAt(index) {
|
|
149
|
+
const spliced = this.elements.splice(index, 1);
|
|
150
|
+
return spliced.length === 1;
|
|
151
|
+
}
|
|
126
152
|
/**
|
|
127
153
|
* Time Complexity: O(1) - constant time as it retrieves the value at the current offset.
|
|
128
154
|
* Space Complexity: O(1) - no additional space is used.
|
|
@@ -191,7 +217,7 @@ class Queue extends base_1.IterableElementBase {
|
|
|
191
217
|
*
|
|
192
218
|
* @param index
|
|
193
219
|
*/
|
|
194
|
-
|
|
220
|
+
at(index) {
|
|
195
221
|
return this.elements[index];
|
|
196
222
|
}
|
|
197
223
|
/**
|
|
@@ -230,12 +256,13 @@ class Queue extends base_1.IterableElementBase {
|
|
|
230
256
|
this._offset = 0;
|
|
231
257
|
}
|
|
232
258
|
/**
|
|
233
|
-
* Time Complexity: O(n)
|
|
234
|
-
* Space Complexity: O(n)
|
|
259
|
+
* Time Complexity: O(n)
|
|
260
|
+
* Space Complexity: O(n)
|
|
261
|
+
* where n is the number of elements in the queue. It creates a shallow copy of the internal array. the space required is proportional to the number of elements in the queue.
|
|
235
262
|
*/
|
|
236
263
|
/**
|
|
237
|
-
* Time Complexity: O(n)
|
|
238
|
-
* Space Complexity: O(n)
|
|
264
|
+
* Time Complexity: O(n)
|
|
265
|
+
* Space Complexity: O(n)
|
|
239
266
|
*
|
|
240
267
|
* The `clone()` function returns a new Queue object with the same elements as the original Queue.
|
|
241
268
|
* @returns The `clone()` method is returning a new instance of the `Queue` class.
|
|
@@ -348,6 +375,21 @@ class LinkedListQueue extends linked_list_1.SinglyLinkedList {
|
|
|
348
375
|
peek() {
|
|
349
376
|
return this.first;
|
|
350
377
|
}
|
|
378
|
+
/**
|
|
379
|
+
* Time Complexity: O(n)
|
|
380
|
+
* Space Complexity: O(n)
|
|
381
|
+
*/
|
|
382
|
+
/**
|
|
383
|
+
* Time Complexity: O(n)
|
|
384
|
+
* Space Complexity: O(n)
|
|
385
|
+
* The `clone` function returns a new instance of the `LinkedListQueue` class with the same values as
|
|
386
|
+
* the current instance.
|
|
387
|
+
* @returns The `clone()` method is returning a new instance of `LinkedListQueue` with the same
|
|
388
|
+
* values as the original `LinkedListQueue`.
|
|
389
|
+
*/
|
|
390
|
+
clone() {
|
|
391
|
+
return new LinkedListQueue(this.values());
|
|
392
|
+
}
|
|
351
393
|
}
|
|
352
394
|
exports.LinkedListQueue = LinkedListQueue;
|
|
353
395
|
//# sourceMappingURL=queue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../../src/data-structures/queue/queue.ts"],"names":[],"mappings":";;;AAMA,kCAA8C;AAC9C,gDAAkD;AAElD;;;;;;;;GAQG;AACH,MAAa,KAAe,SAAQ,0BAAsB;IACxD;;;;;OAKG;IACH,YAAY,WAAwB,EAAE;QACpC,KAAK,EAAE,CAAC;QAMA,cAAS,GAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../../src/data-structures/queue/queue.ts"],"names":[],"mappings":"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"}
|