data-structure-typed 1.49.1 → 1.49.3

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.
Files changed (106) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +16 -16
  3. package/README_zh-CN.md +2 -2
  4. package/benchmark/report.html +46 -1
  5. package/benchmark/report.json +457 -22
  6. package/dist/cjs/data-structures/base/iterable-base.d.ts +11 -0
  7. package/dist/cjs/data-structures/base/iterable-base.js +21 -0
  8. package/dist/cjs/data-structures/base/iterable-base.js.map +1 -1
  9. package/dist/cjs/data-structures/graph/abstract-graph.d.ts +7 -7
  10. package/dist/cjs/data-structures/graph/abstract-graph.js +43 -12
  11. package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
  12. package/dist/cjs/data-structures/graph/directed-graph.d.ts +2 -2
  13. package/dist/cjs/data-structures/graph/directed-graph.js +2 -2
  14. package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -1
  15. package/dist/cjs/data-structures/graph/undirected-graph.d.ts +1 -1
  16. package/dist/cjs/data-structures/graph/undirected-graph.js +1 -1
  17. package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -1
  18. package/dist/cjs/data-structures/hash/hash-map.d.ts +9 -9
  19. package/dist/cjs/data-structures/hash/hash-map.js +16 -15
  20. package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
  21. package/dist/cjs/data-structures/heap/heap.d.ts +6 -35
  22. package/dist/cjs/data-structures/heap/heap.js +10 -42
  23. package/dist/cjs/data-structures/heap/heap.js.map +1 -1
  24. package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +99 -105
  25. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +143 -146
  26. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
  27. package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +16 -21
  28. package/dist/cjs/data-structures/linked-list/singly-linked-list.js +42 -42
  29. package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
  30. package/dist/cjs/data-structures/linked-list/skip-linked-list.d.ts +25 -25
  31. package/dist/cjs/data-structures/linked-list/skip-linked-list.js +36 -36
  32. package/dist/cjs/data-structures/linked-list/skip-linked-list.js.map +1 -1
  33. package/dist/cjs/data-structures/queue/deque.d.ts +70 -75
  34. package/dist/cjs/data-structures/queue/deque.js +100 -110
  35. package/dist/cjs/data-structures/queue/deque.js.map +1 -1
  36. package/dist/cjs/data-structures/queue/queue.d.ts +37 -38
  37. package/dist/cjs/data-structures/queue/queue.js +46 -49
  38. package/dist/cjs/data-structures/queue/queue.js.map +1 -1
  39. package/dist/cjs/data-structures/stack/stack.d.ts +2 -3
  40. package/dist/cjs/data-structures/stack/stack.js +2 -5
  41. package/dist/cjs/data-structures/stack/stack.js.map +1 -1
  42. package/dist/cjs/data-structures/trie/trie.d.ts +1 -2
  43. package/dist/cjs/data-structures/trie/trie.js +2 -5
  44. package/dist/cjs/data-structures/trie/trie.js.map +1 -1
  45. package/dist/mjs/data-structures/base/iterable-base.d.ts +11 -0
  46. package/dist/mjs/data-structures/base/iterable-base.js +21 -0
  47. package/dist/mjs/data-structures/graph/abstract-graph.d.ts +7 -7
  48. package/dist/mjs/data-structures/graph/abstract-graph.js +43 -12
  49. package/dist/mjs/data-structures/graph/directed-graph.d.ts +2 -2
  50. package/dist/mjs/data-structures/graph/directed-graph.js +2 -2
  51. package/dist/mjs/data-structures/graph/undirected-graph.d.ts +1 -1
  52. package/dist/mjs/data-structures/graph/undirected-graph.js +1 -1
  53. package/dist/mjs/data-structures/hash/hash-map.d.ts +9 -9
  54. package/dist/mjs/data-structures/hash/hash-map.js +16 -15
  55. package/dist/mjs/data-structures/heap/heap.d.ts +6 -35
  56. package/dist/mjs/data-structures/heap/heap.js +10 -42
  57. package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +99 -105
  58. package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +142 -145
  59. package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +16 -21
  60. package/dist/mjs/data-structures/linked-list/singly-linked-list.js +43 -43
  61. package/dist/mjs/data-structures/linked-list/skip-linked-list.d.ts +25 -25
  62. package/dist/mjs/data-structures/linked-list/skip-linked-list.js +36 -36
  63. package/dist/mjs/data-structures/queue/deque.d.ts +70 -75
  64. package/dist/mjs/data-structures/queue/deque.js +100 -110
  65. package/dist/mjs/data-structures/queue/queue.d.ts +37 -38
  66. package/dist/mjs/data-structures/queue/queue.js +45 -48
  67. package/dist/mjs/data-structures/stack/stack.d.ts +2 -3
  68. package/dist/mjs/data-structures/stack/stack.js +2 -5
  69. package/dist/mjs/data-structures/trie/trie.d.ts +1 -2
  70. package/dist/mjs/data-structures/trie/trie.js +2 -5
  71. package/dist/umd/data-structure-typed.js +531 -532
  72. package/dist/umd/data-structure-typed.min.js +2 -2
  73. package/dist/umd/data-structure-typed.min.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/data-structures/base/iterable-base.ts +24 -0
  76. package/src/data-structures/graph/abstract-graph.ts +55 -14
  77. package/src/data-structures/graph/directed-graph.ts +3 -2
  78. package/src/data-structures/graph/undirected-graph.ts +1 -1
  79. package/src/data-structures/hash/hash-map.ts +27 -28
  80. package/src/data-structures/heap/heap.ts +19 -57
  81. package/src/data-structures/linked-list/doubly-linked-list.ts +157 -161
  82. package/src/data-structures/linked-list/singly-linked-list.ts +49 -49
  83. package/src/data-structures/linked-list/skip-linked-list.ts +40 -40
  84. package/src/data-structures/queue/deque.ts +122 -135
  85. package/src/data-structures/queue/queue.ts +54 -58
  86. package/src/data-structures/stack/stack.ts +4 -8
  87. package/src/data-structures/trie/trie.ts +5 -9
  88. package/test/performance/data-structures/comparison/comparison.test.ts +6 -6
  89. package/test/performance/data-structures/heap/heap.test.ts +2 -2
  90. package/test/performance/data-structures/linked-list/doubly-linked-list.test.ts +2 -2
  91. package/test/performance/data-structures/linked-list/singly-linked-list.test.ts +2 -2
  92. package/test/performance/data-structures/priority-queue/priority-queue.test.ts +2 -2
  93. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +2 -2
  94. package/test/unit/data-structures/graph/abstract-graph.test.ts +1 -1
  95. package/test/unit/data-structures/graph/directed-graph.test.ts +48 -3
  96. package/test/unit/data-structures/graph/undirected-graph.test.ts +48 -4
  97. package/test/unit/data-structures/hash/hash-map.test.ts +2 -2
  98. package/test/unit/data-structures/heap/heap.test.ts +6 -1
  99. package/test/unit/data-structures/heap/min-heap.test.ts +1 -1
  100. package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +30 -30
  101. package/test/unit/data-structures/linked-list/linked-list.test.ts +1 -1
  102. package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +21 -21
  103. package/test/unit/data-structures/linked-list/skip-list.test.ts +2 -2
  104. package/test/unit/data-structures/queue/deque.test.ts +5 -5
  105. package/test/unit/data-structures/queue/queue.test.ts +4 -4
  106. package/test/unit/data-structures/trie/trie.test.ts +1 -1
