data-structure-typed 1.49.0 → 1.49.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 +1 -1
- package/README.md +16 -16
- package/README_zh-CN.md +2 -2
- package/benchmark/report.html +46 -1
- package/benchmark/report.json +457 -22
- package/dist/cjs/data-structures/base/iterable-base.d.ts +11 -0
- package/dist/cjs/data-structures/base/iterable-base.js +21 -0
- package/dist/cjs/data-structures/base/iterable-base.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +10 -12
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +3 -4
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +58 -58
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +6 -6
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +15 -15
- package/dist/cjs/data-structures/binary-tree/bst.js +3 -3
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +11 -11
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +5 -6
- package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multimap.d.ts +14 -14
- package/dist/cjs/data-structures/binary-tree/tree-multimap.js +3 -3
- package/dist/cjs/data-structures/binary-tree/tree-multimap.js.map +1 -1
- package/dist/cjs/data-structures/graph/abstract-graph.d.ts +9 -3
- package/dist/cjs/data-structures/graph/abstract-graph.js +27 -31
- package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/directed-graph.d.ts +8 -1
- package/dist/cjs/data-structures/graph/directed-graph.js +1 -8
- package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/map-graph.d.ts +1 -1
- package/dist/cjs/data-structures/graph/undirected-graph.d.ts +8 -1
- package/dist/cjs/data-structures/graph/undirected-graph.js +1 -8
- package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -1
- package/dist/cjs/data-structures/hash/hash-map.d.ts +22 -10
- package/dist/cjs/data-structures/hash/hash-map.js +28 -16
- package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
- package/dist/cjs/data-structures/hash/hash-table.d.ts +2 -2
- package/dist/cjs/data-structures/hash/hash-table.js.map +1 -1
- package/dist/cjs/data-structures/heap/heap.d.ts +20 -38
- package/dist/cjs/data-structures/heap/heap.js +22 -42
- package/dist/cjs/data-structures/heap/heap.js.map +1 -1
- package/dist/cjs/data-structures/heap/max-heap.d.ts +11 -1
- package/dist/cjs/data-structures/heap/max-heap.js +10 -7
- package/dist/cjs/data-structures/heap/max-heap.js.map +1 -1
- package/dist/cjs/data-structures/heap/min-heap.d.ts +11 -1
- package/dist/cjs/data-structures/heap/min-heap.js +10 -7
- package/dist/cjs/data-structures/heap/min-heap.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +95 -95
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +132 -136
- 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 +18 -23
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js +42 -49
- 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 +2 -2
- package/dist/cjs/data-structures/linked-list/skip-linked-list.js +2 -2
- package/dist/cjs/data-structures/linked-list/skip-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.d.ts +1 -1
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.js +0 -7
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.js.map +1 -1
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.d.ts +1 -1
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.js +0 -7
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.js.map +1 -1
- package/dist/cjs/data-structures/priority-queue/priority-queue.d.ts +9 -1
- package/dist/cjs/data-structures/priority-queue/priority-queue.js +8 -7
- package/dist/cjs/data-structures/priority-queue/priority-queue.js.map +1 -1
- package/dist/cjs/data-structures/queue/deque.d.ts +76 -80
- package/dist/cjs/data-structures/queue/deque.js +106 -122
- package/dist/cjs/data-structures/queue/deque.js.map +1 -1
- package/dist/cjs/data-structures/queue/queue.d.ts +30 -16
- package/dist/cjs/data-structures/queue/queue.js +31 -24
- package/dist/cjs/data-structures/queue/queue.js.map +1 -1
- package/dist/cjs/data-structures/stack/stack.d.ts +17 -8
- package/dist/cjs/data-structures/stack/stack.js +9 -9
- package/dist/cjs/data-structures/stack/stack.js.map +1 -1
- package/dist/cjs/data-structures/trie/trie.d.ts +14 -5
- package/dist/cjs/data-structures/trie/trie.js +13 -13
- package/dist/cjs/data-structures/trie/trie.js.map +1 -1
- package/dist/cjs/interfaces/binary-tree.d.ts +4 -4
- package/dist/cjs/types/common.d.ts +32 -8
- package/dist/cjs/types/common.js +22 -1
- package/dist/cjs/types/common.js.map +1 -1
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +1 -24
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.js +0 -22
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/types/data-structures/binary-tree/rb-tree.d.ts +1 -1
- package/dist/cjs/types/data-structures/binary-tree/tree-multimap.d.ts +1 -1
- package/dist/mjs/data-structures/base/iterable-base.d.ts +11 -0
- package/dist/mjs/data-structures/base/iterable-base.js +21 -0
- package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +10 -12
- package/dist/mjs/data-structures/binary-tree/avl-tree.js +3 -4
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +58 -58
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +6 -6
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +15 -15
- package/dist/mjs/data-structures/binary-tree/bst.js +3 -3
- package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +11 -11
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +5 -6
- package/dist/mjs/data-structures/binary-tree/tree-multimap.d.ts +14 -14
- package/dist/mjs/data-structures/binary-tree/tree-multimap.js +3 -3
- package/dist/mjs/data-structures/graph/abstract-graph.d.ts +9 -3
- package/dist/mjs/data-structures/graph/abstract-graph.js +27 -31
- package/dist/mjs/data-structures/graph/directed-graph.d.ts +8 -1
- package/dist/mjs/data-structures/graph/directed-graph.js +1 -8
- package/dist/mjs/data-structures/graph/map-graph.d.ts +1 -1
- package/dist/mjs/data-structures/graph/undirected-graph.d.ts +8 -1
- package/dist/mjs/data-structures/graph/undirected-graph.js +1 -8
- package/dist/mjs/data-structures/hash/hash-map.d.ts +22 -10
- package/dist/mjs/data-structures/hash/hash-map.js +27 -15
- package/dist/mjs/data-structures/hash/hash-table.d.ts +2 -2
- package/dist/mjs/data-structures/heap/heap.d.ts +20 -38
- package/dist/mjs/data-structures/heap/heap.js +23 -43
- package/dist/mjs/data-structures/heap/max-heap.d.ts +11 -1
- package/dist/mjs/data-structures/heap/max-heap.js +9 -6
- package/dist/mjs/data-structures/heap/min-heap.d.ts +11 -1
- package/dist/mjs/data-structures/heap/min-heap.js +9 -6
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +95 -95
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +132 -136
- package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +18 -23
- package/dist/mjs/data-structures/linked-list/singly-linked-list.js +43 -50
- package/dist/mjs/data-structures/linked-list/skip-linked-list.d.ts +2 -2
- package/dist/mjs/data-structures/linked-list/skip-linked-list.js +2 -2
- package/dist/mjs/data-structures/priority-queue/max-priority-queue.d.ts +1 -1
- package/dist/mjs/data-structures/priority-queue/max-priority-queue.js +0 -7
- package/dist/mjs/data-structures/priority-queue/min-priority-queue.d.ts +1 -1
- package/dist/mjs/data-structures/priority-queue/min-priority-queue.js +0 -7
- package/dist/mjs/data-structures/priority-queue/priority-queue.d.ts +9 -1
- package/dist/mjs/data-structures/priority-queue/priority-queue.js +7 -6
- package/dist/mjs/data-structures/queue/deque.d.ts +76 -80
- package/dist/mjs/data-structures/queue/deque.js +106 -122
- package/dist/mjs/data-structures/queue/queue.d.ts +30 -16
- package/dist/mjs/data-structures/queue/queue.js +31 -24
- package/dist/mjs/data-structures/stack/stack.d.ts +17 -8
- package/dist/mjs/data-structures/stack/stack.js +10 -10
- package/dist/mjs/data-structures/trie/trie.d.ts +14 -5
- package/dist/mjs/data-structures/trie/trie.js +14 -14
- package/dist/mjs/interfaces/binary-tree.d.ts +4 -4
- package/dist/mjs/types/common.d.ts +32 -8
- package/dist/mjs/types/common.js +21 -0
- package/dist/mjs/types/data-structures/binary-tree/binary-tree.d.ts +1 -24
- package/dist/mjs/types/data-structures/binary-tree/binary-tree.js +1 -21
- package/dist/mjs/types/data-structures/binary-tree/rb-tree.d.ts +1 -1
- package/dist/mjs/types/data-structures/binary-tree/tree-multimap.d.ts +1 -1
- package/dist/umd/data-structure-typed.js +533 -558
- package/dist/umd/data-structure-typed.min.js +2 -2
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +1 -1
- package/src/data-structures/base/iterable-base.ts +24 -0
- package/src/data-structures/binary-tree/avl-tree.ts +14 -14
- package/src/data-structures/binary-tree/binary-tree.ts +74 -77
- package/src/data-structures/binary-tree/bst.ts +18 -17
- package/src/data-structures/binary-tree/rb-tree.ts +17 -18
- package/src/data-structures/binary-tree/tree-multimap.ts +22 -20
- package/src/data-structures/graph/abstract-graph.ts +35 -25
- package/src/data-structures/graph/directed-graph.ts +2 -2
- package/src/data-structures/graph/map-graph.ts +1 -1
- package/src/data-structures/graph/undirected-graph.ts +2 -2
- package/src/data-structures/hash/hash-map.ts +40 -24
- package/src/data-structures/hash/hash-table.ts +3 -3
- package/src/data-structures/heap/heap.ts +33 -60
- package/src/data-structures/heap/max-heap.ts +11 -2
- package/src/data-structures/heap/min-heap.ts +11 -2
- package/src/data-structures/linked-list/doubly-linked-list.ts +147 -145
- package/src/data-structures/linked-list/singly-linked-list.ts +52 -52
- package/src/data-structures/linked-list/skip-linked-list.ts +2 -2
- package/src/data-structures/priority-queue/max-priority-queue.ts +1 -1
- package/src/data-structures/priority-queue/min-priority-queue.ts +1 -1
- package/src/data-structures/priority-queue/priority-queue.ts +9 -2
- package/src/data-structures/queue/deque.ts +129 -144
- package/src/data-structures/queue/queue.ts +37 -26
- package/src/data-structures/stack/stack.ts +20 -14
- package/src/data-structures/trie/trie.ts +18 -13
- package/src/interfaces/binary-tree.ts +5 -5
- package/src/types/common.ts +37 -12
- package/src/types/data-structures/binary-tree/avl-tree.ts +0 -1
- package/src/types/data-structures/binary-tree/binary-tree.ts +1 -26
- package/src/types/data-structures/binary-tree/bst.ts +0 -1
- package/src/types/data-structures/binary-tree/rb-tree.ts +1 -1
- package/src/types/data-structures/binary-tree/tree-multimap.ts +1 -1
- package/test/performance/data-structures/comparison/comparison.test.ts +6 -6
- package/test/performance/data-structures/heap/heap.test.ts +2 -2
- package/test/performance/data-structures/linked-list/doubly-linked-list.test.ts +2 -2
- package/test/performance/data-structures/linked-list/singly-linked-list.test.ts +2 -2
- package/test/performance/data-structures/priority-queue/priority-queue.test.ts +2 -2
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +2 -2
- package/test/unit/data-structures/graph/directed-graph.test.ts +21 -1
- package/test/unit/data-structures/graph/undirected-graph.test.ts +39 -1
- package/test/unit/data-structures/hash/hash-map.test.ts +2 -2
- package/test/unit/data-structures/heap/heap.test.ts +1 -1
- package/test/unit/data-structures/heap/min-heap.test.ts +1 -1
- package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +30 -30
- package/test/unit/data-structures/linked-list/linked-list.test.ts +1 -1
- package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +21 -21
- package/test/unit/data-structures/linked-list/skip-list.test.ts +2 -2
- package/test/unit/data-structures/queue/deque.test.ts +5 -5
- package/test/unit/data-structures/queue/queue.test.ts +4 -4
- package/test/unit/data-structures/trie/trie.test.ts +1 -1
|
@@ -2,13 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SinglyLinkedList = exports.SinglyLinkedListNode = void 0;
|
|
4
4
|
const base_1 = require("../base");
|
|
5
|
-
/**
|
|
6
|
-
* data-structure-typed
|
|
7
|
-
*
|
|
8
|
-
* @author Tyler Zeng
|
|
9
|
-
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
10
|
-
* @license MIT License
|
|
11
|
-
*/
|
|
12
5
|
class SinglyLinkedListNode {
|
|
13
6
|
/**
|
|
14
7
|
* The constructor function initializes an instance of a class with a given value and sets the next property to undefined.
|
|
@@ -29,7 +22,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
29
22
|
super();
|
|
30
23
|
this._head = undefined;
|
|
31
24
|
this._tail = undefined;
|
|
32
|
-
this.
|
|
25
|
+
this._size = 0;
|
|
33
26
|
if (elements) {
|
|
34
27
|
for (const el of elements)
|
|
35
28
|
this.push(el);
|
|
@@ -41,8 +34,8 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
41
34
|
get tail() {
|
|
42
35
|
return this._tail;
|
|
43
36
|
}
|
|
44
|
-
get
|
|
45
|
-
return this.
|
|
37
|
+
get size() {
|
|
38
|
+
return this._size;
|
|
46
39
|
}
|
|
47
40
|
/**
|
|
48
41
|
* Time Complexity: O(n) - Linear time, where n is the length of the input array, as it performs a loop to push each element into the linked list.
|
|
@@ -86,7 +79,8 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
86
79
|
this.tail.next = newNode;
|
|
87
80
|
this._tail = newNode;
|
|
88
81
|
}
|
|
89
|
-
this.
|
|
82
|
+
this._size++;
|
|
83
|
+
return true;
|
|
90
84
|
}
|
|
91
85
|
/**
|
|
92
86
|
* Time Complexity: O(1) - Constant time, as it involves basic pointer adjustments.
|
|
@@ -101,7 +95,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
101
95
|
* any type (E) as specified in the generic type declaration of the class or function.
|
|
102
96
|
*/
|
|
103
97
|
addLast(value) {
|
|
104
|
-
this.push(value);
|
|
98
|
+
return this.push(value);
|
|
105
99
|
}
|
|
106
100
|
/**
|
|
107
101
|
* Time Complexity: O(n) - Linear time in the worst case, as it may need to traverse the list to find the last element.
|
|
@@ -123,7 +117,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
123
117
|
const value = this.head.value;
|
|
124
118
|
this._head = undefined;
|
|
125
119
|
this._tail = undefined;
|
|
126
|
-
this.
|
|
120
|
+
this._size--;
|
|
127
121
|
return value;
|
|
128
122
|
}
|
|
129
123
|
let current = this.head;
|
|
@@ -133,7 +127,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
133
127
|
const value = this.tail.value;
|
|
134
128
|
current.next = undefined;
|
|
135
129
|
this._tail = current;
|
|
136
|
-
this.
|
|
130
|
+
this._size--;
|
|
137
131
|
return value;
|
|
138
132
|
}
|
|
139
133
|
/**
|
|
@@ -168,7 +162,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
168
162
|
return undefined;
|
|
169
163
|
const removedNode = this.head;
|
|
170
164
|
this._head = this.head.next;
|
|
171
|
-
this.
|
|
165
|
+
this._size--;
|
|
172
166
|
return removedNode.value;
|
|
173
167
|
}
|
|
174
168
|
/**
|
|
@@ -207,7 +201,8 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
207
201
|
newNode.next = this.head;
|
|
208
202
|
this._head = newNode;
|
|
209
203
|
}
|
|
210
|
-
this.
|
|
204
|
+
this._size++;
|
|
205
|
+
return true;
|
|
211
206
|
}
|
|
212
207
|
/**
|
|
213
208
|
* Time Complexity: O(1) - Constant time, as it involves adjusting pointers at the head.
|
|
@@ -222,7 +217,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
222
217
|
* linked list.
|
|
223
218
|
*/
|
|
224
219
|
addFirst(value) {
|
|
225
|
-
this.unshift(value);
|
|
220
|
+
return this.unshift(value);
|
|
226
221
|
}
|
|
227
222
|
/**
|
|
228
223
|
* Time Complexity: O(n) - Linear time, where n is the index, as it may need to traverse the list to find the desired node.
|
|
@@ -239,7 +234,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
239
234
|
* `undefined` if the index is out of bounds.
|
|
240
235
|
*/
|
|
241
236
|
getAt(index) {
|
|
242
|
-
if (index < 0 || index >= this.
|
|
237
|
+
if (index < 0 || index >= this.size)
|
|
243
238
|
return undefined;
|
|
244
239
|
let current = this.head;
|
|
245
240
|
for (let i = 0; i < index; i++) {
|
|
@@ -283,17 +278,21 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
283
278
|
* bounds.
|
|
284
279
|
*/
|
|
285
280
|
deleteAt(index) {
|
|
286
|
-
if (index < 0 || index >= this.
|
|
287
|
-
return
|
|
288
|
-
if (index === 0)
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
281
|
+
if (index < 0 || index >= this.size)
|
|
282
|
+
return false;
|
|
283
|
+
if (index === 0) {
|
|
284
|
+
this.shift();
|
|
285
|
+
return true;
|
|
286
|
+
}
|
|
287
|
+
if (index === this.size - 1) {
|
|
288
|
+
this.pop();
|
|
289
|
+
return true;
|
|
290
|
+
}
|
|
292
291
|
const prevNode = this.getNodeAt(index - 1);
|
|
293
292
|
const removedNode = prevNode.next;
|
|
294
293
|
prevNode.next = removedNode.next;
|
|
295
|
-
this.
|
|
296
|
-
return
|
|
294
|
+
this._size--;
|
|
295
|
+
return true;
|
|
297
296
|
}
|
|
298
297
|
/**
|
|
299
298
|
* Time Complexity: O(n) - Linear time, where n is the index, as it may need to traverse the list to find the desired node.
|
|
@@ -334,7 +333,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
334
333
|
this._tail = prev;
|
|
335
334
|
}
|
|
336
335
|
}
|
|
337
|
-
this.
|
|
336
|
+
this._size--;
|
|
338
337
|
return true;
|
|
339
338
|
}
|
|
340
339
|
prev = current;
|
|
@@ -350,7 +349,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
350
349
|
* Time Complexity: O(n) - Linear time, where n is the index, as it may need to traverse the list to find the desired node.
|
|
351
350
|
* Space Complexity: O(1) - Constant space.
|
|
352
351
|
*
|
|
353
|
-
* The `
|
|
352
|
+
* The `addAt` function inserts a value at a specified index in a singly linked list.
|
|
354
353
|
* @param {number} index - The index parameter represents the position at which the new value should be inserted in the
|
|
355
354
|
* linked list. It is of type number.
|
|
356
355
|
* @param {E} value - The `value` parameter represents the value that you want to insert into the linked list at the
|
|
@@ -358,14 +357,14 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
358
357
|
* @returns The `insert` method returns a boolean value. It returns `true` if the insertion is successful, and `false`
|
|
359
358
|
* if the index is out of bounds.
|
|
360
359
|
*/
|
|
361
|
-
|
|
362
|
-
if (index < 0 || index > this.
|
|
360
|
+
addAt(index, value) {
|
|
361
|
+
if (index < 0 || index > this.size)
|
|
363
362
|
return false;
|
|
364
363
|
if (index === 0) {
|
|
365
364
|
this.unshift(value);
|
|
366
365
|
return true;
|
|
367
366
|
}
|
|
368
|
-
if (index === this.
|
|
367
|
+
if (index === this.size) {
|
|
369
368
|
this.push(value);
|
|
370
369
|
return true;
|
|
371
370
|
}
|
|
@@ -373,7 +372,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
373
372
|
const prevNode = this.getNodeAt(index - 1);
|
|
374
373
|
newNode.next = prevNode.next;
|
|
375
374
|
prevNode.next = newNode;
|
|
376
|
-
this.
|
|
375
|
+
this._size++;
|
|
377
376
|
return true;
|
|
378
377
|
}
|
|
379
378
|
/**
|
|
@@ -382,7 +381,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
382
381
|
* @returns A boolean value indicating whether the length of the object is equal to 0.
|
|
383
382
|
*/
|
|
384
383
|
isEmpty() {
|
|
385
|
-
return this.
|
|
384
|
+
return this.size === 0;
|
|
386
385
|
}
|
|
387
386
|
/**
|
|
388
387
|
* The `clear` function resets the linked list by setting the head, tail, and length to undefined and 0 respectively.
|
|
@@ -390,7 +389,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
390
389
|
clear() {
|
|
391
390
|
this._head = undefined;
|
|
392
391
|
this._tail = undefined;
|
|
393
|
-
this.
|
|
392
|
+
this._size = 0;
|
|
394
393
|
}
|
|
395
394
|
/**
|
|
396
395
|
* Time Complexity: O(n) - Linear time, where n is the length of the list, as it needs to traverse the entire list to convert it to an array.
|
|
@@ -425,7 +424,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
425
424
|
*/
|
|
426
425
|
reverse() {
|
|
427
426
|
if (!this.head || this.head === this.tail)
|
|
428
|
-
return;
|
|
427
|
+
return this;
|
|
429
428
|
let prev = undefined;
|
|
430
429
|
let current = this.head;
|
|
431
430
|
let next = undefined;
|
|
@@ -436,6 +435,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
436
435
|
current = next;
|
|
437
436
|
}
|
|
438
437
|
[this._head, this._tail] = [this.tail, this.head];
|
|
438
|
+
return this;
|
|
439
439
|
}
|
|
440
440
|
/**
|
|
441
441
|
* Time Complexity: O(n) - Linear time, where n is the length of the list, as it needs to reverse the pointers of each node.
|
|
@@ -518,14 +518,14 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
518
518
|
* Time Complexity: O(n) - Linear time, where n is the length of the list, as it needs to reverse the pointers of each node.
|
|
519
519
|
* Space Complexity: O(1) - Constant space.
|
|
520
520
|
*
|
|
521
|
-
* The `
|
|
521
|
+
* The `addBefore` function inserts a new value before an existing value in a singly linked list.
|
|
522
522
|
* @param {E | SinglyLinkedListNode<E>} existingValueOrNode - The existing value or node that you want to insert the
|
|
523
523
|
* new value before. It can be either the value itself or a node containing the value in the linked list.
|
|
524
524
|
* @param {E} newValue - The `newValue` parameter represents the value that you want to insert into the linked list.
|
|
525
|
-
* @returns The method `
|
|
525
|
+
* @returns The method `addBefore` returns a boolean value. It returns `true` if the new value was successfully
|
|
526
526
|
* inserted before the existing value, and `false` otherwise.
|
|
527
527
|
*/
|
|
528
|
-
|
|
528
|
+
addBefore(existingValueOrNode, newValue) {
|
|
529
529
|
if (!this.head)
|
|
530
530
|
return false;
|
|
531
531
|
let existingValue;
|
|
@@ -545,7 +545,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
545
545
|
const newNode = new SinglyLinkedListNode(newValue);
|
|
546
546
|
newNode.next = current.next;
|
|
547
547
|
current.next = newNode;
|
|
548
|
-
this.
|
|
548
|
+
this._size++;
|
|
549
549
|
return true;
|
|
550
550
|
}
|
|
551
551
|
current = current.next;
|
|
@@ -560,14 +560,14 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
560
560
|
* Time Complexity: O(n) - Linear time, where n is the length of the list, as it needs to reverse the pointers of each node.
|
|
561
561
|
* Space Complexity: O(1) - Constant space.
|
|
562
562
|
*
|
|
563
|
-
* The `
|
|
563
|
+
* The `addAfter` function inserts a new node with a given value after an existing node in a singly linked list.
|
|
564
564
|
* @param {E | SinglyLinkedListNode<E>} existingValueOrNode - The existing value or node in the linked list after which
|
|
565
565
|
* the new value will be inserted. It can be either the value of the existing node or the existing node itself.
|
|
566
566
|
* @param {E} newValue - The value that you want to insert into the linked list after the existing value or node.
|
|
567
567
|
* @returns The method returns a boolean value. It returns true if the new value was successfully inserted after the
|
|
568
568
|
* existing value or node, and false if the existing value or node was not found in the linked list.
|
|
569
569
|
*/
|
|
570
|
-
|
|
570
|
+
addAfter(existingValueOrNode, newValue) {
|
|
571
571
|
let existingNode;
|
|
572
572
|
if (existingValueOrNode instanceof SinglyLinkedListNode) {
|
|
573
573
|
existingNode = existingValueOrNode;
|
|
@@ -582,7 +582,7 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
582
582
|
if (existingNode === this.tail) {
|
|
583
583
|
this._tail = newNode;
|
|
584
584
|
}
|
|
585
|
-
this.
|
|
585
|
+
this._size++;
|
|
586
586
|
return true;
|
|
587
587
|
}
|
|
588
588
|
return false;
|
|
@@ -669,13 +669,6 @@ class SinglyLinkedList extends base_1.IterableElementBase {
|
|
|
669
669
|
}
|
|
670
670
|
return mappedList;
|
|
671
671
|
}
|
|
672
|
-
/**
|
|
673
|
-
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
674
|
-
* Space Complexity: O(n)
|
|
675
|
-
*/
|
|
676
|
-
print() {
|
|
677
|
-
console.log([...this]);
|
|
678
|
-
}
|
|
679
672
|
*_getIterator() {
|
|
680
673
|
let current = this.head;
|
|
681
674
|
while (current) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singly-linked-list.js","sourceRoot":"","sources":["../../../../src/data-structures/linked-list/singly-linked-list.ts"],"names":[],"mappings":";;;AAAA,kCAA8C;AAG9C;;;;;;GAMG;AACH,MAAa,oBAAoB;IAI/B;;;;OAIG;IACH,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;CACF;AAbD,oDAaC;AAED,MAAa,gBAA0B,SAAQ,0BAAsB;IACnE;;OAEG;IACH,YAAY,QAAsB;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,EAAE,IAAI,QAAQ;gBACvB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAID,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAID,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAID,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS,CAAI,IAAS;QAC3B,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAK,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,IAAI,CAAC,KAAQ;QACX,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,OAAO,CAAC,KAAQ;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACH,GAAG;QACD,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO,GAAG,OAAO,CAAC,IAAK,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAK,CAAC,KAAK,CAAC;QAC/B,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,OAAO,CAAC,KAAQ;QACd,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAQ;QACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAa;QACjB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACxD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,OAAO,GAAG,OAAQ,CAAC,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,OAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;OASG;IACH,SAAS,CAAC,KAAa;QACrB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,OAAO,GAAG,OAAQ,CAAC,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACxD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;QAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,QAAS,CAAC,IAAI,CAAC;QACnC,QAAS,CAAC,IAAI,GAAG,WAAY,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,WAAY,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;OASG;IACH,MAAM,CAAC,WAAgE;QACrE,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC/B,IAAI,KAAQ,CAAC;QACb,IAAI,WAAW,YAAY,oBAAoB,EAAE,CAAC;YAChD,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,WAAW,CAAC;QACtB,CAAC;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,EACrB,IAAI,GAAG,SAAS,CAAC;QAEnB,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC1B,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;oBACzB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBACzB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBACpB,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,GAAG,OAAO,CAAC;YACf,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,KAAa,EAAE,KAAQ;QAC9B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,GAAG,QAAS,CAAC,IAAI,CAAC;QAC9B,QAAS,CAAC,IAAI,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,OAAO;QACL,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO;QAElD,IAAI,IAAI,GAAwC,SAAS,CAAC;QAC1D,IAAI,OAAO,GAAwC,IAAI,CAAC,IAAI,CAAC;QAC7D,IAAI,IAAI,GAAwC,SAAS,CAAC;QAE1D,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACpB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,IAAI,GAAG,OAAO,CAAC;YACf,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,IAAK,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;OASG;IACH,IAAI,CAAC,QAA+B;QAClC,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,KAAK,CAAC;YACvB,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACH,OAAO,CAAC,KAAQ;QACd,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,EAAE,CAAC;YACR,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;OASG;IACH,OAAO,CAAC,KAAQ;QACd,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;OAUG;IACH,YAAY,CAAC,mBAAgD,EAAE,QAAW;QACxE,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAE7B,IAAI,aAAgB,CAAC;QACrB,IAAI,mBAAmB,YAAY,oBAAoB,EAAE,CAAC;YACxD,aAAa,GAAG,mBAAmB,CAAC,KAAK,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,mBAAmB,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBACnD,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC5B,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;gBACvB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;OAUG;IACH,WAAW,CAAC,mBAAgD,EAAE,QAAW;QACvE,IAAI,YAAqD,CAAC;QAE1D,IAAI,mBAAmB,YAAY,oBAAoB,EAAE,CAAC;YACxD,YAAY,GAAG,mBAAmB,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACjC,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC;YAC5B,IAAI,YAAY,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;YACvB,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,gBAAgB,CAAC,KAAQ;QACvB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC5B,KAAK,EAAE,CAAC;YACV,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,QAAqC,EAAE,OAAa;QACzD,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAK,CAAC;QAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;gBACjD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAGD;;;OAGG;IACH;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAI,QAA+B,EAAE,OAAa;QACnD,MAAM,UAAU,GAAG,IAAI,gBAAgB,EAAK,CAAC;QAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9D,KAAK,EAAE,CAAC;QACV,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IAEH,KAAK;QACH,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACzB,CAAC;IAEQ,CAAE,YAAY;QACrB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,OAAO,CAAC,KAAK,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AA3tBD,4CA2tBC"}
|
|
1
|
+
{"version":3,"file":"singly-linked-list.js","sourceRoot":"","sources":["../../../../src/data-structures/linked-list/singly-linked-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,7 +90,7 @@ export declare class SkipList<K, V> {
|
|
|
90
90
|
* Get the value of the first element (the smallest element) in the Skip List.
|
|
91
91
|
* @returns The value of the first element, or undefined if the Skip List is empty.
|
|
92
92
|
*/
|
|
93
|
-
|
|
93
|
+
get first(): V | undefined;
|
|
94
94
|
/**
|
|
95
95
|
* Time Complexity: O(log n) - where n is the number of elements in the SkipList, as it traverses the levels of the SkipList.
|
|
96
96
|
* Space Complexity: O(1) - constant space, as it uses a fixed amount of space regardless of the size of the SkipList.
|
|
@@ -102,7 +102,7 @@ export declare class SkipList<K, V> {
|
|
|
102
102
|
* Get the value of the last element (the largest element) in the Skip List.
|
|
103
103
|
* @returns The value of the last element, or undefined if the Skip List is empty.
|
|
104
104
|
*/
|
|
105
|
-
|
|
105
|
+
get last(): V | undefined;
|
|
106
106
|
/**
|
|
107
107
|
* Time Complexity: O(log n) - where n is the number of elements in the SkipList, as it traverses the levels of the SkipList.
|
|
108
108
|
* Space Complexity: O(1) - constant space, as it uses a fixed amount of space regardless of the size of the SkipList.
|
|
@@ -158,7 +158,7 @@ class SkipList {
|
|
|
158
158
|
* Get the value of the first element (the smallest element) in the Skip List.
|
|
159
159
|
* @returns The value of the first element, or undefined if the Skip List is empty.
|
|
160
160
|
*/
|
|
161
|
-
|
|
161
|
+
get first() {
|
|
162
162
|
const firstNode = this.head.forward[0];
|
|
163
163
|
return firstNode ? firstNode.value : undefined;
|
|
164
164
|
}
|
|
@@ -173,7 +173,7 @@ class SkipList {
|
|
|
173
173
|
* Get the value of the last element (the largest element) in the Skip List.
|
|
174
174
|
* @returns The value of the last element, or undefined if the Skip List is empty.
|
|
175
175
|
*/
|
|
176
|
-
|
|
176
|
+
get last() {
|
|
177
177
|
let current = this.head;
|
|
178
178
|
for (let i = this.level - 1; i >= 0; i--) {
|
|
179
179
|
while (current.forward[i]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skip-linked-list.js","sourceRoot":"","sources":["../../../../src/data-structures/linked-list/skip-linked-list.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"skip-linked-list.js","sourceRoot":"","sources":["../../../../src/data-structures/linked-list/skip-linked-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
|
-
import { PriorityQueue } from './priority-queue';
|
|
9
8
|
import type { PriorityQueueOptions } from '../../types';
|
|
9
|
+
import { PriorityQueue } from './priority-queue';
|
|
10
10
|
export declare class MaxPriorityQueue<E = any> extends PriorityQueue<E> {
|
|
11
11
|
constructor(elements?: Iterable<E>, options?: PriorityQueueOptions<E>);
|
|
12
12
|
}
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MaxPriorityQueue = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* data-structure-typed
|
|
6
|
-
*
|
|
7
|
-
* @author Kirk Qi
|
|
8
|
-
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
9
|
-
* @license MIT License
|
|
10
|
-
*/
|
|
11
4
|
const priority_queue_1 = require("./priority-queue");
|
|
12
5
|
class MaxPriorityQueue extends priority_queue_1.PriorityQueue {
|
|
13
6
|
constructor(elements, options = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max-priority-queue.js","sourceRoot":"","sources":["../../../../src/data-structures/priority-queue/max-priority-queue.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"max-priority-queue.js","sourceRoot":"","sources":["../../../../src/data-structures/priority-queue/max-priority-queue.ts"],"names":[],"mappings":";;;AAQA,qDAAiD;AAEjD,MAAa,gBAA0B,SAAQ,8BAAgB;IAC7D,YACE,QAAsB,EACtB,UAAmC;QACjC,UAAU,EAAE,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE;YACzB,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;QACH,CAAC;KACF;QAED,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AAfD,4CAeC"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
|
-
import { PriorityQueue } from './priority-queue';
|
|
9
8
|
import type { PriorityQueueOptions } from '../../types';
|
|
9
|
+
import { PriorityQueue } from './priority-queue';
|
|
10
10
|
export declare class MinPriorityQueue<E = any> extends PriorityQueue<E> {
|
|
11
11
|
constructor(elements?: Iterable<E>, options?: PriorityQueueOptions<E>);
|
|
12
12
|
}
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MinPriorityQueue = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* data-structure-typed
|
|
6
|
-
*
|
|
7
|
-
* @author Kirk Qi
|
|
8
|
-
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
9
|
-
* @license MIT License
|
|
10
|
-
*/
|
|
11
4
|
const priority_queue_1 = require("./priority-queue");
|
|
12
5
|
class MinPriorityQueue extends priority_queue_1.PriorityQueue {
|
|
13
6
|
constructor(elements, options = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min-priority-queue.js","sourceRoot":"","sources":["../../../../src/data-structures/priority-queue/min-priority-queue.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"min-priority-queue.js","sourceRoot":"","sources":["../../../../src/data-structures/priority-queue/min-priority-queue.ts"],"names":[],"mappings":";;;AAQA,qDAAiD;AAEjD,MAAa,gBAA0B,SAAQ,8BAAgB;IAC7D,YAAY,QAAsB,EACtB,UAAmC;QACjC,UAAU,EAAE,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE;YACzB,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;QACH,CAAC;KACF;QAEX,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AAdD,4CAcC"}
|
|
@@ -5,8 +5,16 @@
|
|
|
5
5
|
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
|
+
import type { PriorityQueueOptions } from '../../types';
|
|
8
9
|
import { Heap } from '../heap';
|
|
9
|
-
|
|
10
|
+
/**
|
|
11
|
+
* 1. Element Priority: In a PriorityQueue, elements are sorted according to their priority. Each dequeue (element removal) operation removes the element with the highest priority. The priority can be determined based on the natural ordering of the elements or through a provided comparator (Comparator).
|
|
12
|
+
* 2. Heap-Based Implementation: PriorityQueue is typically implemented using a binary heap, allowing both insertion and removal operations to be completed in O(log n) time, where n is the number of elements in the queue.
|
|
13
|
+
* 3. Task Scheduling: In systems where tasks need to be processed based on the urgency of tasks rather than the order of arrival.
|
|
14
|
+
* 4. Dijkstra's Algorithm: In shortest path algorithms for graphs, used to select the next shortest edge to visit.
|
|
15
|
+
* 5. Huffman Coding: Used to select the smallest node combination when constructing a Huffman tree.
|
|
16
|
+
* 6. Kth Largest Element in a Data Stream: Used to maintain a min-heap of size K for quickly finding the Kth largest element in stream data
|
|
17
|
+
*/
|
|
10
18
|
export declare class PriorityQueue<E = any> extends Heap<E> {
|
|
11
19
|
constructor(elements?: Iterable<E>, options?: PriorityQueueOptions<E>);
|
|
12
20
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* data-structure-typed
|
|
4
|
-
*
|
|
5
|
-
* @author Kirk Qi
|
|
6
|
-
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
7
|
-
* @license MIT License
|
|
8
|
-
*/
|
|
9
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
3
|
exports.PriorityQueue = void 0;
|
|
11
4
|
const heap_1 = require("../heap");
|
|
5
|
+
/**
|
|
6
|
+
* 1. Element Priority: In a PriorityQueue, elements are sorted according to their priority. Each dequeue (element removal) operation removes the element with the highest priority. The priority can be determined based on the natural ordering of the elements or through a provided comparator (Comparator).
|
|
7
|
+
* 2. Heap-Based Implementation: PriorityQueue is typically implemented using a binary heap, allowing both insertion and removal operations to be completed in O(log n) time, where n is the number of elements in the queue.
|
|
8
|
+
* 3. Task Scheduling: In systems where tasks need to be processed based on the urgency of tasks rather than the order of arrival.
|
|
9
|
+
* 4. Dijkstra's Algorithm: In shortest path algorithms for graphs, used to select the next shortest edge to visit.
|
|
10
|
+
* 5. Huffman Coding: Used to select the smallest node combination when constructing a Huffman tree.
|
|
11
|
+
* 6. Kth Largest Element in a Data Stream: Used to maintain a min-heap of size K for quickly finding the Kth largest element in stream data
|
|
12
|
+
*/
|
|
12
13
|
class PriorityQueue extends heap_1.Heap {
|
|
13
14
|
constructor(elements, options) {
|
|
14
15
|
super(elements, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priority-queue.js","sourceRoot":"","sources":["../../../../src/data-structures/priority-queue/priority-queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"priority-queue.js","sourceRoot":"","sources":["../../../../src/data-structures/priority-queue/priority-queue.ts"],"names":[],"mappings":";;;AAQA,kCAA+B;AAE/B;;;;;;;GAOG;AACH,MAAa,aAAuB,SAAQ,WAAO;IACjD,YAAY,QAAsB,EAAE,OAAiC;QACnE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AAJD,sCAIC"}
|