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
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: Stack\<E, R\>
8
8
 
9
- Defined in: [data-structures/stack/stack.ts:135](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L135)
9
+ Defined in: [data-structures/stack/stack.ts:134](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L134)
10
10
 
11
11
  LIFO stack with array storage and optional record→element conversion.
12
12
 
@@ -170,7 +170,7 @@ Time O(1), Space O(1)
170
170
  new Stack<E, R>(elements?, options?): Stack<E, R>;
171
171
  ```
172
172
 
173
- Defined in: [data-structures/stack/stack.ts:146](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L146)
173
+ Defined in: [data-structures/stack/stack.ts:142](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L142)
174
174
 
175
175
  Create a Stack and optionally bulk-push elements.
176
176
 
@@ -212,7 +212,7 @@ Time O(N), Space O(N)
212
212
  get elements(): E[];
213
213
  ```
214
214
 
215
- Defined in: [data-structures/stack/stack.ts:159](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L159)
215
+ Defined in: [data-structures/stack/stack.ts:154](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L154)
216
216
 
217
217
  Get the backing array of elements.
218
218
 
@@ -236,7 +236,7 @@ Internal elements array.
236
236
  get size(): number;
237
237
  ```
238
238
 
239
- Defined in: [data-structures/stack/stack.ts:210](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L210)
239
+ Defined in: [data-structures/stack/stack.ts:167](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L167)
240
240
 
241
241
  Get the number of stored elements.
242
242
 
@@ -258,8 +258,6 @@ Time O(1), Space O(1)
258
258
 
259
259
  Current size.
260
260
 
261
- *
262
-
263
261
  ***
264
262
 
265
263
  ### toElementFn
@@ -330,7 +328,7 @@ Producing the iterator is O(1); consuming the entire iterator is Time O(n) with
330
328
  clear(): void;
331
329
  ```
332
330
 
333
- Defined in: [data-structures/stack/stack.ts:621](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L621)
331
+ Defined in: [data-structures/stack/stack.ts:339](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L339)
334
332
 
335
333
  Remove all elements and reset storage.
336
334
 
@@ -340,8 +338,6 @@ Remove all elements and reset storage.
340
338
 
341
339
  void
342
340
 
343
- *
344
-
345
341
  #### Remarks
346
342
 
347
343
  Time O(1), Space O(1)
@@ -367,7 +363,7 @@ Time O(1), Space O(1)
367
363
  clone(): this;
368
364
  ```
369
365
 
370
- Defined in: [data-structures/stack/stack.ts:675](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L675)
366
+ Defined in: [data-structures/stack/stack.ts:355](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L355)
371
367
 
372
368
  Deep clone this stack.
373
369
 
@@ -377,8 +373,6 @@ Deep clone this stack.
377
373
 
378
374
  A new stack with the same content.
379
375
 
380
- *
381
-
382
376
  #### Remarks
383
377
 
384
378
  Time O(N), Space O(N)
@@ -406,7 +400,7 @@ Time O(N), Space O(N)
406
400
  delete(element): boolean;
407
401
  ```
408
402
 
409
- Defined in: [data-structures/stack/stack.ts:538](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L538)
403
+ Defined in: [data-structures/stack/stack.ts:296](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L296)
410
404
 
411
405
  Delete the first occurrence of a specific element.
412
406
 
@@ -424,8 +418,6 @@ Element to remove (using the configured equality).
424
418
 
425
419
  True if an element was removed.
426
420
 
427
- *
428
-
429
421
  #### Remarks
430
422
 
431
423
  Time O(N), Space O(1)
@@ -447,7 +439,7 @@ Time O(N), Space O(1)
447
439
  deleteAt(index): E | undefined;
448
440
  ```
449
441
 
450
- Defined in: [data-structures/stack/stack.ts:550](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L550)
442
+ Defined in: [data-structures/stack/stack.ts:307](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L307)
451
443
 
452
444
  Delete the element at an index.
453
445
 
@@ -477,7 +469,7 @@ Time O(N), Space O(1)
477
469
  deleteWhere(predicate): boolean;
478
470
  ```
479
471
 
480
- Defined in: [data-structures/stack/stack.ts:563](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L563)
472
+ Defined in: [data-structures/stack/stack.ts:319](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L319)
481
473
 
482
474
  Delete the first element that satisfies a predicate.
483
475
 
@@ -501,6 +493,30 @@ Time O(N), Space O(1)
501
493
 
502
494
  ***
503
495
 
