data-structure-typed 1.53.5 → 1.53.6
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/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +13 -11
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +27 -26
- 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 +144 -62
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js +201 -97
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +13 -11
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +27 -26
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
- package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +144 -62
- package/dist/mjs/data-structures/linked-list/singly-linked-list.js +201 -97
- package/dist/mjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
- package/dist/umd/data-structure-typed.js +216 -113
- package/dist/umd/data-structure-typed.min.js +3 -3
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +7 -7
- package/src/data-structures/linked-list/doubly-linked-list.ts +30 -26
- package/src/data-structures/linked-list/singly-linked-list.ts +219 -98
- package/testToExample.ts +0 -215
|
@@ -97,33 +97,17 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
97
97
|
get size() {
|
|
98
98
|
return this._size;
|
|
99
99
|
}
|
|
100
|
-
/**
|
|
101
|
-
* Time Complexity: O(n)
|
|
102
|
-
* Space Complexity: O(n)
|
|
103
|
-
*
|
|
104
|
-
* The `fromArray` function creates a new SinglyLinkedList instance and populates it with the elements from the given
|
|
105
|
-
* array.
|
|
106
|
-
* @param {E[]} data - The `data` parameter is an array of elements of type `E`.
|
|
107
|
-
* @returns The `fromArray` function returns a `SinglyLinkedList` object.
|
|
108
|
-
*/
|
|
109
|
-
static fromArray(data) {
|
|
110
|
-
const singlyLinkedList = new SinglyLinkedList();
|
|
111
|
-
for (const item of data) {
|
|
112
|
-
singlyLinkedList.push(item);
|
|
113
|
-
}
|
|
114
|
-
return singlyLinkedList;
|
|
115
|
-
}
|
|
116
100
|
/**
|
|
117
101
|
* Time Complexity: O(1)
|
|
118
102
|
* Space Complexity: O(1)
|
|
119
103
|
*
|
|
120
|
-
* The push function adds a new element to the end of a singly linked list.
|
|
121
|
-
* @param {E}
|
|
122
|
-
*
|
|
123
|
-
* @returns The `push` method is returning a boolean value, `true`.
|
|
104
|
+
* The `push` function adds a new element or node to the end of a singly linked list.
|
|
105
|
+
* @param {E | SinglyLinkedListNode<E>} elementOrNode - The `elementOrNode` parameter in the `push`
|
|
106
|
+
* method can accept either an element of type `E` or a `SinglyLinkedListNode<E>` object.
|
|
107
|
+
* @returns The `push` method is returning a boolean value, specifically `true`.
|
|
124
108
|
*/
|
|
125
|
-
push(
|
|
126
|
-
const newNode =
|
|
109
|
+
push(elementOrNode) {
|
|
110
|
+
const newNode = this._ensureNode(elementOrNode);
|
|
127
111
|
if (!this.head) {
|
|
128
112
|
this._head = newNode;
|
|
129
113
|
this._tail = newNode;
|
|
@@ -182,13 +166,15 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
182
166
|
* Time Complexity: O(1)
|
|
183
167
|
* Space Complexity: O(1)
|
|
184
168
|
*
|
|
185
|
-
* The unshift function adds a new element to the beginning of a singly linked list
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
169
|
+
* The unshift function adds a new element or node to the beginning of a singly linked list in
|
|
170
|
+
* TypeScript.
|
|
171
|
+
* @param {E | SinglyLinkedListNode<E>} elementOrNode - The `elementOrNode` parameter in the
|
|
172
|
+
* `unshift` method can be either an element of type `E` or a `SinglyLinkedListNode` containing an
|
|
173
|
+
* element of type `E`.
|
|
174
|
+
* @returns The `unshift` method is returning a boolean value, specifically `true`.
|
|
175
|
+
*/
|
|
176
|
+
unshift(elementOrNode) {
|
|
177
|
+
const newNode = this._ensureNode(elementOrNode);
|
|
192
178
|
if (!this.head) {
|
|
193
179
|
this._head = newNode;
|
|
194
180
|
this._tail = newNode;
|
|
@@ -200,6 +186,28 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
200
186
|
this._size++;
|
|
201
187
|
return true;
|
|
202
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Time Complexity: O(n)
|
|
191
|
+
* Space Complexity: O(1)
|
|
192
|
+
*
|
|
193
|
+
* This function searches for a specific element in a singly linked list based on a given node or
|
|
194
|
+
* predicate.
|
|
195
|
+
* @param {E | SinglyLinkedListNode<E> | ((node: SinglyLinkedListNode<E>) => boolean)} elementNodeOrPredicate
|
|
196
|
+
* elementNodeOrPredicate - The `elementNodeOrPredicate` parameter in the `get` method can be one of
|
|
197
|
+
* the following types:
|
|
198
|
+
* @returns The `get` method returns the value of the first node in the singly linked list that
|
|
199
|
+
* satisfies the provided predicate function. If no such node is found, it returns `undefined`.
|
|
200
|
+
*/
|
|
201
|
+
get(elementNodeOrPredicate) {
|
|
202
|
+
const predicate = this._ensurePredicate(elementNodeOrPredicate);
|
|
203
|
+
let current = this.head;
|
|
204
|
+
while (current) {
|
|
205
|
+
if (predicate(current))
|
|
206
|
+
return current.value;
|
|
207
|
+
current = current.next;
|
|
208
|
+
}
|
|
209
|
+
return undefined;
|
|
210
|
+
}
|
|
203
211
|
/**
|
|
204
212
|
* Time Complexity: O(n)
|
|
205
213
|
* Space Complexity: O(1)
|
|
@@ -219,6 +227,22 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
219
227
|
}
|
|
220
228
|
return current.value;
|
|
221
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Time Complexity: O(1)
|
|
232
|
+
* Space Complexity: O(1)
|
|
233
|
+
*
|
|
234
|
+
* The function `isNode` in TypeScript checks if the input is an instance of `SinglyLinkedListNode`.
|
|
235
|
+
* @param {E | SinglyLinkedListNode<E> | ((node: SinglyLinkedListNode<E>) => boolean)} elementNodeOrPredicate
|
|
236
|
+
* elementNodeOrPredicate - The `elementNodeOrPredicate` parameter in the `isNode` function can be
|
|
237
|
+
* one of the following types:
|
|
238
|
+
* @returns The `isNode` function is checking if the `elementNodeOrPredicate` parameter is an
|
|
239
|
+
* instance of `SinglyLinkedListNode<E>`. If it is, the function returns `true`, indicating that the
|
|
240
|
+
* parameter is a `SinglyLinkedListNode<E>`. If it is not an instance of `SinglyLinkedListNode<E>`,
|
|
241
|
+
* the function returns `false`.
|
|
242
|
+
*/
|
|
243
|
+
isNode(elementNodeOrPredicate) {
|
|
244
|
+
return elementNodeOrPredicate instanceof SinglyLinkedListNode;
|
|
245
|
+
}
|
|
222
246
|
/**
|
|
223
247
|
* Time Complexity: O(n)
|
|
224
248
|
* Space Complexity: O(1)
|
|
@@ -268,20 +292,20 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
268
292
|
* Space Complexity: O(1)
|
|
269
293
|
*
|
|
270
294
|
* The delete function removes a node with a specific value from a singly linked list.
|
|
271
|
-
* @param {E | SinglyLinkedListNode<E>}
|
|
295
|
+
* @param {E | SinglyLinkedListNode<E>} elementOrNode - The `elementOrNode` parameter can accept either a value of type `E`
|
|
272
296
|
* or a `SinglyLinkedListNode<E>` object.
|
|
273
297
|
* @returns The `delete` method returns a boolean value. It returns `true` if the value or node is found and
|
|
274
298
|
* successfully deleted from the linked list, and `false` if the value or node is not found in the linked list.
|
|
275
299
|
*/
|
|
276
|
-
delete(
|
|
277
|
-
if (
|
|
300
|
+
delete(elementOrNode) {
|
|
301
|
+
if (elementOrNode === undefined)
|
|
278
302
|
return false;
|
|
279
303
|
let value;
|
|
280
|
-
if (
|
|
281
|
-
value =
|
|
304
|
+
if (elementOrNode instanceof SinglyLinkedListNode) {
|
|
305
|
+
value = elementOrNode.value;
|
|
282
306
|
}
|
|
283
307
|
else {
|
|
284
|
-
value =
|
|
308
|
+
value = elementOrNode;
|
|
285
309
|
}
|
|
286
310
|
let current = this.head, prev = undefined;
|
|
287
311
|
while (current) {
|
|
@@ -310,26 +334,29 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
310
334
|
* Time Complexity: O(n)
|
|
311
335
|
* Space Complexity: O(1)
|
|
312
336
|
*
|
|
313
|
-
* The `addAt` function inserts a
|
|
314
|
-
* @param {number} index - The index parameter represents the position at which
|
|
315
|
-
* linked list. It is
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
*
|
|
320
|
-
|
|
321
|
-
|
|
337
|
+
* The `addAt` function inserts a new element or node at a specified index in a singly linked list.
|
|
338
|
+
* @param {number} index - The `index` parameter represents the position at which you want to add a
|
|
339
|
+
* new element or node in the linked list. It is a number that indicates the index where the new
|
|
340
|
+
* element or node should be inserted.
|
|
341
|
+
* @param {E | SinglyLinkedListNode<E>} newElementOrNode - The `newElementOrNode` parameter in the
|
|
342
|
+
* `addAt` method can be either a value of type `E` or a `SinglyLinkedListNode<E>` object. This
|
|
343
|
+
* parameter represents the element or node that you want to add to the linked list at the specified
|
|
344
|
+
* index.
|
|
345
|
+
* @returns The `addAt` method returns a boolean value - `true` if the element or node was
|
|
346
|
+
* successfully added at the specified index, and `false` if the index is out of bounds.
|
|
347
|
+
*/
|
|
348
|
+
addAt(index, newElementOrNode) {
|
|
322
349
|
if (index < 0 || index > this._size)
|
|
323
350
|
return false;
|
|
324
351
|
if (index === 0) {
|
|
325
|
-
this.unshift(
|
|
352
|
+
this.unshift(newElementOrNode);
|
|
326
353
|
return true;
|
|
327
354
|
}
|
|
328
355
|
if (index === this._size) {
|
|
329
|
-
this.push(
|
|
356
|
+
this.push(newElementOrNode);
|
|
330
357
|
return true;
|
|
331
358
|
}
|
|
332
|
-
const newNode =
|
|
359
|
+
const newNode = this._ensureNode(newElementOrNode);
|
|
333
360
|
const prevNode = this.getNodeAt(index - 1);
|
|
334
361
|
newNode.next = prevNode.next;
|
|
335
362
|
prevNode.next = newNode;
|
|
@@ -394,16 +421,21 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
394
421
|
* Time Complexity: O(n)
|
|
395
422
|
* Space Complexity: O(1)
|
|
396
423
|
*
|
|
397
|
-
* The `indexOf` function
|
|
398
|
-
*
|
|
399
|
-
* @
|
|
400
|
-
*
|
|
401
|
-
|
|
402
|
-
|
|
424
|
+
* The `indexOf` function in TypeScript searches for a specific element or node in a singly linked
|
|
425
|
+
* list and returns its index if found.
|
|
426
|
+
* @param {E | SinglyLinkedListNode<E> | ((node: SinglyLinkedListNode<E>) => boolean)} elementNodeOrPredicate
|
|
427
|
+
* elementNodeOrPredicate - The `elementNodeOrPredicate` parameter in the `indexOf` method can be one
|
|
428
|
+
* of the following types:
|
|
429
|
+
* @returns The `indexOf` method returns the index of the first occurrence of the element that
|
|
430
|
+
* matches the provided predicate in the singly linked list. If no matching element is found, it
|
|
431
|
+
* returns -1.
|
|
432
|
+
*/
|
|
433
|
+
indexOf(elementNodeOrPredicate) {
|
|
434
|
+
const predicate = this._ensurePredicate(elementNodeOrPredicate);
|
|
403
435
|
let index = 0;
|
|
404
436
|
let current = this.head;
|
|
405
437
|
while (current) {
|
|
406
|
-
if (current
|
|
438
|
+
if (predicate(current)) {
|
|
407
439
|
return index;
|
|
408
440
|
}
|
|
409
441
|
index++;
|
|
@@ -415,16 +447,22 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
415
447
|
* Time Complexity: O(n)
|
|
416
448
|
* Space Complexity: O(1)
|
|
417
449
|
*
|
|
418
|
-
* The function
|
|
419
|
-
*
|
|
420
|
-
* @param {E
|
|
421
|
-
*
|
|
422
|
-
*
|
|
423
|
-
|
|
424
|
-
|
|
450
|
+
* The function `getNode` in TypeScript searches for a node in a singly linked list based on a given
|
|
451
|
+
* element, node, or predicate.
|
|
452
|
+
* @param {E | SinglyLinkedListNode<E> | ((node: SinglyLinkedListNode<E>) => boolean) | undefined} elementNodeOrPredicate
|
|
453
|
+
* elementNodeOrPredicate - The `elementNodeOrPredicate` parameter in the `getNode` method can be one
|
|
454
|
+
* of the following types:
|
|
455
|
+
* @returns The `getNode` method returns either a `SinglyLinkedListNode<E>` if a matching node is
|
|
456
|
+
* found based on the provided predicate, or it returns `undefined` if no matching node is found or
|
|
457
|
+
* if the input parameter is `undefined`.
|
|
458
|
+
*/
|
|
459
|
+
getNode(elementNodeOrPredicate) {
|
|
460
|
+
if (elementNodeOrPredicate === undefined)
|
|
461
|
+
return;
|
|
462
|
+
const predicate = this._ensurePredicate(elementNodeOrPredicate);
|
|
425
463
|
let current = this.head;
|
|
426
464
|
while (current) {
|
|
427
|
-
if (current
|
|
465
|
+
if (predicate(current)) {
|
|
428
466
|
return current;
|
|
429
467
|
}
|
|
430
468
|
current = current.next;
|
|
@@ -435,31 +473,36 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
435
473
|
* Time Complexity: O(n)
|
|
436
474
|
* Space Complexity: O(1)
|
|
437
475
|
*
|
|
438
|
-
* The `addBefore`
|
|
439
|
-
*
|
|
440
|
-
*
|
|
441
|
-
*
|
|
442
|
-
* @
|
|
443
|
-
*
|
|
444
|
-
|
|
445
|
-
|
|
476
|
+
* The function `addBefore` in TypeScript adds a new element or node before an existing element or
|
|
477
|
+
* node in a singly linked list.
|
|
478
|
+
* @param {E | SinglyLinkedListNode<E>} existingElementOrNode - existingElementOrNode represents the
|
|
479
|
+
* element or node in the linked list before which you want to add a new element or node.
|
|
480
|
+
* @param {E | SinglyLinkedListNode<E>} newElementOrNode - The `newElementOrNode` parameter in the
|
|
481
|
+
* `addBefore` method represents the element or node that you want to insert before the existing
|
|
482
|
+
* element or node in the linked list. This new element can be of type `E` or a
|
|
483
|
+
* `SinglyLinkedListNode<E>`.
|
|
484
|
+
* @returns The `addBefore` method returns a boolean value - `true` if the new element or node was
|
|
485
|
+
* successfully added before the existing element or node, and `false` if the operation was
|
|
486
|
+
* unsuccessful.
|
|
487
|
+
*/
|
|
488
|
+
addBefore(existingElementOrNode, newElementOrNode) {
|
|
446
489
|
if (!this.head)
|
|
447
490
|
return false;
|
|
448
491
|
let existingValue;
|
|
449
|
-
if (
|
|
450
|
-
existingValue =
|
|
492
|
+
if (this.isNode(existingElementOrNode)) {
|
|
493
|
+
existingValue = existingElementOrNode.value;
|
|
451
494
|
}
|
|
452
495
|
else {
|
|
453
|
-
existingValue =
|
|
496
|
+
existingValue = existingElementOrNode;
|
|
454
497
|
}
|
|
455
498
|
if (this.head.value === existingValue) {
|
|
456
|
-
this.unshift(
|
|
499
|
+
this.unshift(newElementOrNode);
|
|
457
500
|
return true;
|
|
458
501
|
}
|
|
459
502
|
let current = this.head;
|
|
460
503
|
while (current.next) {
|
|
461
504
|
if (current.next.value === existingValue) {
|
|
462
|
-
const newNode =
|
|
505
|
+
const newNode = this._ensureNode(newElementOrNode);
|
|
463
506
|
newNode.next = current.next;
|
|
464
507
|
current.next = newNode;
|
|
465
508
|
this._size++;
|
|
@@ -473,23 +516,22 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
473
516
|
* Time Complexity: O(n)
|
|
474
517
|
* Space Complexity: O(1)
|
|
475
518
|
*
|
|
476
|
-
* The `addAfter` function
|
|
477
|
-
*
|
|
478
|
-
*
|
|
479
|
-
*
|
|
480
|
-
* @
|
|
481
|
-
*
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
}
|
|
519
|
+
* The `addAfter` function in TypeScript adds a new element or node after an existing element or node
|
|
520
|
+
* in a singly linked list.
|
|
521
|
+
* @param {E | SinglyLinkedListNode<E>} existingElementOrNode - existingElementOrNode can be either
|
|
522
|
+
* an element of type E or a SinglyLinkedListNode of type E.
|
|
523
|
+
* @param {E | SinglyLinkedListNode<E>} newElementOrNode - The `newElementOrNode` parameter in the
|
|
524
|
+
* `addAfter` method represents the element or node that you want to add after the existing element
|
|
525
|
+
* or node in a singly linked list. This parameter can be either the value of the new element or a
|
|
526
|
+
* reference to a `SinglyLinkedListNode` containing
|
|
527
|
+
* @returns The `addAfter` method returns a boolean value - `true` if the new element or node was
|
|
528
|
+
* successfully added after the existing element or node, and `false` if the existing element or node
|
|
529
|
+
* was not found.
|
|
530
|
+
*/
|
|
531
|
+
addAfter(existingElementOrNode, newElementOrNode) {
|
|
532
|
+
const existingNode = this.getNode(existingElementOrNode);
|
|
491
533
|
if (existingNode) {
|
|
492
|
-
const newNode =
|
|
534
|
+
const newNode = this._ensureNode(newElementOrNode);
|
|
493
535
|
newNode.next = existingNode.next;
|
|
494
536
|
existingNode.next = newNode;
|
|
495
537
|
if (existingNode === this.tail) {
|
|
@@ -504,15 +546,19 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
504
546
|
* Time Complexity: O(n)
|
|
505
547
|
* Space Complexity: O(1)
|
|
506
548
|
*
|
|
507
|
-
* The function
|
|
508
|
-
*
|
|
509
|
-
* @
|
|
510
|
-
|
|
511
|
-
|
|
549
|
+
* The function `countOccurrences` iterates through a singly linked list and counts the occurrences
|
|
550
|
+
* of a specified element or nodes that satisfy a given predicate.
|
|
551
|
+
* @param {E | SinglyLinkedListNode<E> | ((node: SinglyLinkedListNode<E>) => boolean)} elementOrNode
|
|
552
|
+
* - The `elementOrNode` parameter in the `countOccurrences` method can accept three types of values:
|
|
553
|
+
* @returns The `countOccurrences` method returns the number of occurrences of the specified element,
|
|
554
|
+
* node, or predicate function in the singly linked list.
|
|
555
|
+
*/
|
|
556
|
+
countOccurrences(elementOrNode) {
|
|
557
|
+
const predicate = this._ensurePredicate(elementOrNode);
|
|
512
558
|
let count = 0;
|
|
513
559
|
let current = this.head;
|
|
514
560
|
while (current) {
|
|
515
|
-
if (current
|
|
561
|
+
if (predicate(current)) {
|
|
516
562
|
count++;
|
|
517
563
|
}
|
|
518
564
|
current = current.next;
|
|
@@ -598,5 +644,63 @@ export class SinglyLinkedList extends IterableElementBase {
|
|
|
598
644
|
current = current.next;
|
|
599
645
|
}
|
|
600
646
|
}
|
|
647
|
+
/**
|
|
648
|
+
* Time Complexity: O(n)
|
|
649
|
+
* Space Complexity: O(n)
|
|
650
|
+
*
|
|
651
|
+
* The `fromArray` function creates a new SinglyLinkedList instance and populates it with the elements from the given
|
|
652
|
+
* array.
|
|
653
|
+
* @param {E[]} data - The `data` parameter is an array of elements of type `E`.
|
|
654
|
+
* @returns The `fromArray` function returns a `SinglyLinkedList` object.
|
|
655
|
+
*/
|
|
656
|
+
static fromArray(data) {
|
|
657
|
+
const singlyLinkedList = new SinglyLinkedList();
|
|
658
|
+
for (const item of data) {
|
|
659
|
+
singlyLinkedList.push(item);
|
|
660
|
+
}
|
|
661
|
+
return singlyLinkedList;
|
|
662
|
+
}
|
|
663
|
+
/**
|
|
664
|
+
* The _isPredicate function in TypeScript checks if the input is a function that takes a
|
|
665
|
+
* SinglyLinkedListNode as an argument and returns a boolean.
|
|
666
|
+
* @param {E | SinglyLinkedListNode<E> | ((node: SinglyLinkedListNode<E>) => boolean)} elementNodeOrPredicate
|
|
667
|
+
* elementNodeOrPredicate - The `elementNodeOrPredicate` parameter can be one of the following types:
|
|
668
|
+
* @returns The _isPredicate method is returning a boolean value based on whether the
|
|
669
|
+
* elementNodeOrPredicate parameter is a function or not. If the elementNodeOrPredicate is a
|
|
670
|
+
* function, the method will return true, indicating that it is a predicate function. If it is not a
|
|
671
|
+
* function, the method will return false.
|
|
672
|
+
*/
|
|
673
|
+
_isPredicate(elementNodeOrPredicate) {
|
|
674
|
+
return typeof elementNodeOrPredicate === 'function';
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* The function `_ensureNode` ensures that the input is a valid node and returns it, creating a new
|
|
678
|
+
* node if necessary.
|
|
679
|
+
* @param {E | SinglyLinkedListNode<E>} elementOrNode - The `elementOrNode` parameter can be either
|
|
680
|
+
* an element of type `E` or a `SinglyLinkedListNode` containing an element of type `E`.
|
|
681
|
+
* @returns A SinglyLinkedListNode<E> object is being returned.
|
|
682
|
+
*/
|
|
683
|
+
_ensureNode(elementOrNode) {
|
|
684
|
+
if (this.isNode(elementOrNode))
|
|
685
|
+
return elementOrNode;
|
|
686
|
+
return new SinglyLinkedListNode(elementOrNode);
|
|
687
|
+
}
|
|
688
|
+
/**
|
|
689
|
+
* The function `_ensurePredicate` in TypeScript ensures that the input is either a node, a predicate
|
|
690
|
+
* function, or a value to compare with the node's value.
|
|
691
|
+
* @param {E | SinglyLinkedListNode<E> | ((node: SinglyLinkedListNode<E>) => boolean)} elementNodeOrPredicate
|
|
692
|
+
* elementNodeOrPredicate - The `elementNodeOrPredicate` parameter can be one of the following types:
|
|
693
|
+
* @returns A function is being returned. If the input `elementNodeOrPredicate` is already a node, a
|
|
694
|
+
* function is returned that checks if a given node is equal to the input node. If the input is a
|
|
695
|
+
* predicate function, it is returned as is. If the input is neither a node nor a predicate function,
|
|
696
|
+
* a function is returned that checks if a given node's value is equal to the input
|
|
697
|
+
*/
|
|
698
|
+
_ensurePredicate(elementNodeOrPredicate) {
|
|
699
|
+
if (this.isNode(elementNodeOrPredicate))
|
|
700
|
+
return (node) => node === elementNodeOrPredicate;
|
|
701
|
+
if (this._isPredicate(elementNodeOrPredicate))
|
|
702
|
+
return elementNodeOrPredicate;
|
|
703
|
+
return (node) => node.value === elementNodeOrPredicate;
|
|
704
|
+
}
|
|
601
705
|
}
|
|
602
706
|
//# sourceMappingURL=singly-linked-list.js.map
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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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"}
|