@@ -52,19 +52,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
52
52
  * Insert an element into the heap and maintain the heap properties.
53
53
  * @param element - The element to be inserted.
54
54
  */
55
- add(element: E): Heap<E>;
56
- /**
57
- * Time Complexity: O(log n), where n is the number of elements in the heap.
58
- * Space Complexity: O(1)
59
- */
60
- /**
61
- * Time Complexity: O(log n), where n is the number of elements in the heap.
62
- * Space Complexity: O(1)
63
- *
64
- * Insert an element into the heap and maintain the heap properties.
65
- * @param element - The element to be inserted.
66
- */
67
- push(element: E): Heap<E>;
55
+ add(element: E): boolean;
68
56
  /**
69
57
  * Time Complexity: O(log n), where n is the number of elements in the heap.
70
58
  * Space Complexity: O(1)
@@ -77,18 +65,6 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
77
65
  * @returns The top element or undefined if the heap is empty.
78
66
  */
79
67
  poll(): E | undefined;
80
- /**
81
- * Time Complexity: O(log n), where n is the number of elements in the heap.
82
- * Space Complexity: O(1)
83
- */
84
- /**
85
- * Time Complexity: O(log n), where n is the number of elements in the heap.
86
- * Space Complexity: O(1)
87
- *
88
- * Remove and return the top element (smallest or largest element) from the heap.
89
- * @returns The top element or undefined if the heap is empty.
90
- */
91
- pop(): E | undefined;
92
68
  /**
93
69
  * Peek at the top element of the heap without removing it.
94
70
  * @returns The top element or undefined if the heap is empty.
@@ -114,7 +90,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
114
90
  * Clear and add elements of the heap
115
91
  * @param elements
116
92
  */
