data-structure-typed 2.6.0 → 2.6.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.
Files changed (160) hide show
  1. package/.github/workflows/ci.yml +7 -2
  2. package/.github/workflows/release-package.yml +9 -2
  3. package/CHANGELOG.md +9 -1
  4. package/dist/cjs/binary-tree.cjs +2927 -23688
  5. package/dist/cjs/graph.cjs +845 -2634
  6. package/dist/cjs/hash.cjs +185 -616
  7. package/dist/cjs/heap.cjs +266 -818
  8. package/dist/cjs/index.cjs +5116 -31358
  9. package/dist/cjs/linked-list.cjs +644 -2615
  10. package/dist/cjs/matrix.cjs +220 -535
  11. package/dist/cjs/priority-queue.cjs +266 -818
  12. package/dist/cjs/queue.cjs +637 -2343
  13. package/dist/cjs/stack.cjs +124 -530
  14. package/dist/cjs/trie.cjs +145 -592
  15. package/dist/cjs-legacy/binary-tree.cjs +4352 -25113
  16. package/dist/cjs-legacy/graph.cjs +847 -2636
  17. package/dist/cjs-legacy/hash.cjs +181 -612
  18. package/dist/cjs-legacy/heap.cjs +266 -818
  19. package/dist/cjs-legacy/index.cjs +6657 -32899
  20. package/dist/cjs-legacy/linked-list.cjs +640 -2611
  21. package/dist/cjs-legacy/matrix.cjs +220 -535
  22. package/dist/cjs-legacy/priority-queue.cjs +266 -818
  23. package/dist/cjs-legacy/queue.cjs +634 -2340
  24. package/dist/cjs-legacy/stack.cjs +124 -530
  25. package/dist/cjs-legacy/trie.cjs +145 -592
  26. package/dist/esm/binary-tree.mjs +2927 -23688
  27. package/dist/esm/graph.mjs +845 -2634
  28. package/dist/esm/hash.mjs +185 -616
  29. package/dist/esm/heap.mjs +266 -818
  30. package/dist/esm/index.mjs +5116 -31358
  31. package/dist/esm/linked-list.mjs +644 -2615
  32. package/dist/esm/matrix.mjs +220 -535
  33. package/dist/esm/priority-queue.mjs +266 -818
  34. package/dist/esm/queue.mjs +637 -2343
  35. package/dist/esm/stack.mjs +124 -530
  36. package/dist/esm/trie.mjs +145 -592
  37. package/dist/esm-legacy/binary-tree.mjs +4352 -25113
  38. package/dist/esm-legacy/graph.mjs +847 -2636
  39. package/dist/esm-legacy/hash.mjs +181 -612
  40. package/dist/esm-legacy/heap.mjs +266 -818
  41. package/dist/esm-legacy/index.mjs +6657 -32899
  42. package/dist/esm-legacy/linked-list.mjs +640 -2611
  43. package/dist/esm-legacy/matrix.mjs +220 -535
  44. package/dist/esm-legacy/priority-queue.mjs +266 -818
  45. package/dist/esm-legacy/queue.mjs +634 -2340
  46. package/dist/esm-legacy/stack.mjs +124 -530
  47. package/dist/esm-legacy/trie.mjs +145 -592
  48. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +29 -500
  49. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +38 -563
  50. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +230 -1212
  51. package/dist/types/data-structures/binary-tree/bst.d.ts +124 -1063
  52. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +99 -854
  53. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +62 -314
  54. package/dist/types/data-structures/binary-tree/tree-map.d.ts +366 -5057
  55. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +277 -4885
  56. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +253 -3929
  57. package/dist/types/data-structures/binary-tree/tree-set.d.ts +261 -4782
  58. package/dist/types/data-structures/graph/abstract-graph.d.ts +44 -44
  59. package/dist/types/data-structures/graph/directed-graph.d.ts +130 -527
  60. package/dist/types/data-structures/graph/undirected-graph.d.ts +125 -482
  61. package/dist/types/data-structures/hash/hash-map.d.ts +132 -562
  62. package/dist/types/data-structures/heap/heap.d.ts +194 -746
  63. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +120 -809
  64. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +121 -733
  65. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +193 -863
  66. package/dist/types/data-structures/matrix/matrix.d.ts +159 -474
  67. package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +1 -6
  68. package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +6 -11
  69. package/dist/types/data-structures/priority-queue/priority-queue.d.ts +1 -1
  70. package/dist/types/data-structures/queue/deque.d.ts +196 -804
  71. package/dist/types/data-structures/queue/queue.d.ts +99 -585
  72. package/dist/types/data-structures/stack/stack.d.ts +75 -481
  73. package/dist/types/data-structures/trie/trie.d.ts +98 -584
  74. package/dist/umd/data-structure-typed.js +6580 -32822
  75. package/dist/umd/data-structure-typed.min.js +3 -3
  76. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +162 -215
  77. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +9 -9
  78. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +47 -47
  79. package/docs-site-docusaurus/docs/api/classes/BST.md +155 -208
  80. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +7 -7
  81. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +13 -29
  82. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +104 -158
  83. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
  84. package/docs-site-docusaurus/docs/api/classes/Deque.md +253 -101
  85. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +60 -80
  86. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +244 -114
  87. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +6 -6
  88. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +9 -9
  89. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  90. package/docs-site-docusaurus/docs/api/classes/HashMap.md +52 -48
  91. package/docs-site-docusaurus/docs/api/classes/Heap.md +119 -64
  92. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +84 -14
  93. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +138 -34
  94. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +149 -41
  95. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +23 -23
  96. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +172 -92
  97. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +60 -80
  98. package/docs-site-docusaurus/docs/api/classes/Matrix.md +57 -52
  99. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +117 -62
  100. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +120 -70
  101. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +117 -62
  102. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +125 -75
  103. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +119 -64
  104. package/docs-site-docusaurus/docs/api/classes/Queue.md +158 -74
  105. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +171 -225
  106. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -22
  107. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +172 -94
  108. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +4 -4
  109. package/docs-site-docusaurus/docs/api/classes/SkipList.md +98 -75
  110. package/docs-site-docusaurus/docs/api/classes/Stack.md +112 -50
  111. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +104 -129
  112. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +90 -121
  113. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +298 -107
  114. package/docs-site-docusaurus/docs/api/classes/Trie.md +116 -58
  115. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
  116. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +59 -77
  117. package/package.json +45 -46
  118. package/src/common/error.ts +15 -32
  119. package/src/common/index.ts +0 -3
  120. package/src/data-structures/base/iterable-element-base.ts +0 -3
  121. package/src/data-structures/base/linear-base.ts +2 -36
  122. package/src/data-structures/binary-tree/avl-tree.ts +31 -529
  123. package/src/data-structures/binary-tree/binary-indexed-tree.ts +47 -572
  124. package/src/data-structures/binary-tree/binary-tree.ts +326 -1311
  125. package/src/data-structures/binary-tree/bst.ts +158 -1082
  126. package/src/data-structures/binary-tree/red-black-tree.ts +451 -1290
  127. package/src/data-structures/binary-tree/segment-tree.ts +73 -351
  128. package/src/data-structures/binary-tree/tree-map.ts +462 -5124
  129. package/src/data-structures/binary-tree/tree-multi-map.ts +302 -4914
  130. package/src/data-structures/binary-tree/tree-multi-set.ts +299 -3983
  131. package/src/data-structures/binary-tree/tree-set.ts +338 -4836
  132. package/src/data-structures/graph/abstract-graph.ts +98 -167
  133. package/src/data-structures/graph/directed-graph.ts +137 -562
  134. package/src/data-structures/graph/map-graph.ts +0 -3
  135. package/src/data-structures/graph/undirected-graph.ts +132 -511
  136. package/src/data-structures/hash/hash-map.ts +154 -582
  137. package/src/data-structures/heap/heap.ts +200 -795
  138. package/src/data-structures/linked-list/doubly-linked-list.ts +121 -865
  139. package/src/data-structures/linked-list/singly-linked-list.ts +122 -794
  140. package/src/data-structures/linked-list/skip-linked-list.ts +211 -918
  141. package/src/data-structures/matrix/matrix.ts +179 -518
  142. package/src/data-structures/matrix/navigator.ts +0 -1
  143. package/src/data-structures/priority-queue/max-priority-queue.ts +1 -6
  144. package/src/data-structures/priority-queue/min-priority-queue.ts +6 -11
  145. package/src/data-structures/priority-queue/priority-queue.ts +1 -2
  146. package/src/data-structures/queue/deque.ts +214 -882
  147. package/src/data-structures/queue/queue.ts +102 -625
  148. package/src/data-structures/stack/stack.ts +76 -505
  149. package/src/data-structures/trie/trie.ts +98 -628
  150. package/src/types/common.ts +0 -10
  151. package/src/types/data-structures/binary-tree/bst.ts +0 -7
  152. package/src/types/data-structures/binary-tree/red-black-tree.ts +0 -1
  153. package/src/types/data-structures/graph/abstract-graph.ts +0 -2
  154. package/src/types/data-structures/hash/hash-map.ts +0 -3
  155. package/src/types/data-structures/hash/index.ts +0 -1
  156. package/src/types/data-structures/matrix/navigator.ts +0 -2
  157. package/src/types/utils/utils.ts +0 -7
  158. package/src/types/utils/validate-type.ts +0 -7
  159. package/src/utils/number.ts +0 -2
  160. package/src/utils/utils.ts +0 -5