496
+ ### entries()
497
+
498
+ ```ts
499
+ entries(): IterableIterator<[number, E]>;
500
+ ```
501
+
502
+ Defined in: [data-structures/base/iterable-element-base.ts:207](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L207)
503
+
504
+ Return an iterator of `[index, value]` pairs (Array-compatible).
505
+
506
+ #### Returns
507
+
508
+ `IterableIterator`\<\[`number`, `E`\]\>
509
+
510
+ #### Remarks
511
+
512
+ Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
513
+
514
+ #### Inherited from
515
+
516
+ [`IterableElementBase`](IterableElementBase.md).[`entries`](IterableElementBase.md#entries)
517
+
518
+ ***
519
+
504
520
  ### every()
505
521
 
506
522
  ```ts
@@ -547,7 +563,7 @@ Time O(n) in the worst case; may exit early when the first failure is found. Spa
547
563
  filter(predicate, thisArg?): this;
548
564
  ```
549
565
 
550
- Defined in: [data-structures/stack/stack.ts:731](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L731)
566
+ Defined in: [data-structures/stack/stack.ts:373](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L373)
551
567
 
552
568
  Filter elements into a new stack of the same class.
553
569
 
@@ -571,8 +587,6 @@ Value for `this` inside the predicate.
571
587
 
572
588
  A new stack with kept values.
573
589
 
574
- *
575
-
576
590
  #### Remarks
577
591
 
578
592
  Time O(N), Space O(N)
@@ -728,7 +742,7 @@ Time O(n), Space O(1).
728
742
  has(element): boolean;
729
743
  ```
730
744
 
731
- Defined in: [data-structures/base/iterable-element-base.ts:189](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L189)
745
+ Defined in: [data-structures/base/iterable-element-base.ts:188](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L188)
732
746
 
733
747
  Checks whether a strictly-equal element exists in the structure.
734
748
 
@@ -756,13 +770,47 @@ Time O(n) in the worst case. Space O(1).
756
770
 
757
771
  ***
758
772
 
773
+ ### includes()
774
+
775
+ ```ts
776
+ includes(element): boolean;
777
+ ```
778
+
779
+ Defined in: [data-structures/base/iterable-element-base.ts:199](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L199)
780
+
781
+ Check whether a value exists (Array-compatible alias for `has`).
782
+
783
+ #### Parameters
784
+
785
+ ##### element
786
+
787
+ `E`
788
+
789
+ Element to search for (uses `===`).
790
+
791
+ #### Returns
792
+
793
+ `boolean`
794
+
795
+ `true` if found.
796
+
797
+ #### Remarks
798
+
799
+ Provided for familiarity when migrating from Array. Time O(n), Space O(1).
800
+
801
+ #### Inherited from
802
+
803
+ [`IterableElementBase`](IterableElementBase.md).[`includes`](IterableElementBase.md#includes)
804
+
805
+ ***
806
+
759
807
  ### isEmpty()
760
808
 
761
809
  ```ts
762
810
  isEmpty(): boolean;
763
811
  ```
764
812
 
765
- Defined in: [data-structures/stack/stack.ts:284](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L284)
813
+ Defined in: [data-structures/stack/stack.ts:200](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L200)
766
814
 
767
815
  Check whether the stack is empty.
768
816
 
@@ -772,8 +820,6 @@ Check whether the stack is empty.
772
820
 
773
821
  True if size is 0.
774
822
 
775
- *
776
-
777
823
  #### Remarks
778
824
 
779
825
  Time O(1), Space O(1)
@@ -794,6 +840,30 @@ Time O(1), Space O(1)
794
840
 
795
841
  ***
796
842
 
843
+ ### keys()
844
+
845
+ ```ts
846
+ keys(): IterableIterator<number>;
847
+ ```
848
+
849
+ Defined in: [data-structures/base/iterable-element-base.ts:218](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L218)
850
+
851
+ Return an iterator of numeric indices (Array-compatible).
852
+
853
+ #### Returns
854
+
855
+ `IterableIterator`\<`number`\>
856
+
857
+ #### Remarks
858
+
859
+ Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
860
+
861
+ #### Inherited from
862
+
863
+ [`IterableElementBase`](IterableElementBase.md).[`keys`](IterableElementBase.md#keys)
864
+
865
+ ***
866
+
797
867
  ### map()
798
868
 
799
869
  ```ts
@@ -803,7 +873,7 @@ map<EM, RM>(
803
873
  thisArg?): Stack<EM, RM>;
804
874
  ```
805
875
 
806
- Defined in: [data-structures/stack/stack.ts:811](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L811)
876
+ Defined in: [data-structures/stack/stack.ts:415](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L415)
807
877
 
808
878
  Map values into a new stack (possibly different element type).
809
879
 
@@ -843,8 +913,6 @@ Value for `this` inside the callback.
843
913
 
844
914
  A new Stack with mapped elements.
845
915
 
846
- *
847
-
848
916
  #### Remarks
849
917
 
850
918
  Time O(N), Space O(N)
@@ -870,7 +938,7 @@ Time O(N), Space O(N)
870
938
  mapSame(callback, thisArg?): this;
871
939
  ```
872
940
 
873
- Defined in: [data-structures/stack/stack.ts:749](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L749)
941
+ Defined in: [data-structures/stack/stack.ts:390](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L390)
874
942
 
875
943
  Map values into a new stack of the same element type.
876
944
 
@@ -910,7 +978,7 @@ Time O(N), Space O(N)
910
978
  peek(): E | undefined;
911
979
  ```
912
980
 
913
- Defined in: [data-structures/stack/stack.ts:338](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L338)
981
+ Defined in: [data-structures/stack/stack.ts:214](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L214)
914
982
 
915
983
  Get the top element without removing it.
916
984
 
@@ -920,8 +988,6 @@ Get the top element without removing it.
920
988
 
921
989
  Top element or undefined.
922
990
 
923
- *
924
-
925
991
  #### Remarks
926
992
 
927
993
  Time O(1), Space O(1)
@@ -943,7 +1009,7 @@ Time O(1), Space O(1)
943
1009
  pop(): E | undefined;
944
1010
  ```
945
1011
 
946
- Defined in: [data-structures/stack/stack.ts:470](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L470)
1012
+ Defined in: [data-structures/stack/stack.ts:266](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L266)
947
1013
 
948
1014
  Pop and return the top element.
949
1015
 
@@ -953,8 +1019,6 @@ Pop and return the top element.
953
1019
 
954
1020
  Removed element or undefined.
955
1021
 
956
- *
957
-
958
1022
  #### Remarks
959
1023
 
960
1024
  Time O(1), Space O(1)
@@ -989,7 +1053,7 @@ Time O(1), Space O(1)
989
1053
  print(): void;
990
1054
  ```
991
1055
 
992
- Defined in: [data-structures/base/iterable-element-base.ts:269](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L269)
1056
+ Defined in: [data-structures/base/iterable-element-base.ts:298](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L298)
993
1057
 
994
1058
  Prints `toVisual()` to the console. Intended for quick debugging.
995
1059
 
@@ -1015,7 +1079,7 @@ Time O(n) due to materialization, Space O(n) for the intermediate representation
1015
1079
  push(element): boolean;
1016
1080
  ```
1017
1081
 
1018
- Defined in: [data-structures/stack/stack.ts:402](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L402)
1082
+ Defined in: [data-structures/stack/stack.ts:238](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L238)
1019
1083
 
1020
1084
  Push one element onto the top.
1021
1085
 
@@ -1033,8 +1097,6 @@ Element to push.
1033
1097
 
1034
1098
  True when pushed.
1035
1099
 
1036
- *
1037
-
1038
1100
  #### Remarks
1039
1101
 
1040
1102
  Time O(1), Space O(1)
@@ -1065,7 +1127,7 @@ Time O(1), Space O(1)
1065
1127
  pushMany(elements): boolean[];
1066
1128
  ```
1067
1129
 
1068
- Defined in: [data-structures/stack/stack.ts:481](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L481)
1130
+ Defined in: [data-structures/stack/stack.ts:276](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L276)
1069
1131
 
1070
1132
  Push many elements from an iterable.
1071
1133
 
@@ -1127,7 +1189,7 @@ Time O(n), Space O(1). Throws if called on an empty structure without `initialVa
1127
1189
  reduce(callbackfn): E;
1128
1190
  ```
1129
1191
 
1130
- Defined in: [data-structures/base/iterable-element-base.ts:194](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L194)
1192
+ Defined in: [data-structures/base/iterable-element-base.ts:225](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L225)
1131
1193
 
1132
1194
  ##### Parameters
1133
1195
 
@@ -1149,7 +1211,7 @@ Defined in: [data-structures/base/iterable-element-base.ts:194](https://github.c
1149
1211
  reduce(callbackfn, initialValue): E;
1150
1212
  ```
1151
1213
 
1152
- Defined in: [data-structures/base/iterable-element-base.ts:195](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L195)
1214
+ Defined in: [data-structures/base/iterable-element-base.ts:226](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L226)
1153
1215
 
1154
1216
  ##### Parameters
1155
1217
 
@@ -1175,7 +1237,7 @@ Defined in: [data-structures/base/iterable-element-base.ts:195](https://github.c
1175
1237
  reduce<U>(callbackfn, initialValue): U;
1176
1238
  ```
1177
1239
 
1178
- Defined in: [data-structures/base/iterable-element-base.ts:196](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L196)
1240
+ Defined in: [data-structures/base/iterable-element-base.ts:227](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L227)
1179
1241
 
1180
1242
  ##### Type Parameters
1181
1243
 
@@ -1209,7 +1271,7 @@ Defined in: [data-structures/base/iterable-element-base.ts:196](https://github.c
1209
1271
  setEquality(equals): this;
1210
1272
  ```
1211
1273
 
1212
- Defined in: [data-structures/stack/stack.ts:832](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L832)
1274
+ Defined in: [data-structures/stack/stack.ts:435](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L435)
1213
1275
 
1214
1276
  Set the equality comparator used by delete/search operations.
1215
1277
 
@@ -1279,7 +1341,7 @@ Time O(n) in the worst case; may exit early on first success. Space O(1).
1279
1341
  toArray(): E[];
1280
1342
  ```
1281
1343
 
1282
- Defined in: [data-structures/base/iterable-element-base.ts:246](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L246)
1344
+ Defined in: [data-structures/base/iterable-element-base.ts:275](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L275)
1283
1345
 
1284
1346
  Materializes the elements into a new array.
1285
1347
 
@@ -1305,7 +1367,7 @@ Time O(n), Space O(n).
1305
1367
  toVisual(): E[];
1306
1368
  ```
1307
1369
 
1308
- Defined in: [data-structures/base/iterable-element-base.ts:258](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L258)
1370
+ Defined in: [data-structures/base/iterable-element-base.ts:287](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/base/iterable-element-base.ts#L287)
1309
1371
 
1310
1372
  Returns a representation of the structure suitable for quick visualization.
1311
1373
  Defaults to an array of elements; subclasses may override to provide richer visuals.
@@ -1361,7 +1423,7 @@ static fromArray<E, R>(
1361
1423
  options?): any;
1362
1424
  ```
1363
1425
 
1364
- Defined in: [data-structures/stack/stack.ts:225](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L225)
1426
+ Defined in: [data-structures/stack/stack.ts:181](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L181)
1365
1427
 
1366
1428
  Create a stack from an array of elements.
1367
1429
 
@@ -1446,7 +1508,7 @@ Time O(1), Space O(1).
1446
1508
  protected _createInstance(options?): this;
1447
1509
  ```
1448
1510
 
1449
- Defined in: [data-structures/stack/stack.ts:856](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L856)
1511
+ Defined in: [data-structures/stack/stack.ts:459](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L459)
1450
1512
 
1451
1513
  (Protected) Create an empty instance of the same concrete class.
1452
1514
 
@@ -1476,7 +1538,7 @@ Time O(1), Space O(1)
1476
1538
  protected _createLike<T, RR>(elements?, options?): Stack<T, RR>;
1477
1539
  ```
1478
1540
 
1479
- Defined in: [data-structures/stack/stack.ts:871](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L871)
1541
+ Defined in: [data-structures/stack/stack.ts:473](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L473)
1480
1542
 
1481
1543
  (Protected) Create a like-kind stack and seed it from an iterable.
1482
1544
 
@@ -1522,7 +1584,7 @@ Time O(N), Space O(N)
1522
1584
  protected _getIterator(): IterableIterator<E>;
1523
1585
  ```
1524
1586
 
1525
- Defined in: [data-structures/stack/stack.ts:888](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L888)
1587
+ Defined in: [data-structures/stack/stack.ts:489](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L489)
1526
1588
 
1527
1589
  (Protected) Iterate elements from bottom to top.
1528
1590
 
@@ -1548,7 +1610,7 @@ Time O(N), Space O(1)
1548
1610
  protected _indexOfByEquals(target): number;
1549
1611
  ```
1550
1612
 
1551
- Defined in: [data-structures/stack/stack.ts:844](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L844)
1613
+ Defined in: [data-structures/stack/stack.ts:448](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/stack/stack.ts#L448)
1552
1614
 
1553
1615
  (Protected) Find the index of a target element using the equality function.
1554
1616