117
- refill(elements: E[]): void;
93
+ refill(elements: E[]): boolean[];
118
94
  /**
119
95
  * Time Complexity: O(n), where n is the number of elements in the heap.
120
96
  * Space Complexity: O(1)
@@ -203,7 +179,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
203
179
  *
204
180
  * Fix the entire heap to maintain heap properties.
205
181
  */
206
- fix(): void;
182
+ fix(): boolean[];
207
183
  /**
208
184
  * Time Complexity: O(n)
209
185
  * Space Complexity: O(n)
@@ -250,12 +226,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
250
226
  * original Heap.
251
227
  */
252
228
  map<T>(callback: ElementCallback<E, T>, comparator: Comparator<T>, thisArg?: any): Heap<T>;
253
- /**
254
- * Time Complexity: O(log n)
255
- * Space Complexity: O(1)
256
- */
257
- print(): void;
258
- protected _getIterator(): Generator<E, void, unknown>;
229
+ protected _getIterator(): IterableIterator<E>;
259
230
  /**
260
231
  * Time Complexity: O(n)
261
232
  * Space Complexity: O(1)
@@ -267,7 +238,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
267
238
  * Float operation to maintain heap properties after adding an element.
268
239
  * @param index - The index of the newly added element.
269
240
  */
270
- protected _bubbleUp(index: number): void;
241
+ protected _bubbleUp(index: number): boolean;
271
242
  /**
272
243
  * Time Complexity: O(log n)
273
244
  * Space Complexity: O(1)
@@ -276,7 +247,7 @@ export declare class Heap<E = any> extends IterableElementBase<E> {
276
247
  * @param index - The index from which to start sinking.
277
248
  * @param halfLength
278
249
  */
279
- protected _sinkDown(index: number, halfLength: number): void;
250
+ protected _sinkDown(index: number, halfLength: number): boolean;
280
251
  }
