data-structure-typed 1.47.3 → 1.47.5
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/benchmark/report.html +2 -2
- package/benchmark/report.json +12 -18
- package/dist/cjs/data-structures/hash/hash-map.d.ts +3 -3
- package/dist/cjs/data-structures/hash/hash-map.js +10 -4
- package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
- package/dist/cjs/data-structures/hash/hash-table.d.ts +9 -4
- package/dist/cjs/data-structures/hash/hash-table.js +50 -5
- package/dist/cjs/data-structures/hash/hash-table.js.map +1 -1
- package/dist/cjs/data-structures/heap/heap.d.ts +6 -1
- package/dist/cjs/data-structures/heap/heap.js +51 -9
- package/dist/cjs/data-structures/heap/heap.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +56 -56
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +117 -119
- 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 +36 -36
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js +58 -60
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/queue/deque.d.ts +49 -49
- package/dist/cjs/data-structures/queue/deque.js +79 -72
- package/dist/cjs/data-structures/queue/deque.js.map +1 -1
- package/dist/cjs/data-structures/queue/queue.d.ts +45 -0
- package/dist/cjs/data-structures/queue/queue.js +77 -0
- package/dist/cjs/data-structures/queue/queue.js.map +1 -1
- package/dist/cjs/data-structures/stack/stack.d.ts +18 -5
- package/dist/cjs/data-structures/stack/stack.js +56 -7
- package/dist/cjs/data-structures/stack/stack.js.map +1 -1
- package/dist/cjs/data-structures/trie/trie.d.ts +5 -0
- package/dist/cjs/data-structures/trie/trie.js +47 -0
- package/dist/cjs/data-structures/trie/trie.js.map +1 -1
- package/dist/mjs/data-structures/hash/hash-map.d.ts +3 -3
- package/dist/mjs/data-structures/hash/hash-map.js +10 -4
- package/dist/mjs/data-structures/hash/hash-table.d.ts +9 -4
- package/dist/mjs/data-structures/hash/hash-table.js +50 -5
- package/dist/mjs/data-structures/heap/heap.d.ts +6 -1
- package/dist/mjs/data-structures/heap/heap.js +51 -9
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +56 -56
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +117 -119
- package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +36 -36
- package/dist/mjs/data-structures/linked-list/singly-linked-list.js +58 -60
- package/dist/mjs/data-structures/queue/deque.d.ts +49 -49
- package/dist/mjs/data-structures/queue/deque.js +79 -72
- package/dist/mjs/data-structures/queue/queue.d.ts +45 -0
- package/dist/mjs/data-structures/queue/queue.js +77 -0
- package/dist/mjs/data-structures/stack/stack.d.ts +18 -5
- package/dist/mjs/data-structures/stack/stack.js +56 -7
- package/dist/mjs/data-structures/trie/trie.d.ts +5 -0
- package/dist/mjs/data-structures/trie/trie.js +47 -0
- package/dist/umd/data-structure-typed.js +545 -276
- 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/hash/hash-map.ts +13 -7
- package/src/data-structures/hash/hash-table.ts +59 -9
- package/src/data-structures/heap/heap.ts +60 -9
- package/src/data-structures/linked-list/doubly-linked-list.ts +129 -129
- package/src/data-structures/linked-list/singly-linked-list.ts +65 -65
- package/src/data-structures/queue/deque.ts +84 -77
- package/src/data-structures/queue/queue.ts +84 -0
- package/src/data-structures/stack/stack.ts +64 -8
- package/src/data-structures/trie/trie.ts +53 -0
- package/test/integration/conversion.test.ts +0 -0
- package/test/performance/data-structures/heap/heap.test.ts +13 -4
- package/test/unit/data-structures/hash/hash-table.test.ts +58 -2
- package/test/unit/data-structures/heap/min-heap.test.ts +48 -0
- package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +2 -2
- package/test/unit/data-structures/queue/queue.test.ts +37 -0
- package/test/unit/data-structures/stack/stack.test.ts +55 -5
- package/test/unit/data-structures/trie/trie.test.ts +33 -0
|
@@ -249,6 +249,23 @@ export declare class DoublyLinkedList<E = any> {
|
|
|
249
249
|
* insertion fails.
|
|
250
250
|
*/
|
|
251
251
|
insertBefore(existingValueOrNode: E | DoublyLinkedListNode<E>, newValue: E): boolean;
|
|
252
|
+
/**
|
|
253
|
+
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
254
|
+
* Space Complexity: O(1)
|
|
255
|
+
*/
|
|
256
|
+
/**
|
|
257
|
+
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
258
|
+
* Space Complexity: O(1)
|
|
259
|
+
*
|
|
260
|
+
* The `insertAfter` function inserts a new node with a given value after an existing node in a doubly linked list.
|
|
261
|
+
* @param {E | DoublyLinkedListNode<E>} existingValueOrNode - The existing value or node in the doubly linked list
|
|
262
|
+
* after which the new value will be inserted. It can be either the value of the existing node or the existing node
|
|
263
|
+
* itself.
|
|
264
|
+
* @param {E} newValue - The value that you want to insert into the doubly linked list.
|
|
265
|
+
* @returns The method returns a boolean value. It returns true if the insertion is successful, and false if the
|
|
266
|
+
* existing value or node is not found in the doubly linked list.
|
|
267
|
+
*/
|
|
268
|
+
insertAfter(existingValueOrNode: E | DoublyLinkedListNode<E>, newValue: E): boolean;
|
|
252
269
|
/**
|
|
253
270
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
254
271
|
* Space Complexity: O(1)
|
|
@@ -279,18 +296,6 @@ export declare class DoublyLinkedList<E = any> {
|
|
|
279
296
|
* deleted from the doubly linked list, and `false` if the value or node was not found in the list.
|
|
280
297
|
*/
|
|
281
298
|
delete(valOrNode: E | DoublyLinkedListNode<E> | null): boolean;
|
|
282
|
-
/**
|
|
283
|
-
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
284
|
-
* Space Complexity: O(n)
|
|
285
|
-
*/
|
|
286
|
-
/**
|
|
287
|
-
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
288
|
-
* Space Complexity: O(n)
|
|
289
|
-
*
|
|
290
|
-
* The `toArray` function converts a linked list into an array.
|
|
291
|
-
* @returns The `toArray()` method is returning an array of type `E[]`.
|
|
292
|
-
*/
|
|
293
|
-
toArray(): E[];
|
|
294
299
|
/**
|
|
295
300
|
* The function checks if a variable has a length greater than zero and returns a boolean value.
|
|
296
301
|
* @returns A boolean value is being returned.
|
|
@@ -346,6 +351,17 @@ export declare class DoublyLinkedList<E = any> {
|
|
|
346
351
|
* the callback function. If no value satisfies the condition, it returns `null`.
|
|
347
352
|
*/
|
|
348
353
|
findBackward(callback: (value: E) => boolean): E | null;
|
|
354
|
+
/**
|
|
355
|
+
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
356
|
+
* Space Complexity: O(1)
|
|
357
|
+
*/
|
|
358
|
+
/**
|
|
359
|
+
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
360
|
+
* Space Complexity: O(1)
|
|
361
|
+
*
|
|
362
|
+
* The `reverse` function reverses the order of the elements in a doubly linked list.
|
|
363
|
+
*/
|
|
364
|
+
reverse(): void;
|
|
349
365
|
/**
|
|
350
366
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
351
367
|
* Space Complexity: O(n)
|
|
@@ -354,21 +370,26 @@ export declare class DoublyLinkedList<E = any> {
|
|
|
354
370
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
355
371
|
* Space Complexity: O(n)
|
|
356
372
|
*
|
|
357
|
-
* The `
|
|
358
|
-
* @returns The `
|
|
373
|
+
* The `toArray` function converts a linked list into an array.
|
|
374
|
+
* @returns The `toArray()` method is returning an array of type `E[]`.
|
|
359
375
|
*/
|
|
360
|
-
|
|
376
|
+
toArray(): E[];
|
|
361
377
|
/**
|
|
362
378
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
363
|
-
* Space Complexity: O(
|
|
379
|
+
* Space Complexity: O(n)
|
|
364
380
|
*/
|
|
365
381
|
/**
|
|
366
382
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
367
|
-
* Space Complexity: O(
|
|
383
|
+
* Space Complexity: O(n)
|
|
368
384
|
*
|
|
369
|
-
* The `
|
|
385
|
+
* The `toReversedArray` function converts a doubly linked list into an array in reverse order.
|
|
386
|
+
* @returns The `toReversedArray()` function returns an array of type `E[]`.
|
|
370
387
|
*/
|
|
371
|
-
|
|
388
|
+
toReversedArray(): E[];
|
|
389
|
+
/**
|
|
390
|
+
* The function returns an iterator that iterates over the values of a linked list.
|
|
391
|
+
*/
|
|
392
|
+
[Symbol.iterator](): Generator<E, void, unknown>;
|
|
372
393
|
/**
|
|
373
394
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
374
395
|
* Space Complexity: O(1)
|
|
@@ -382,7 +403,7 @@ export declare class DoublyLinkedList<E = any> {
|
|
|
382
403
|
* represents the value of the current node in the linked list, and the index argument represents the index of the
|
|
383
404
|
* current node in the linked list.
|
|
384
405
|
*/
|
|
385
|
-
forEach(callback: (value: E, index: number) => void): void;
|
|
406
|
+
forEach(callback: (value: E, index: number, list: DoublyLinkedList<E>) => void): void;
|
|
386
407
|
/**
|
|
387
408
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
388
409
|
* Space Complexity: O(n)
|
|
@@ -391,14 +412,13 @@ export declare class DoublyLinkedList<E = any> {
|
|
|
391
412
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
392
413
|
* Space Complexity: O(n)
|
|
393
414
|
*
|
|
394
|
-
* The `
|
|
395
|
-
*
|
|
396
|
-
* @param callback - The callback parameter is a function that takes a value of type E
|
|
397
|
-
*
|
|
398
|
-
* DoublyLinkedList
|
|
399
|
-
* @returns The `map` function is returning a new instance of `DoublyLinkedList<U>` that contains the mapped values.
|
|
415
|
+
* The `filter` function iterates through a DoublyLinkedList and returns a new DoublyLinkedList containing only the
|
|
416
|
+
* elements that satisfy the given callback function.
|
|
417
|
+
* @param callback - The `callback` parameter is a function that takes a value of type `E` and returns a boolean value.
|
|
418
|
+
* It is used to determine whether a value should be included in the filtered list or not.
|
|
419
|
+
* @returns The filtered list, which is an instance of the DoublyLinkedList class.
|
|
400
420
|
*/
|
|
401
|
-
|
|
421
|
+
filter(callback: (value: E, index: number, list: DoublyLinkedList<E>) => boolean): DoublyLinkedList<E>;
|
|
402
422
|
/**
|
|
403
423
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
404
424
|
* Space Complexity: O(n)
|
|
@@ -407,13 +427,14 @@ export declare class DoublyLinkedList<E = any> {
|
|
|
407
427
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
408
428
|
* Space Complexity: O(n)
|
|
409
429
|
*
|
|
410
|
-
* The `
|
|
411
|
-
*
|
|
412
|
-
* @param callback - The
|
|
413
|
-
*
|
|
414
|
-
*
|
|
430
|
+
* The `map` function takes a callback function and applies it to each element in the DoublyLinkedList, returning a new
|
|
431
|
+
* DoublyLinkedList with the transformed values.
|
|
432
|
+
* @param callback - The callback parameter is a function that takes a value of type E (the type of values stored in
|
|
433
|
+
* the original DoublyLinkedList) and returns a value of type T (the type of values that will be stored in the mapped
|
|
434
|
+
* DoublyLinkedList).
|
|
435
|
+
* @returns The `map` function is returning a new instance of `DoublyLinkedList<T>` that contains the mapped values.
|
|
415
436
|
*/
|
|
416
|
-
|
|
437
|
+
map<T>(callback: (value: E, index: number, list: DoublyLinkedList<E>) => T): DoublyLinkedList<T>;
|
|
417
438
|
/**
|
|
418
439
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
419
440
|
* Space Complexity: O(n)
|
|
@@ -426,31 +447,10 @@ export declare class DoublyLinkedList<E = any> {
|
|
|
426
447
|
* single value.
|
|
427
448
|
* @param callback - The `callback` parameter is a function that takes two arguments: `accumulator` and `value`. It is
|
|
428
449
|
* used to perform a specific operation on each element of the linked list.
|
|
429
|
-
* @param {
|
|
450
|
+
* @param {T} initialValue - The `initialValue` parameter is the initial value of the accumulator. It is the starting
|
|
430
451
|
* point for the reduction operation.
|
|
431
452
|
* @returns The `reduce` method is returning the final value of the accumulator after iterating through all the
|
|
432
453
|
* elements in the linked list.
|
|
433
454
|
*/
|
|
434
|
-
reduce<
|
|
435
|
-
/**
|
|
436
|
-
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
437
|
-
* Space Complexity: O(1)
|
|
438
|
-
*/
|
|
439
|
-
/**
|
|
440
|
-
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
441
|
-
* Space Complexity: O(1)
|
|
442
|
-
*
|
|
443
|
-
* The `insertAfter` function inserts a new node with a given value after an existing node in a doubly linked list.
|
|
444
|
-
* @param {E | DoublyLinkedListNode<E>} existingValueOrNode - The existing value or node in the doubly linked list
|
|
445
|
-
* after which the new value will be inserted. It can be either the value of the existing node or the existing node
|
|
446
|
-
* itself.
|
|
447
|
-
* @param {E} newValue - The value that you want to insert into the doubly linked list.
|
|
448
|
-
* @returns The method returns a boolean value. It returns true if the insertion is successful, and false if the
|
|
449
|
-
* existing value or node is not found in the doubly linked list.
|
|
450
|
-
*/
|
|
451
|
-
insertAfter(existingValueOrNode: E | DoublyLinkedListNode<E>, newValue: E): boolean;
|
|
452
|
-
/**
|
|
453
|
-
* The function returns an iterator that iterates over the values of a linked list.
|
|
454
|
-
*/
|
|
455
|
-
[Symbol.iterator](): Generator<E, void, unknown>;
|
|
455
|
+
reduce<T>(callback: (accumulator: T, value: E, index: number, list: DoublyLinkedList<E>) => T, initialValue: T): T;
|
|
456
456
|
}
|
|
@@ -403,6 +403,46 @@ class DoublyLinkedList {
|
|
|
403
403
|
}
|
|
404
404
|
return false;
|
|
405
405
|
}
|
|
406
|
+
/**
|
|
407
|
+
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
408
|
+
* Space Complexity: O(1)
|
|
409
|
+
*/
|
|
410
|
+
/**
|
|
411
|
+
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
412
|
+
* Space Complexity: O(1)
|
|
413
|
+
*
|
|
414
|
+
* The `insertAfter` function inserts a new node with a given value after an existing node in a doubly linked list.
|
|
415
|
+
* @param {E | DoublyLinkedListNode<E>} existingValueOrNode - The existing value or node in the doubly linked list
|
|
416
|
+
* after which the new value will be inserted. It can be either the value of the existing node or the existing node
|
|
417
|
+
* itself.
|
|
418
|
+
* @param {E} newValue - The value that you want to insert into the doubly linked list.
|
|
419
|
+
* @returns The method returns a boolean value. It returns true if the insertion is successful, and false if the
|
|
420
|
+
* existing value or node is not found in the doubly linked list.
|
|
421
|
+
*/
|
|
422
|
+
insertAfter(existingValueOrNode, newValue) {
|
|
423
|
+
let existingNode;
|
|
424
|
+
if (existingValueOrNode instanceof DoublyLinkedListNode) {
|
|
425
|
+
existingNode = existingValueOrNode;
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
existingNode = this.getNode(existingValueOrNode);
|
|
429
|
+
}
|
|
430
|
+
if (existingNode) {
|
|
431
|
+
const newNode = new DoublyLinkedListNode(newValue);
|
|
432
|
+
newNode.next = existingNode.next;
|
|
433
|
+
if (existingNode.next) {
|
|
434
|
+
existingNode.next.prev = newNode;
|
|
435
|
+
}
|
|
436
|
+
newNode.prev = existingNode;
|
|
437
|
+
existingNode.next = newNode;
|
|
438
|
+
if (existingNode === this.tail) {
|
|
439
|
+
this._tail = newNode;
|
|
440
|
+
}
|
|
441
|
+
this._length++;
|
|
442
|
+
return true;
|
|
443
|
+
}
|
|
444
|
+
return false;
|
|
445
|
+
}
|
|
406
446
|
/**
|
|
407
447
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
408
448
|
* Space Complexity: O(1)
|
|
@@ -472,26 +512,6 @@ class DoublyLinkedList {
|
|
|
472
512
|
}
|
|
473
513
|
return false;
|
|
474
514
|
}
|
|
475
|
-
/**
|
|
476
|
-
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
477
|
-
* Space Complexity: O(n)
|
|
478
|
-
*/
|
|
479
|
-
/**
|
|
480
|
-
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
481
|
-
* Space Complexity: O(n)
|
|
482
|
-
*
|
|
483
|
-
* The `toArray` function converts a linked list into an array.
|
|
484
|
-
* @returns The `toArray()` method is returning an array of type `E[]`.
|
|
485
|
-
*/
|
|
486
|
-
toArray() {
|
|
487
|
-
const array = [];
|
|
488
|
-
let current = this.head;
|
|
489
|
-
while (current) {
|
|
490
|
-
array.push(current.value);
|
|
491
|
-
current = current.next;
|
|
492
|
-
}
|
|
493
|
-
return array;
|
|
494
|
-
}
|
|
495
515
|
/**
|
|
496
516
|
* The function checks if a variable has a length greater than zero and returns a boolean value.
|
|
497
517
|
* @returns A boolean value is being returned.
|
|
@@ -582,6 +602,25 @@ class DoublyLinkedList {
|
|
|
582
602
|
}
|
|
583
603
|
return null;
|
|
584
604
|
}
|
|
605
|
+
/**
|
|
606
|
+
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
607
|
+
* Space Complexity: O(1)
|
|
608
|
+
*/
|
|
609
|
+
/**
|
|
610
|
+
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
611
|
+
* Space Complexity: O(1)
|
|
612
|
+
*
|
|
613
|
+
* The `reverse` function reverses the order of the elements in a doubly linked list.
|
|
614
|
+
*/
|
|
615
|
+
reverse() {
|
|
616
|
+
let current = this.head;
|
|
617
|
+
[this._head, this._tail] = [this.tail, this.head];
|
|
618
|
+
while (current) {
|
|
619
|
+
const next = current.next;
|
|
620
|
+
[current.prev, current.next] = [current.next, current.prev];
|
|
621
|
+
current = next;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
585
624
|
/**
|
|
586
625
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
587
626
|
* Space Complexity: O(n)
|
|
@@ -590,35 +629,46 @@ class DoublyLinkedList {
|
|
|
590
629
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
591
630
|
* Space Complexity: O(n)
|
|
592
631
|
*
|
|
593
|
-
* The `
|
|
594
|
-
* @returns The `
|
|
632
|
+
* The `toArray` function converts a linked list into an array.
|
|
633
|
+
* @returns The `toArray()` method is returning an array of type `E[]`.
|
|
595
634
|
*/
|
|
596
|
-
|
|
635
|
+
toArray() {
|
|
597
636
|
const array = [];
|
|
598
|
-
let current = this.
|
|
637
|
+
let current = this.head;
|
|
599
638
|
while (current) {
|
|
600
639
|
array.push(current.value);
|
|
601
|
-
current = current.
|
|
640
|
+
current = current.next;
|
|
602
641
|
}
|
|
603
642
|
return array;
|
|
604
643
|
}
|
|
605
644
|
/**
|
|
606
645
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
607
|
-
* Space Complexity: O(
|
|
646
|
+
* Space Complexity: O(n)
|
|
608
647
|
*/
|
|
609
648
|
/**
|
|
610
649
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
611
|
-
* Space Complexity: O(
|
|
650
|
+
* Space Complexity: O(n)
|
|
612
651
|
*
|
|
613
|
-
* The `
|
|
652
|
+
* The `toReversedArray` function converts a doubly linked list into an array in reverse order.
|
|
653
|
+
* @returns The `toReversedArray()` function returns an array of type `E[]`.
|
|
614
654
|
*/
|
|
615
|
-
|
|
655
|
+
toReversedArray() {
|
|
656
|
+
const array = [];
|
|
657
|
+
let current = this.tail;
|
|
658
|
+
while (current) {
|
|
659
|
+
array.push(current.value);
|
|
660
|
+
current = current.prev;
|
|
661
|
+
}
|
|
662
|
+
return array;
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* The function returns an iterator that iterates over the values of a linked list.
|
|
666
|
+
*/
|
|
667
|
+
*[Symbol.iterator]() {
|
|
616
668
|
let current = this.head;
|
|
617
|
-
[this._head, this._tail] = [this.tail, this.head];
|
|
618
669
|
while (current) {
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
current = next;
|
|
670
|
+
yield current.value;
|
|
671
|
+
current = current.next;
|
|
622
672
|
}
|
|
623
673
|
}
|
|
624
674
|
/**
|
|
@@ -635,11 +685,9 @@ class DoublyLinkedList {
|
|
|
635
685
|
* current node in the linked list.
|
|
636
686
|
*/
|
|
637
687
|
forEach(callback) {
|
|
638
|
-
let current = this.head;
|
|
639
688
|
let index = 0;
|
|
640
|
-
|
|
641
|
-
callback(
|
|
642
|
-
current = current.next;
|
|
689
|
+
for (const el of this) {
|
|
690
|
+
callback(el, index, this);
|
|
643
691
|
index++;
|
|
644
692
|
}
|
|
645
693
|
}
|
|
@@ -651,21 +699,22 @@ class DoublyLinkedList {
|
|
|
651
699
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
652
700
|
* Space Complexity: O(n)
|
|
653
701
|
*
|
|
654
|
-
* The `
|
|
655
|
-
*
|
|
656
|
-
* @param callback - The callback parameter is a function that takes a value of type E
|
|
657
|
-
*
|
|
658
|
-
* DoublyLinkedList
|
|
659
|
-
* @returns The `map` function is returning a new instance of `DoublyLinkedList<U>` that contains the mapped values.
|
|
702
|
+
* The `filter` function iterates through a DoublyLinkedList and returns a new DoublyLinkedList containing only the
|
|
703
|
+
* elements that satisfy the given callback function.
|
|
704
|
+
* @param callback - The `callback` parameter is a function that takes a value of type `E` and returns a boolean value.
|
|
705
|
+
* It is used to determine whether a value should be included in the filtered list or not.
|
|
706
|
+
* @returns The filtered list, which is an instance of the DoublyLinkedList class.
|
|
660
707
|
*/
|
|
661
|
-
|
|
662
|
-
const
|
|
663
|
-
let
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
708
|
+
filter(callback) {
|
|
709
|
+
const filteredList = new DoublyLinkedList();
|
|
710
|
+
let index = 0;
|
|
711
|
+
for (const current of this) {
|
|
712
|
+
if (callback(current, index, this)) {
|
|
713
|
+
filteredList.push(current);
|
|
714
|
+
}
|
|
715
|
+
index++;
|
|
667
716
|
}
|
|
668
|
-
return
|
|
717
|
+
return filteredList;
|
|
669
718
|
}
|
|
670
719
|
/**
|
|
671
720
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
@@ -675,22 +724,21 @@ class DoublyLinkedList {
|
|
|
675
724
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
676
725
|
* Space Complexity: O(n)
|
|
677
726
|
*
|
|
678
|
-
* The `
|
|
679
|
-
*
|
|
680
|
-
* @param callback - The
|
|
681
|
-
*
|
|
682
|
-
*
|
|
727
|
+
* The `map` function takes a callback function and applies it to each element in the DoublyLinkedList, returning a new
|
|
728
|
+
* DoublyLinkedList with the transformed values.
|
|
729
|
+
* @param callback - The callback parameter is a function that takes a value of type E (the type of values stored in
|
|
730
|
+
* the original DoublyLinkedList) and returns a value of type T (the type of values that will be stored in the mapped
|
|
731
|
+
* DoublyLinkedList).
|
|
732
|
+
* @returns The `map` function is returning a new instance of `DoublyLinkedList<T>` that contains the mapped values.
|
|
683
733
|
*/
|
|
684
|
-
|
|
685
|
-
const
|
|
686
|
-
let
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
}
|
|
691
|
-
current = current.next;
|
|
734
|
+
map(callback) {
|
|
735
|
+
const mappedList = new DoublyLinkedList();
|
|
736
|
+
let index = 0;
|
|
737
|
+
for (const current of this) {
|
|
738
|
+
mappedList.push(callback(current, index, this));
|
|
739
|
+
index++;
|
|
692
740
|
}
|
|
693
|
-
return
|
|
741
|
+
return mappedList;
|
|
694
742
|
}
|
|
695
743
|
/**
|
|
696
744
|
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
@@ -704,70 +752,20 @@ class DoublyLinkedList {
|
|
|
704
752
|
* single value.
|
|
705
753
|
* @param callback - The `callback` parameter is a function that takes two arguments: `accumulator` and `value`. It is
|
|
706
754
|
* used to perform a specific operation on each element of the linked list.
|
|
707
|
-
* @param {
|
|
755
|
+
* @param {T} initialValue - The `initialValue` parameter is the initial value of the accumulator. It is the starting
|
|
708
756
|
* point for the reduction operation.
|
|
709
757
|
* @returns The `reduce` method is returning the final value of the accumulator after iterating through all the
|
|
710
758
|
* elements in the linked list.
|
|
711
759
|
*/
|
|
712
760
|
reduce(callback, initialValue) {
|
|
713
761
|
let accumulator = initialValue;
|
|
714
|
-
let
|
|
715
|
-
|
|
716
|
-
accumulator = callback(accumulator, current
|
|
717
|
-
|
|
762
|
+
let index = 0;
|
|
763
|
+
for (const current of this) {
|
|
764
|
+
accumulator = callback(accumulator, current, index, this);
|
|
765
|
+
index++;
|
|
718
766
|
}
|
|
719
767
|
return accumulator;
|
|
720
768
|
}
|
|
721
|
-
/**
|
|
722
|
-
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
723
|
-
* Space Complexity: O(1)
|
|
724
|
-
*/
|
|
725
|
-
/**
|
|
726
|
-
* Time Complexity: O(n), where n is the number of elements in the linked list.
|
|
727
|
-
* Space Complexity: O(1)
|
|
728
|
-
*
|
|
729
|
-
* The `insertAfter` function inserts a new node with a given value after an existing node in a doubly linked list.
|
|
730
|
-
* @param {E | DoublyLinkedListNode<E>} existingValueOrNode - The existing value or node in the doubly linked list
|
|
731
|
-
* after which the new value will be inserted. It can be either the value of the existing node or the existing node
|
|
732
|
-
* itself.
|
|
733
|
-
* @param {E} newValue - The value that you want to insert into the doubly linked list.
|
|
734
|
-
* @returns The method returns a boolean value. It returns true if the insertion is successful, and false if the
|
|
735
|
-
* existing value or node is not found in the doubly linked list.
|
|
736
|
-
*/
|
|
737
|
-
insertAfter(existingValueOrNode, newValue) {
|
|
738
|
-
let existingNode;
|
|
739
|
-
if (existingValueOrNode instanceof DoublyLinkedListNode) {
|
|
740
|
-
existingNode = existingValueOrNode;
|
|
741
|
-
}
|
|
742
|
-
else {
|
|
743
|
-
existingNode = this.getNode(existingValueOrNode);
|
|
744
|
-
}
|
|
745
|
-
if (existingNode) {
|
|
746
|
-
const newNode = new DoublyLinkedListNode(newValue);
|
|
747
|
-
newNode.next = existingNode.next;
|
|
748
|
-
if (existingNode.next) {
|
|
749
|
-
existingNode.next.prev = newNode;
|
|
750
|
-
}
|
|
751
|
-
newNode.prev = existingNode;
|
|
752
|
-
existingNode.next = newNode;
|
|
753
|
-
if (existingNode === this.tail) {
|
|
754
|
-
this._tail = newNode;
|
|
755
|
-
}
|
|
756
|
-
this._length++;
|
|
757
|
-
return true;
|
|
758
|
-
}
|
|
759
|
-
return false;
|
|
760
|
-
}
|
|
761
|
-
/**
|
|
762
|
-
* The function returns an iterator that iterates over the values of a linked list.
|
|
763
|
-
*/
|
|
764
|
-
*[Symbol.iterator]() {
|
|
765
|
-
let current = this.head;
|
|
766
|
-
while (current) {
|
|
767
|
-
yield current.value;
|
|
768
|
-
current = current.next;
|
|
769
|
-
}
|
|
770
|
-
}
|
|
771
769
|
}
|
|
772
770
|
exports.DoublyLinkedList = DoublyLinkedList;
|
|
773
771
|
//# sourceMappingURL=doubly-linked-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doubly-linked-list.js","sourceRoot":"","sources":["../../../../src/data-structures/linked-list/doubly-linked-list.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doubly-linked-list.js","sourceRoot":"","sources":["../../../../src/data-structures/linked-list/doubly-linked-list.ts"],"names":[],"mappings":"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"}
|