@@ -175,7 +175,6 @@ export declare class SinglyLinkedListNode<E = any> extends LinkedListNode<E> {
175
175
  * console.log(result); // [10, 20, 30];
176
176
  */
177
177
  export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase<E, R, SinglyLinkedListNode<E>> {
178
- protected _equals: (a: E, b: E) => boolean;
179
178
  /**
180
179
  * Create a SinglyLinkedList and optionally bulk-insert elements.
181
180
  * @remarks Time O(N), Space O(N)
@@ -234,179 +233,53 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
234
233
  * @remarks Time O(1), Space O(1)
235
234
  * @param elementOrNode - Element or node to append.
236
235
  * @returns True when appended.
237
-
238
-
239
-
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
-
250
-
251
-
252
-
253
-
254
-
255
-
256
-
257
-
258
-
259
-
260
-
261
-
262
-
263
-
264
-
265
-
266
-
267
-
268
-
269
-
270
-
271
-
272
-
273
-
274
-
275
-
276
-
277
-
278
-
279
- * @example
280
- * // basic SinglyLinkedList creation and push operation
281
- * // Create a simple SinglyLinkedList with initial values
282
- * const list = new SinglyLinkedList([1, 2, 3, 4, 5]);
283
- *
284
- * // Verify the list maintains insertion order
285
- * console.log([...list]); // [1, 2, 3, 4, 5];
286
- *
287
- * // Check length
288
- * console.log(list.length); // 5;
289
- *
290
- * // Push a new element to the end
291
- * list.push(6);
292
- * console.log(list.length); // 6;
293
- * console.log([...list]); // [1, 2, 3, 4, 5, 6];
236
+ * @example
237
+ * // basic SinglyLinkedList creation and push operation
238
+ * // Create a simple SinglyLinkedList with initial values
239
+ * const list = new SinglyLinkedList([1, 2, 3, 4, 5]);
240
+ *
241
+ * // Verify the list maintains insertion order
242
+ * console.log([...list]); // [1, 2, 3, 4, 5];
243
+ *
244
+ * // Check length
245
+ * console.log(list.length); // 5;
246
+ *
247
+ * // Push a new element to the end
248
+ * list.push(6);
249
+ * console.log(list.length); // 6;
250
+ * console.log([...list]); // [1, 2, 3, 4, 5, 6];
294
251
  */
295
252
  push(elementOrNode: E | SinglyLinkedListNode<E>): boolean;
296
253
  /**
297
254
  * Remove and return the tail element.
298
255
  * @remarks Time O(N), Space O(1)
299
256
  * @returns Removed element or undefined.
300
-
301
-
302
-
303
-
304
-
305
-
306
-
307
-
308
-
309
-
310
-
311
-
312
-
313
-
314
-
315
-
316
-
317
-
318
-
319
-
320
-
321
-
322
-
323
-
324
-
325
-
326
-
327
-
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
-
336
-
337
-
338
-
339
-
340
-
341
-
342
- * @example
343
- * // SinglyLinkedList pop and shift operations
344
- * const list = new SinglyLinkedList<number>([10, 20, 30, 40, 50]);
345
- *
346
- * // Pop removes from the end
347
- * const last = list.pop();
348
- * console.log(last); // 50;
349
- *
350
- * // Shift removes from the beginning
351
- * const first = list.shift();
352
- * console.log(first); // 10;
353
- *
354
- * // Verify remaining elements
355
- * console.log([...list]); // [20, 30, 40];
356
- * console.log(list.length); // 3;
257
+ * @example
258
+ * // SinglyLinkedList pop and shift operations
259
+ * const list = new SinglyLinkedList<number>([10, 20, 30, 40, 50]);
260
+ *
261
+ * // Pop removes from the end
262
+ * const last = list.pop();
263
+ * console.log(last); // 50;
264
+ *
265
+ * // Shift removes from the beginning
266
+ * const first = list.shift();
267
+ * console.log(first); // 10;
268
+ *
269
+ * // Verify remaining elements
270
+ * console.log([...list]); // [20, 30, 40];
271
+ * console.log(list.length); // 3;
357
272
  */
358
273
  pop(): E | undefined;
359
274
  /**
360
275
  * Remove and return the head element.
361
276
  * @remarks Time O(1), Space O(1)
362
277
  * @returns Removed element or undefined.
363
-
364
-
365
-
366
-
367
-
368
-
369
-
370
-
371
-
372
-
373
-
374
-
375
-
376
-
377
-
378
-
379
-
380
-
381
-
382
-
383
-
384
-
385
-
386
-
387
-
388
-
389
-
390
-
391
-
392
-
393
-
394
-
395
-
396
-
397
-
398
-
399
-
400
-
401
-
402
-
403
-
404
-
405
- * @example
406
- * // Remove from the front
407
- * const list = new SinglyLinkedList<number>([10, 20, 30]);
408
- * console.log(list.shift()); // 10;
409
- * console.log(list.length); // 2;
278
+ * @example
279
+ * // Remove from the front
280
+ * const list = new SinglyLinkedList<number>([10, 20, 30]);
281
+ * console.log(list.shift()); // 10;
282
+ * console.log(list.length); // 2;
410
283
  */
411
284
  shift(): E | undefined;
412
285
  /**
@@ -414,68 +287,26 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
414
287
  * @remarks Time O(1), Space O(1)
415
288
  * @param elementOrNode - Element or node to prepend.
416
289
  * @returns True when prepended.
417
-
418
-
419
-
420
-
421
-
422
-
423
-
424
-
425
-
426
-
427
-
428
-
429
-
430
-
431
-
432
-
433
-
434
-
435
-
436
-
437
-
438
-
439
-
440
-
441
-
442
-
443
-
444
-
445
-
446
-
447
-
448
-
449
-
450
-
451
-
452
-
453
-
454
-
455
-
456
-
457
-
458
-
459
- * @example
460
- * // SinglyLinkedList unshift and forward traversal
461
- * const list = new SinglyLinkedList<number>([20, 30, 40]);
462
- *
463
- * // Unshift adds to the beginning
464
- * list.unshift(10);
465
- * console.log([...list]); // [10, 20, 30, 40];
466
- *
467
- * // Access elements (forward traversal only for singly linked)
468
- * const second = list.at(1);
469
- * console.log(second); // 20;
470
- *
471
- * // SinglyLinkedList allows forward iteration only
472
- * const elements: number[] = [];
473
- * for (const item of list) {
474
- * elements.push(item);
475
- * }
476
- * console.log(elements); // [10, 20, 30, 40];
477
- *
478
- * console.log(list.length); // 4;
290
+ * @example
291
+ * // SinglyLinkedList unshift and forward traversal
292
+ * const list = new SinglyLinkedList<number>([20, 30, 40]);
293
+ *
294
+ * // Unshift adds to the beginning
295
+ * list.unshift(10);
296
+ * console.log([...list]); // [10, 20, 30, 40];
297
+ *
298
+ * // Access elements (forward traversal only for singly linked)
299
+ * const second = list.at(1);
300
+ * console.log(second); // 20;
301
+ *
302
+ * // SinglyLinkedList allows forward iteration only
303
+ * const elements: number[] = [];
304
+ * for (const item of list) {
305
+ * elements.push(item);
306
+ * }
307
+ * console.log(elements); // [10, 20, 30, 40];
308
+ *
309
+ * console.log(list.length); // 4;
479
310
  */
480
311
  unshift(elementOrNode: E | SinglyLinkedListNode<E>): boolean;
481
312
  /**
@@ -504,54 +335,12 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
504
335
  * @remarks Time O(N), Space O(1)
505
336
  * @param index - Zero-based index.
506
337
  * @returns Element or undefined.
507
-
508
-
509
-
510
-
511
-
512
-
513
-
514
-
515
-
516
-
517
-
518
-
519
-
520
-
521
-
522
-
523
-
524
-
525
-
526
-
527
-
528
-
529
-
530
-
531
-
532
-
533
-
534
-
535
-
536
-
537
-
538
-
539
-
540
-
541
-
542
-
543
-
544
-
545
-
546
-
547
-
548
-
549
- * @example
550
- * // Access element by index
551
- * const list = new SinglyLinkedList<string>(['a', 'b', 'c', 'd']);
552
- * console.log(list.at(0)); // 'a';
553
- * console.log(list.at(2)); // 'c';
554
- * console.log(list.at(3)); // 'd';
338
+ * @example
339
+ * // Access element by index
340
+ * const list = new SinglyLinkedList<string>(['a', 'b', 'c', 'd']);
341
+ * console.log(list.at(0)); // 'a';
342
+ * console.log(list.at(2)); // 'c';
343
+ * console.log(list.at(3)); // 'd';
555
344
  */
556
345
  at(index: number): E | undefined;
557
346
  /**
@@ -566,49 +355,10 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
566
355
  * @remarks Time O(N), Space O(1)
567
356
  * @param index - Zero-based index.
568
357
  * @returns Node or undefined.
569
-
570
-
571
-
572
-
573
-
574
-
575
-
576
-
577
-
578
-
579
-
580
-
581
-
582
-
583
-
584
-
585
-
586
-
587
-
588
-
589
-
590
-
591
-
592
-
593
-
594
-
595
-
596
-
597
-
598
-
599
-
600
-
601
-
602
-
603
-
604
-
605
-
606
-
607
-
608
- * @example
609
- * // Get node at index
610
- * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
611
- * console.log(list.getNodeAt(1)?.value); // 'b';
358
+ * @example
359
+ * // Get node at index
360
+ * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
361
+ * console.log(list.getNodeAt(1)?.value); // 'b';
612
362
  */
613
363
  getNodeAt(index: number): SinglyLinkedListNode<E> | undefined;
614
364
  /**
@@ -616,50 +366,11 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
616
366
  * @remarks Time O(N), Space O(1)
617
367
  * @param index - Zero-based index.
618
368
  * @returns Removed element or undefined.
619
-
620
-
621
-
622
-
623
-
624
-
625
-
626
-
627
-
628
-
629
-
630
-
631
-
632
-
633
-
634
-
635
-
636
-
637
-
638
-
639
-
640
-
641
-
642
-
643
-
644
-
645
-
646
-
647
-
648
-
649
-
650
-
651
-
652
-
653
-
654
-
655
-
656
-
657
-
658
- * @example
659
- * // Remove by index
660
- * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
661
- * list.deleteAt(1);
662
- * console.log(list.toArray()); // ['a', 'c'];
369
+ * @example
370
+ * // Remove by index
371
+ * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
372
+ * list.deleteAt(1);
373
+ * console.log(list.toArray()); // ['a', 'c'];
663
374
  */
664
375
  deleteAt(index: number): E | undefined;
665
376
  /**
@@ -667,50 +378,11 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
667
378
  * @remarks Time O(N), Space O(1)
668
379
  * @param [elementOrNode] - Element or node to remove; if omitted/undefined, nothing happens.
669
380
  * @returns True if removed.
670
-
671
-
672
-
673
-
674
-
675
-
676
-
677
-
678
-
679
-
680
-
681
-
682
-
683
-
684
-
685
-
686
-
687
-
688
-
689
-
690
-
691
-
692
-
693
-
694
-
695
-
696
-
697
-
698
-
699
-
700
-
701
-
702
-
703
-
704
-
705
-
706
-
707
-
708
-
709
- * @example
710
- * // Remove first occurrence
711
- * const list = new SinglyLinkedList<number>([1, 2, 3, 2]);
712
- * list.delete(2);
713
- * console.log(list.toArray()); // [1, 3, 2];
381
+ * @example
382
+ * // Remove first occurrence
383
+ * const list = new SinglyLinkedList<number>([1, 2, 3, 2]);
384
+ * list.delete(2);
385
+ * console.log(list.toArray()); // [1, 3, 2];
714
386
  */
715
387
  delete(elementOrNode: E | SinglyLinkedListNode<E> | undefined): boolean;
716
388
  /**
@@ -719,50 +391,11 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
719
391
  * @param index - Zero-based index.
720
392
  * @param newElementOrNode - Element or node to insert.
721
393
  * @returns True if inserted.
722
-
723
-
724
-
725
-
726
-
727
-
728
-
729
-
730
-
731
-
732
-
733
-
734
-
735
-
736
-
737
-
738
-
739
-
740
-
741
-
742
-
743
-
744
-
745
-
746
-
747
-
748
-
749
-
750
-
751
-
752
-
753
-
754
-
755
-
756
-
757
-
758
-
759
-
760
-
761
- * @example
762
- * // Insert at index
763
- * const list = new SinglyLinkedList<number>([1, 3]);
764
- * list.addAt(1, 2);
765
- * console.log(list.toArray()); // [1, 2, 3];
394
+ * @example
395
+ * // Insert at index
396
+ * const list = new SinglyLinkedList<number>([1, 3]);
397
+ * list.addAt(1, 2);
398
+ * console.log(list.toArray()); // [1, 2, 3];
766
399
  */
767
400
  addAt(index: number, newElementOrNode: E | SinglyLinkedListNode<E>): boolean;
768
401
  /**
@@ -777,153 +410,31 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
777
410
  * Check whether the list is empty.
778
411
  * @remarks Time O(1), Space O(1)
779
412
  * @returns True if length is 0.
780
-
781
-
782
-
783
-
784
-
785
-
786
-
787
-
788
-
789
-
790
-
791
-
792
-
793
-
794
-
795
-
796
-
797
-
798
-
799
-
800
-
801
-
802
-
803
-
804
-
805
-
806
-
807
-
808
-
809
-
810
-
811
-
812
-
813
-
814
-
815
-
816
-
817
-
818
-
819
-
820
- * @example
821
- * // Check empty
822
- * console.log(new SinglyLinkedList().isEmpty()); // true;
413
+ * @example
414
+ * // Check empty
415
+ * console.log(new SinglyLinkedList().isEmpty()); // true;
823
416
  */
824
417
  isEmpty(): boolean;
825
418
  /**
826
419
  * Remove all nodes and reset length.
827
420
  * @remarks Time O(N), Space O(1)
828
421
  * @returns void
829
-
830
-
831
-
832
-
833
-
834
-
835
-
836
-
837
-
838
-
839
-
840
-
841
-
842
-
843
-
844
-
845
-
846
-
847
-
848
-
849
-
850
-
851
-
852
-
853
-
854
-
855
-
856
-
857
-
858
-
859
-
860
-
861
-
862
-
863
-
864
-
865
-
866
-
867
-
868
-
869
- * @example
870
- * // Remove all
871
- * const list = new SinglyLinkedList<number>([1, 2, 3]);
872
- * list.clear();
873
- * console.log(list.isEmpty()); // true;
422
+ * @example
423
+ * // Remove all
424
+ * const list = new SinglyLinkedList<number>([1, 2, 3]);
425
+ * list.clear();
426
+ * console.log(list.isEmpty()); // true;
874
427
  */
875
428
  clear(): void;
876
429
  /**
877
430
  * Reverse the list in place.
878
431
  * @remarks Time O(N), Space O(1)
879
432
  * @returns This list.
880
-
881
-
882
-
883
-
884
-
885
-
886
-
887
-
888
-
889
-
890
-
891
-
892
-
893
-
894
-
895
-
896
-
897
-
898
-
899
-
900
-
901
-
902
-
903
-
904
-
905
-
906
-
907
-
908
-
909
-
910
-
911
-
912
-
913
-
914
-
915
-
916
-
917
-
918
-
919
-
920
-
921
-
922
- * @example
923
- * // Reverse the list in-place
924
- * const list = new SinglyLinkedList<number>([1, 2, 3, 4]);
925
- * list.reverse();
926
- * console.log([...list]); // [4, 3, 2, 1];
433
+ * @example
434
+ * // Reverse the list in-place
435
+ * const list = new SinglyLinkedList<number>([1, 2, 3, 4]);
436
+ * list.reverse();
437
+ * console.log([...list]); // [4, 3, 2, 1];
927
438
  */
928
439
  reverse(): this;
929
440
  /**
@@ -983,53 +494,13 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
983
494
  * Deep clone this list (values are copied by reference).
984
495
  * @remarks Time O(N), Space O(N)
985
496
  * @returns A new list with the same element sequence.
986
-
987
-
988
-
989
-
990
-
991
-
992
-
993
-
994
-
995
-
996
-
997
-
998
-
999
-
1000
-
1001
-
1002
-
1003
-
1004
-
1005
-
1006
-
1007
-
1008
-
1009
-
1010
-
1011
-
1012
-
1013
-
1014
-
1015
-
1016
-
1017
-
1018
-
1019
-
1020
-
1021
-
1022
-
1023
-
1024
-
1025
-
1026
- * @example
1027
- * // Deep copy
1028
- * const list = new SinglyLinkedList<number>([1, 2, 3]);
1029
- * const copy = list.clone();
1030
- * copy.pop();
1031
- * console.log(list.length); // 3;
1032
- * console.log(copy.length); // 2;
497
+ * @example
498
+ * // Deep copy
499
+ * const list = new SinglyLinkedList<number>([1, 2, 3]);
500
+ * const copy = list.clone();
501
+ * copy.pop();
502
+ * console.log(list.length); // 3;
503
+ * console.log(copy.length); // 2;
1033
504
  */
1034
505
  clone(): this;
1035
506
  /**
@@ -1038,63 +509,21 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
1038
509
  * @param callback - Predicate (value, index, list) → boolean to keep value.
1039
510
  * @param [thisArg] - Value for `this` inside the callback.
1040
511
  * @returns A new list with kept values.
1041
-
1042
-
1043
-
1044
-
1045
-
1046
-
1047
-
1048
-
1049
-
1050
-
1051
-
1052
-
1053
-
1054
-
1055
-
1056
-
1057
-
1058
-
1059
-
1060
-
1061
-
1062
-
1063
-
1064
-
1065
-
1066
-
1067
-
1068
-
1069
-
1070
-
1071
-
1072
-
1073
-
1074
-
1075
-
1076
-
1077
-
1078
-
1079
-
1080
-
1081
-
1082
-
1083
- * @example
1084
- * // SinglyLinkedList filter and map operations
1085
- * const list = new SinglyLinkedList<number>([1, 2, 3, 4, 5]);
1086
- *
1087
- * // Filter even numbers
1088
- * const filtered = list.filter(value => value % 2 === 0);
1089
- * console.log(filtered.length); // 2;
1090
- *
1091
- * // Map to double values
1092
- * const doubled = list.map(value => value * 2);
1093
- * console.log(doubled.length); // 5;
1094
- *
1095
- * // Use reduce to sum
1096
- * const sum = list.reduce((acc, value) => acc + value, 0);
1097
- * console.log(sum); // 15;
512
+ * @example
513
+ * // SinglyLinkedList filter and map operations
514
+ * const list = new SinglyLinkedList<number>([1, 2, 3, 4, 5]);
515
+ *
516
+ * // Filter even numbers
517
+ * const filtered = list.filter(value => value % 2 === 0);
518
+ * console.log(filtered.length); // 2;
519
+ *
520
+ * // Map to double values
521
+ * const doubled = list.map(value => value * 2);
522
+ * console.log(doubled.length); // 5;
523
+ *
524
+ * // Use reduce to sum
525
+ * const sum = list.reduce((acc, value) => acc + value, 0);
526
+ * console.log(sum); // 15;
1098
527
  */
1099
528
  filter(callback: ElementCallback<E, R, boolean>, thisArg?: unknown): this;
1100
529
  /**
@@ -1114,55 +543,14 @@ export declare class SinglyLinkedList<E = any, R = any> extends LinearLinkedBase
1114
543
  * @param [options] - Options for the output list (e.g., maxLen, toElementFn).
1115
544
  * @param [thisArg] - Value for `this` inside the callback.
1116
545
  * @returns A new SinglyLinkedList with mapped values.
1117
-
1118
-
1119
-
1120
-
1121
-
1122
-
1123
-
1124
-
1125
-
1126
-
1127
-
1128
-
1129
-
1130
-
1131
-
1132
-
1133
-
1134
-
1135
-
1136
-
1137
-
1138
-
1139
-
1140
-
1141
-
1142
-
1143
-
1144
-
1145
-
1146
-
1147
-
1148
-
1149
-
1150
-
1151
-
1152
-
1153
-
1154
-
1155
-
1156
-
1157
-
1158
-
1159
- * @example
1160
- * // Transform elements
1161
- * const list = new SinglyLinkedList<number>([1, 2, 3]);
1162
- * const doubled = list.map(n => n * 2);
1163
- * console.log([...doubled]); // [2, 4, 6];
546
+ * @example
547
+ * // Transform elements
548
+ * const list = new SinglyLinkedList<number>([1, 2, 3]);
549
+ * const doubled = list.map(n => n * 2);
550
+ * console.log([...doubled]); // [2, 4, 6];
1164
551
  */
1165
552
  map<EM, RM = any>(callback: ElementCallback<E, R, EM>, options?: SinglyLinkedListOptions<EM, RM>, thisArg?: unknown): SinglyLinkedList<EM, RM>;
553
+ protected _equals: (a: E, b: E) => boolean;
1166
554
  /**
1167
555
  * (Protected) Create a node from a value.
1168
556
  * @remarks Time O(1), Space O(1)