281
252
  export declare class FibonacciHeapNode<E> {
282
253
  element: E;
@@ -42,7 +42,7 @@ class Heap extends base_1.IterableElementBase {
42
42
  }
43
43
  if (elements) {
44
44
  for (const el of elements) {
45
- this.push(el);
45
+ this.add(el);
46
46
  }
47
47
  // this.fix();
48
48
  }
@@ -85,23 +85,8 @@ class Heap extends base_1.IterableElementBase {
85
85
  * @param element - The element to be inserted.
86
86
  */
87
87
  add(element) {
88
- return this.push(element);
89
- }
90
- /**
91
- * Time Complexity: O(log n), where n is the number of elements in the heap.
92
- * Space Complexity: O(1)
93
- */
94
- /**
95
- * Time Complexity: O(log n), where n is the number of elements in the heap.
96
- * Space Complexity: O(1)
97
- *
98
- * Insert an element into the heap and maintain the heap properties.
99
- * @param element - The element to be inserted.
100
- */
101
- push(element) {
102
88
  this._elements.push(element);
103
- this._bubbleUp(this.elements.length - 1);
104
- return this;
89
+ return this._bubbleUp(this.elements.length - 1);
105
90
  }
106
91
  /**
107
92
  * Time Complexity: O(log n), where n is the number of elements in the heap.
@@ -125,20 +110,6 @@ class Heap extends base_1.IterableElementBase {
125
110
  }
126
111
  return value;
127
112
  }
128
- /**
129
- * Time Complexity: O(log n), where n is the number of elements in the heap.
130
- * Space Complexity: O(1)
131
- */
132
- /**
133
- * Time Complexity: O(log n), where n is the number of elements in the heap.
134
- * Space Complexity: O(1)
135
- *
136
- * Remove and return the top element (smallest or largest element) from the heap.
137
- * @returns The top element or undefined if the heap is empty.
138
- */
139
- pop() {
140
- return this.poll();
141
- }
142
113
  /**
143
114
  * Peek at the top element of the heap without removing it.
144
115
  * @returns The top element or undefined if the heap is empty.
@@ -172,7 +143,7 @@ class Heap extends base_1.IterableElementBase {
172
143
  */
173
144
  refill(elements) {
174
145
  this._elements = elements;
175
- this.fix();
146
+ return this.fix();
176
147
  }
177
148
  /**
178
149
  * Time Complexity: O(n), where n is the number of elements in the heap.
@@ -209,7 +180,7 @@ class Heap extends base_1.IterableElementBase {
209
180
  if (index < 0)
210
181
  return false;
211
182
  if (index === 0) {
212
- this.pop();
183
+ this.poll();
213
184
  }
214
185
  else if (index === this.elements.length - 1) {
215
186
  this.elements.pop();
@@ -321,8 +292,10 @@ class Heap extends base_1.IterableElementBase {
321
292
  * Fix the entire heap to maintain heap properties.
322
293
  */
323
294
  fix() {
295
+ const results = [];
324
296
  for (let i = Math.floor(this.size / 2); i >= 0; i--)
325
- this._sinkDown(i, this.elements.length >> 1);
297
+ results.push(this._sinkDown(i, this.elements.length >> 1));
298
+ return results;
326
299
  }
327
300
  /**
328
301
  * Time Complexity: O(n)
@@ -349,7 +322,7 @@ class Heap extends base_1.IterableElementBase {
349
322
  let index = 0;
350
323
  for (const current of this) {
351
324
  if (callback.call(thisArg, current, index, this)) {
352
- filteredList.push(current);
325
+ filteredList.add(current);
353
326
  }
354
327
  index++;
355
328
  }
@@ -388,13 +361,6 @@ class Heap extends base_1.IterableElementBase {
388
361
  }
389
362
  return mappedHeap;
390
363
  }
391
- /**
392
- * Time Complexity: O(log n)
393
- * Space Complexity: O(1)
394
- */
395
- print() {
396
- console.log([...this]);
397
- }
398
364
  *_getIterator() {
399
365
  for (const element of this.elements) {
400
366
  yield element;
@@ -422,6 +388,7 @@ class Heap extends base_1.IterableElementBase {
422
388
  index = parent;
423
389
  }
424
390
  this.elements[index] = element;
391
+ return true;
425
392
  }
426
393
  /**
427
394
  * Time Complexity: O(log n)
@@ -448,6 +415,7 @@ class Heap extends base_1.IterableElementBase {
448
415
  index = left;
449
416
  }
450
417
  this.elements[index] = element;
418
+ return true;
451
419
  }
452
420
  }
453
421
  exports.Heap = Heap;
@@ -1 +1 @@
1
- {"version":3,"file":"heap.js","sourceRoot":"","sources":["../../../../src/data-structures/heap/heap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heap.js","sourceRoot":"","sources":["../../../../src/data-structures/heap/heap.ts"],"names":[],"mappings":"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"}
@@ -26,54 +26,53 @@ export declare class DoublyLinkedListNode<E = any> {
26
26
  */
27
27
  export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
28
28
  /**
29
- * The constructor initializes the linked list with an empty head, tail, and length.
29
+ * The constructor initializes the linked list with an empty head, tail, and size.
30
30
  */
31
31
  constructor(elements?: Iterable<E>);
32
32
  protected _head: DoublyLinkedListNode<E> | undefined;
33
33
  get head(): DoublyLinkedListNode<E> | undefined;
34
34
  protected _tail: DoublyLinkedListNode<E> | undefined;
35
35
  get tail(): DoublyLinkedListNode<E> | undefined;
36
- protected _length: number;
37
- get length(): number;
36
+ protected _size: number;
38
37
  get size(): number;
39
38
  /**
40
- * Time Complexity: O(n), where n is the length of the input array.
39
+ * Time Complexity: O(n), where n is the size of the input array.
41
40
  * Space Complexity: O(n)
42
41
  */
43
42
  /**
44
- * Time Complexity: O(n), where n is the length of the input array.
45
- * Space Complexity: O(n)
43
+ * Time Complexity: O(n), where n is the number of elements in the linked list.
44
+ * Space Complexity: O(1)
46
45
  *
47
- * The `fromArray` function creates a new instance of a DoublyLinkedList and populates it with the elements from the
48
- * given array.
49
- * @param {E[]} data - The `data` parameter is an array of elements of type `E`.
50
- * @returns The `fromArray` function returns a DoublyLinkedList object.
46
+ * The `get first` function returns the first node in a doubly linked list, or undefined if the list is empty.
47
+ * @returns The method `get first()` returns the first node of the doubly linked list, or `undefined` if the list is empty.
51
48
  */
52
- static fromArray<E>(data: E[]): DoublyLinkedList<E>;
49
+ get first(): E | undefined;
53
50
  /**
54
51
  * Time Complexity: O(1)
55
52
  * Space Complexity: O(1)
56
53
  */
57
54
  /**
58
- * Time Complexity: O(1)
55
+ * Time Complexity: O(n), where n is the number of elements in the linked list.
59
56
  * Space Complexity: O(1)
60
57
  *
61
- * The push function adds a new node with the given value to the end of the doubly linked list.
62
- * @param {E} value - The value to be added to the linked list.
58
+ * The `get last` function returns the last node in a doubly linked list, or undefined if the list is empty.
59
+ * @returns The method `get last()` returns the last node of the doubly linked list, or `undefined` if the list is empty.
63
60
  */
64
- push(value: E): void;
61
+ get last(): E | undefined;
65
62
  /**
66
63
  * Time Complexity: O(1)
67
64
  * Space Complexity: O(1)
68
65
  */
69
66
  /**
70
- * Time Complexity: O(1)
71
- * Space Complexity: O(1)
67
+ * Time Complexity: O(n), where n is the size of the input array.
68
+ * Space Complexity: O(n)
72
69
  *
73
- * The addLast function adds a new node with the given value to the end of the doubly linked list.
74
- * @param {E} value - The value to be added to the linked list.
70
+ * The `fromArray` function creates a new instance of a DoublyLinkedList and populates it with the elements from the
71
+ * given array.
72
+ * @param {E[]} data - The `data` parameter is an array of elements of type `E`.
73
+ * @returns The `fromArray` function returns a DoublyLinkedList object.
75
74
  */
76
- addLast(value: E): void;
75
+ static fromArray<E>(data: E[]): DoublyLinkedList<E>;
77
76
  /**
78
77
  * Time Complexity: O(1)
79
78
  * Space Complexity: O(1)
@@ -82,11 +81,10 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
82
81
  * Time Complexity: O(1)
83
82
  * Space Complexity: O(1)
84
83
  *
85
- * The `pop()` function removes and returns the value of the last node in a doubly linked list.
86
- * @returns The method is returning the value of the removed node (removedNode.value) if the list is not empty. If the
87
- * list is empty, it returns undefined.
84
+ * The push function adds a new node with the given value to the end of the doubly linked list.
85
+ * @param {E} value - The value to be added to the linked list.
88
86
  */
89
- pop(): E | undefined;
87
+ push(value: E): boolean;
90
88
  /**
91
89
  * Time Complexity: O(1)
92
90
  * Space Complexity: O(1)
@@ -95,13 +93,13 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
95
93
  * Time Complexity: O(1)
96
94
  * Space Complexity: O(1)
97
95
  *
98
- * The `pollLast()` function removes and returns the value of the last node in a doubly linked list.
96
+ * The `pop()` function removes and returns the value of the last node in a doubly linked list.
99
97
  * @returns The method is returning the value of the removed node (removedNode.value) if the list is not empty. If the
100
98
  * list is empty, it returns undefined.
101
99
  */
102
- pollLast(): E | undefined;
100
+ pop(): E | undefined;
103
101
  /**
104
- * Time Complexity: O(1)
102
+ * Time Complexity: O(n), where n is the number of elements in the linked list.
105
103
  * Space Complexity: O(1)
106
104
  */
107
105
  /**
@@ -114,20 +112,7 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
114
112
  */
115
113
  shift(): E | undefined;
116
114
  /**
117
- * Time Complexity: O(1)
118
- * Space Complexity: O(1)
119
- */
120
- /**
121
- * Time Complexity: O(1)
122
- * Space Complexity: O(1)
123
- *
124
- * The `pollFirst()` function removes and returns the value of the first node in a doubly linked list.
125
- * @returns The method `shift()` returns the value of the node that is removed from the beginning of the doubly linked
126
- * list.
127
- */
128
- pollFirst(): E | undefined;
129
- /**
130
- * Time Complexity: O(1)
115
+ * Time Complexity: O(n), where n is the number of elements in the linked list.
131
116
  * Space Complexity: O(1)
132
117
  */
133
118
  /**
@@ -138,44 +123,7 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
138
123
  * @param {E} value - The `value` parameter represents the value of the new node that will be added to the beginning of the
139
124
  * doubly linked list.
140
125
  */
141
- unshift(value: E): void;
142
- /**
143
- * Time Complexity: O(1)
144
- * Space Complexity: O(1)
145
- */
146
- /**
147
- * Time Complexity: O(1)
148
- * Space Complexity: O(1)
149
- *
150
- * The addFirst function adds a new node with the given value to the beginning of a doubly linked list.
151
- * @param {E} value - The `value` parameter represents the value of the new node that will be added to the beginning of the
152
- * doubly linked list.
153
- */
154
- addFirst(value: E): void;
155
- /**
156
- * Time Complexity: O(n), where n is the number of elements in the linked list.
157
- * Space Complexity: O(1)
158
- */
159
- /**
160
- * Time Complexity: O(n), where n is the number of elements in the linked list.
161
- * Space Complexity: O(1)
162
- *
163
- * The `getFirst` function returns the first node in a doubly linked list, or undefined if the list is empty.
164
- * @returns The method `getFirst()` returns the first node of the doubly linked list, or `undefined` if the list is empty.
165
- */
166
- getFirst(): E | undefined;
167
- /**
168
- * Time Complexity: O(n), where n is the number of elements in the linked list.
169
- * Space Complexity: O(1)
170
- */
171
- /**
172
- * Time Complexity: O(n), where n is the number of elements in the linked list.
173
- * Space Complexity: O(1)
174
- *
175
- * The `getLast` function returns the last node in a doubly linked list, or undefined if the list is empty.
176
- * @returns The method `getLast()` returns the last node of the doubly linked list, or `undefined` if the list is empty.
177
- */
178
- getLast(): E | undefined;
126
+ unshift(value: E): boolean;
179
127
  /**
180
128
  * Time Complexity: O(n), where n is the number of elements in the linked list.
181
129
  * Space Complexity: O(1)
@@ -238,7 +186,7 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
238
186
  * @returns The `insert` method returns a boolean value. It returns `true` if the insertion is successful, and `false`
239
187
  * if the index is out of bounds.
240
188
  */
241
- insertAt(index: number, value: E): boolean;
189
+ addAt(index: number, value: E): boolean;
242
190
  /**
243
191
  * Time Complexity: O(n), where n is the number of elements in the linked list.
244
192
  * Space Complexity: O(1)
@@ -247,7 +195,7 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
247
195
  * Time Complexity: O(n), where n is the number of elements in the linked list.
248
196
  * Space Complexity: O(1)
249
197
  *
250
- * The `insertBefore` function inserts a new value before an existing value or node in a doubly linked list.
198
+ * The `addBefore` function inserts a new value before an existing value or node in a doubly linked list.
251
199
  * @param {E | DoublyLinkedListNode<E>} existingValueOrNode - The existing value or node in the doubly linked list
252
200
  * before which the new value will be inserted. It can be either the value of the existing node or the existing node
253
201
  * itself.
@@ -256,7 +204,7 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
256
204
  * @returns The method returns a boolean value. It returns `true` if the insertion is successful, and `false` if the
257
205
  * insertion fails.
258
206
  */
259
- insertBefore(existingValueOrNode: E | DoublyLinkedListNode<E>, newValue: E): boolean;
207
+ addBefore(existingValueOrNode: E | DoublyLinkedListNode<E>, newValue: E): boolean;
260
208
  /**
261
209
  * Time Complexity: O(n), where n is the number of elements in the linked list.
262
210
  * Space Complexity: O(1)
@@ -265,7 +213,7 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
265
213
  * Time Complexity: O(n), where n is the number of elements in the linked list.
266
214
  * Space Complexity: O(1)
267
215
  *
268
- * The `insertAfter` function inserts a new node with a given value after an existing node in a doubly linked list.
216
+ * The `addAfter` function inserts a new node with a given value after an existing node in a doubly linked list.
269
217
  * @param {E | DoublyLinkedListNode<E>} existingValueOrNode - The existing value or node in the doubly linked list
270
218
  * after which the new value will be inserted. It can be either the value of the existing node or the existing node
271
219
  * itself.
@@ -273,11 +221,7 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
273
221
  * @returns The method returns a boolean value. It returns true if the insertion is successful, and false if the
274
222
  * existing value or node is not found in the doubly linked list.
275
223
  */
276
- insertAfter(existingValueOrNode: E | DoublyLinkedListNode<E>, newValue: E): boolean;
277
- /**
278
- * Time Complexity: O(n), where n is the number of elements in the linked list.
279
- * Space Complexity: O(1)
280
- */
224
+ addAfter(existingValueOrNode: E | DoublyLinkedListNode<E>, newValue: E): boolean;
281
225
  /**
282
226
  * Time Complexity: O(n), where n is the number of elements in the linked list.
283
227
  * Space Complexity: O(1)
@@ -288,11 +232,7 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
288
232
  * @returns The method `deleteAt` returns the value of the node that was deleted, or `undefined` if the index is out of
289
233
  * bounds.
290
234
  */
291
- deleteAt(index: number): E | undefined;
292
- /**
293
- * Time Complexity: O(n), where n is the number of elements in the linked list.
294
- * Space Complexity: O(1)
295
- */
235
+ deleteAt(index: number): boolean;
296
236
  /**
297
237
  * Time Complexity: O(n), where n is the number of elements in the linked list.
298
238
  * Space Complexity: O(1)
@@ -305,12 +245,20 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
305
245
  */
306
246
  delete(valOrNode: E | DoublyLinkedListNode<E> | undefined): boolean;
307
247
  /**
308
- * The function checks if a variable has a length greater than zero and returns a boolean value.
248
+ * Time Complexity: O(n), where n is the number of elements in the linked list.
249
+ * Space Complexity: O(1)
250
+ */
251
+ /**
252
+ * The function checks if a variable has a size greater than zero and returns a boolean value.
309
253
  * @returns A boolean value is being returned.
310
254
  */
311
255
  isEmpty(): boolean;
312
256
  /**
313
- * The `clear` function resets the linked list by setting the head, tail, and length to undefined and 0 respectively.
257
+ * Time Complexity: O(n), where n is the number of elements in the linked list.
258
+ * Space Complexity: O(1)
259
+ */
260
+ /**
261
+ * The `clear` function resets the linked list by setting the head, tail, and size to undefined and 0 respectively.
314
262
  */
315
263
  clear(): void;
316
264
  /**
@@ -345,7 +293,7 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
345
293
  indexOf(value: E): number;
346
294
  /**
347
295
  * Time Complexity: O(n), where n is the number of elements in the linked list.
348
- * Space Complexity: O(1)
296
+ * Space Complexity: O(n)
349
297
  */
350
298
  /**
351
299
  * Time Complexity: O(n), where n is the number of elements in the linked list.
@@ -361,7 +309,7 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
361
309
  findBackward(callback: (value: E) => boolean): E | undefined;
362
310
  /**
363
311
  * Time Complexity: O(n), where n is the number of elements in the linked list.
364
- * Space Complexity: O(1)
312
+ * Space Complexity: O(n)
365
313
  */
366
314
  /**
367
315
  * Time Complexity: O(n), where n is the number of elements in the linked list.
@@ -369,9 +317,9 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
369
317
  *
370
318
  * The `reverse` function reverses the order of the elements in a doubly linked list.
371
319
  */
372
- reverse(): void;
320
+ reverse(): this;
373
321
  /**
374
- * Time Complexity: O(n), where n is the number of elements in the linked list.
322
+ * Time Complexity: O(n)
375
323
  * Space Complexity: O(n)
376
324
  */
377
325
  /**
@@ -395,8 +343,8 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
395
343
  */
396
344
  toReversedArray(): E[];
397
345
  /**
398
- * Time Complexity: O(n)
399
- * Space Complexity: O(n)
346
+ * Time Complexity: O(1)
347
+ * Space Complexity: O(1)
400
348
  */
401
349
  /**
402
350
  * Time Complexity: O(n)
@@ -417,8 +365,8 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
417
365
  */
418
366
  filter(callback: ElementCallback<E, boolean>, thisArg?: any): DoublyLinkedList<E>;
419
367
  /**
420
- * Time Complexity: O(n), where n is the number of elements in the linked list.
421
- * Space Complexity: O(n)
368
+ * Time Complexity: O(1)
369
+ * Space Complexity: O(1)
422
370
  */
423
371
  /**
424
372
  * Time Complexity: O(n)
@@ -438,11 +386,57 @@ export declare class DoublyLinkedList<E = any> extends IterableElementBase<E> {
438
386
  * object.
439
387
  */
440
388
  map<T>(callback: ElementCallback<E, T>, thisArg?: any): DoublyLinkedList<T>;
389
+ /**
390
+ * Time Complexity: O(1)
391
+ * Space Complexity: O(1)
392
+ */
393
+ /**
394
+ * Time Complexity: O(1)
395
+ * Space Complexity: O(1)
396
+ *
397
+ * The addLast function adds a new node with the given value to the end of the doubly linked list.
398
+ * @param {E} value - The value to be added to the linked list.
399
+ */
400
+ addLast(value: E): boolean;
401
+ /**
402
+ * Time Complexity: O(1)
403
+ * Space Complexity: O(1)
404
+ */
405
+ /**
406
+ * Time Complexity: O(1)
407
+ * Space Complexity: O(1)
408
+ *
409
+ * The `pollLast()` function removes and returns the value of the last node in a doubly linked list.
410
+ * @returns The method is returning the value of the removed node (removedNode.value) if the list is not empty. If the
411
+ * list is empty, it returns undefined.
412
+ */
413
+ pollLast(): E | undefined;
441
414
  /**
442
415
  * Time Complexity: O(n), where n is the number of elements in the linked list.
443
- * Space Complexity: O(n)
416
+ * Space Complexity: O(1)
444
417
  */
445
- print(): void;
418
+ /**
419
+ * Time Complexity: O(1)
420
+ * Space Complexity: O(1)
421
+ *
422
+ * The `pollFirst()` function removes and returns the value of the first node in a doubly linked list.
423
+ * @returns The method `shift()` returns the value of the node that is removed from the beginning of the doubly linked
424
+ * list.
425
+ */
426
+ pollFirst(): E | undefined;
427
+ /**
428
+ * Time Complexity: O(n), where n is the number of elements in the linked list.
429
+ * Space Complexity: O(1)
430
+ */
431
+ /**
432
+ * Time Complexity: O(1)
433
+ * Space Complexity: O(1)
434
+ *
435
+ * The addFirst function adds a new node with the given value to the beginning of a doubly linked list.
436
+ * @param {E} value - The `value` parameter represents the value of the new node that will be added to the beginning of the
437
+ * doubly linked list.
438
+ */
439
+ addFirst(value: E): void;
446
440
  /**
447
441
  * The function returns an iterator that iterates over the values of a linked list.
448
442
  */