data-structure-typed 1.53.7 → 1.53.9

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 (164) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/CONTRIBUTING.md +1 -1
  3. package/dist/cjs/common/index.js +5 -0
  4. package/dist/cjs/common/index.js.map +1 -1
  5. package/dist/cjs/data-structures/base/iterable-entry-base.js +4 -4
  6. package/dist/cjs/data-structures/base/iterable-entry-base.js.map +1 -1
  7. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +36 -17
  8. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +65 -36
  9. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
  10. package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +12 -8
  11. package/dist/cjs/data-structures/binary-tree/avl-tree.js +19 -6
  12. package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
  13. package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +53 -40
  14. package/dist/cjs/data-structures/binary-tree/binary-tree.js +76 -72
  15. package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
  16. package/dist/cjs/data-structures/binary-tree/bst.d.ts +87 -52
  17. package/dist/cjs/data-structures/binary-tree/bst.js +111 -63
  18. package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
  19. package/dist/cjs/data-structures/binary-tree/index.d.ts +1 -1
  20. package/dist/cjs/data-structures/binary-tree/index.js +1 -1
  21. package/dist/cjs/data-structures/binary-tree/index.js.map +1 -1
  22. package/dist/cjs/data-structures/binary-tree/{rb-tree.d.ts → red-black-tree.d.ts} +83 -10
  23. package/dist/cjs/data-structures/binary-tree/{rb-tree.js → red-black-tree.js} +92 -45
  24. package/dist/cjs/data-structures/binary-tree/red-black-tree.js.map +1 -0
  25. package/dist/cjs/data-structures/binary-tree/tree-multi-map.d.ts +34 -18
  26. package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +66 -40
  27. package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
  28. package/dist/cjs/data-structures/graph/abstract-graph.js +2 -2
  29. package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
  30. package/dist/cjs/data-structures/hash/hash-map.d.ts +31 -1
  31. package/dist/cjs/data-structures/hash/hash-map.js +35 -5
  32. package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
  33. package/dist/cjs/data-structures/heap/heap.d.ts +20 -3
  34. package/dist/cjs/data-structures/heap/heap.js +31 -11
  35. package/dist/cjs/data-structures/heap/heap.js.map +1 -1
  36. package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +46 -11
  37. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +68 -21
  38. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
  39. package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +44 -11
  40. package/dist/cjs/data-structures/linked-list/singly-linked-list.js +70 -26
  41. package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
  42. package/dist/cjs/data-structures/queue/deque.d.ts +37 -8
  43. package/dist/cjs/data-structures/queue/deque.js +73 -29
  44. package/dist/cjs/data-structures/queue/deque.js.map +1 -1
  45. package/dist/cjs/data-structures/queue/queue.d.ts +41 -1
  46. package/dist/cjs/data-structures/queue/queue.js +51 -9
  47. package/dist/cjs/data-structures/queue/queue.js.map +1 -1
  48. package/dist/cjs/data-structures/stack/stack.d.ts +27 -10
  49. package/dist/cjs/data-structures/stack/stack.js +39 -20
  50. package/dist/cjs/data-structures/stack/stack.js.map +1 -1
  51. package/dist/cjs/data-structures/trie/trie.d.ts +12 -13
  52. package/dist/cjs/data-structures/trie/trie.js +12 -13
  53. package/dist/cjs/data-structures/trie/trie.js.map +1 -1
  54. package/dist/cjs/interfaces/binary-tree.d.ts +3 -4
  55. package/dist/cjs/types/data-structures/base/base.d.ts +1 -1
  56. package/dist/cjs/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +2 -3
  57. package/dist/cjs/types/data-structures/binary-tree/avl-tree.d.ts +2 -3
  58. package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +2 -3
  59. package/dist/cjs/types/data-structures/binary-tree/bst.d.ts +3 -4
  60. package/dist/cjs/types/data-structures/binary-tree/rb-tree.d.ts +4 -5
  61. package/dist/cjs/types/data-structures/binary-tree/tree-multi-map.d.ts +4 -5
  62. package/dist/mjs/common/index.js +5 -0
  63. package/dist/mjs/common/index.js.map +1 -1
  64. package/dist/mjs/data-structures/base/iterable-entry-base.js +4 -4
  65. package/dist/mjs/data-structures/base/iterable-entry-base.js.map +1 -1
  66. package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +36 -17
  67. package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js +65 -36
  68. package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
  69. package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +12 -8
  70. package/dist/mjs/data-structures/binary-tree/avl-tree.js +19 -6
  71. package/dist/mjs/data-structures/binary-tree/avl-tree.js.map +1 -1
  72. package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +53 -40
  73. package/dist/mjs/data-structures/binary-tree/binary-tree.js +76 -72
  74. package/dist/mjs/data-structures/binary-tree/binary-tree.js.map +1 -1
  75. package/dist/mjs/data-structures/binary-tree/bst.d.ts +87 -52
  76. package/dist/mjs/data-structures/binary-tree/bst.js +127 -79
  77. package/dist/mjs/data-structures/binary-tree/bst.js.map +1 -1
  78. package/dist/mjs/data-structures/binary-tree/index.d.ts +1 -1
  79. package/dist/mjs/data-structures/binary-tree/index.js +1 -1
  80. package/dist/mjs/data-structures/binary-tree/index.js.map +1 -1
  81. package/dist/mjs/data-structures/binary-tree/{rb-tree.d.ts → red-black-tree.d.ts} +83 -10
  82. package/dist/mjs/data-structures/binary-tree/{rb-tree.js → red-black-tree.js} +92 -45
  83. package/dist/mjs/data-structures/binary-tree/red-black-tree.js.map +1 -0
  84. package/dist/mjs/data-structures/binary-tree/tree-multi-map.d.ts +34 -18
  85. package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +64 -38
  86. package/dist/mjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
  87. package/dist/mjs/data-structures/graph/abstract-graph.js +2 -2
  88. package/dist/mjs/data-structures/graph/abstract-graph.js.map +1 -1
  89. package/dist/mjs/data-structures/hash/hash-map.d.ts +31 -1
  90. package/dist/mjs/data-structures/hash/hash-map.js +35 -5
  91. package/dist/mjs/data-structures/hash/hash-map.js.map +1 -1
  92. package/dist/mjs/data-structures/heap/heap.d.ts +20 -3
  93. package/dist/mjs/data-structures/heap/heap.js +31 -11
  94. package/dist/mjs/data-structures/heap/heap.js.map +1 -1
  95. package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +46 -11
  96. package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +68 -21
  97. package/dist/mjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
  98. package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +44 -11
  99. package/dist/mjs/data-structures/linked-list/singly-linked-list.js +70 -26
  100. package/dist/mjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
  101. package/dist/mjs/data-structures/queue/deque.d.ts +37 -8
  102. package/dist/mjs/data-structures/queue/deque.js +73 -29
  103. package/dist/mjs/data-structures/queue/deque.js.map +1 -1
  104. package/dist/mjs/data-structures/queue/queue.d.ts +41 -1
  105. package/dist/mjs/data-structures/queue/queue.js +51 -9
  106. package/dist/mjs/data-structures/queue/queue.js.map +1 -1
  107. package/dist/mjs/data-structures/stack/stack.d.ts +27 -10
  108. package/dist/mjs/data-structures/stack/stack.js +39 -20
  109. package/dist/mjs/data-structures/stack/stack.js.map +1 -1
  110. package/dist/mjs/data-structures/trie/trie.d.ts +12 -13
  111. package/dist/mjs/data-structures/trie/trie.js +12 -13
  112. package/dist/mjs/data-structures/trie/trie.js.map +1 -1
  113. package/dist/mjs/interfaces/binary-tree.d.ts +3 -4
  114. package/dist/mjs/types/data-structures/base/base.d.ts +1 -1
  115. package/dist/mjs/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +2 -3
  116. package/dist/mjs/types/data-structures/binary-tree/avl-tree.d.ts +2 -3
  117. package/dist/mjs/types/data-structures/binary-tree/binary-tree.d.ts +2 -3
  118. package/dist/mjs/types/data-structures/binary-tree/bst.d.ts +3 -4
  119. package/dist/mjs/types/data-structures/binary-tree/rb-tree.d.ts +4 -5
  120. package/dist/mjs/types/data-structures/binary-tree/tree-multi-map.d.ts +4 -5
  121. package/dist/umd/data-structure-typed.js +722 -356
  122. package/dist/umd/data-structure-typed.min.js +3 -3
  123. package/dist/umd/data-structure-typed.min.js.map +1 -1
  124. package/package.json +6 -6
  125. package/src/common/index.ts +7 -1
  126. package/src/data-structures/base/iterable-entry-base.ts +4 -4
  127. package/src/data-structures/binary-tree/avl-tree-multi-map.ts +82 -55
  128. package/src/data-structures/binary-tree/avl-tree.ts +32 -15
  129. package/src/data-structures/binary-tree/binary-tree.ts +89 -84
  130. package/src/data-structures/binary-tree/bst.ts +149 -97
  131. package/src/data-structures/binary-tree/index.ts +1 -1
  132. package/src/data-structures/binary-tree/{rb-tree.ts → red-black-tree.ts} +105 -55
  133. package/src/data-structures/binary-tree/tree-multi-map.ts +81 -51
  134. package/src/data-structures/graph/abstract-graph.ts +2 -2
  135. package/src/data-structures/hash/hash-map.ts +37 -7
  136. package/src/data-structures/heap/heap.ts +33 -10
  137. package/src/data-structures/linked-list/doubly-linked-list.ts +75 -21
  138. package/src/data-structures/linked-list/singly-linked-list.ts +77 -27
  139. package/src/data-structures/queue/deque.ts +72 -28
  140. package/src/data-structures/queue/queue.ts +50 -7
  141. package/src/data-structures/stack/stack.ts +39 -20
  142. package/src/data-structures/trie/trie.ts +8 -3
  143. package/src/interfaces/binary-tree.ts +3 -13
  144. package/src/types/data-structures/base/base.ts +1 -1
  145. package/src/types/data-structures/binary-tree/avl-tree-multi-map.ts +2 -4
  146. package/src/types/data-structures/binary-tree/avl-tree.ts +2 -4
  147. package/src/types/data-structures/binary-tree/binary-tree.ts +3 -3
  148. package/src/types/data-structures/binary-tree/bst.ts +3 -5
  149. package/src/types/data-structures/binary-tree/rb-tree.ts +4 -6
  150. package/src/types/data-structures/binary-tree/tree-multi-map.ts +4 -6
  151. package/test/integration/index.html +3 -3
  152. package/test/performance/data-structures/binary-tree/binary-tree-overall.test.ts +3 -3
  153. package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +12 -12
  154. package/test/unit/data-structures/binary-tree/avl-tree.test.ts +10 -10
  155. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +45 -45
  156. package/test/unit/data-structures/binary-tree/bst.test.ts +90 -96
  157. package/test/unit/data-structures/binary-tree/data/cost-of-living-by-country.ts +259 -0
  158. package/test/unit/data-structures/binary-tree/overall.test.ts +2 -0
  159. package/test/unit/data-structures/binary-tree/{rb-tree.test.ts → red-black-tree.test.ts} +67 -92
  160. package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +10 -10
  161. package/test/unit/data-structures/graph/directed-graph.test.ts +4 -4
  162. package/test/unit/data-structures/hash/hash-map.test.ts +12 -12
  163. package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +0 -1
  164. package/dist/mjs/data-structures/binary-tree/rb-tree.js.map +0 -1
@@ -510,15 +510,7 @@ export class DoublyLinkedList extends IterableElementBase {
510
510
  this._head = undefined;
511
511
  this._tail = undefined;
512
512
  this._size = 0;
513
- if (elements) {
514
- for (const el of elements) {
515
- if (this.toElementFn) {
516
- this.push(this.toElementFn(el));
517
- }
518
- else
519
- this.push(el);
520
- }
521
- }
513
+ this.pushMany(elements);
522
514
  }
523
515
  _head;
524
516
  /**
@@ -565,6 +557,18 @@ export class DoublyLinkedList extends IterableElementBase {
565
557
  get last() {
566
558
  return this.tail?.value;
567
559
  }
560
+ /**
561
+ * Time Complexity: O(n)
562
+ * Space Complexity: O(n)
563
+ *
564
+ * The `fromArray` function creates a new instance of a DoublyLinkedList and populates it with the elements from the
565
+ * given array.
566
+ * @param {E[]} data - The `data` parameter is an array of elements of type `E`.
567
+ * @returns The `fromArray` function returns a DoublyLinkedList object.
568
+ */
569
+ static fromArray(data) {
570
+ return new DoublyLinkedList(data);
571
+ }
568
572
  /**
569
573
  * Time Complexity: O(1)
570
574
  * Space Complexity: O(1)
@@ -673,6 +677,55 @@ export class DoublyLinkedList extends IterableElementBase {
673
677
  this._size++;
674
678
  return true;
675
679
  }
680
+ /**
681
+ * Time Complexity: O(k)
682
+ * Space Complexity: O(k)
683
+ *
684
+ * The function `pushMany` iterates over elements and pushes them into a data structure, applying a
685
+ * transformation function if provided.
686
+ * @param {Iterable<E> | Iterable<R> | Iterable<DoublyLinkedListNode<E>>} elements - The `elements`
687
+ * parameter in the `pushMany` function can accept an iterable containing elements of type `E`, `R`,
688
+ * or `DoublyLinkedListNode<E>`. The function iterates over each element in the iterable and pushes
689
+ * it onto the linked list. If a transformation function `to
690
+ * @returns The `pushMany` function is returning an array of boolean values (`ans`) which indicate
691
+ * the success or failure of pushing each element into the data structure.
692
+ */
693
+ pushMany(elements) {
694
+ const ans = [];
695
+ for (const el of elements) {
696
+ if (this.toElementFn) {
697
+ ans.push(this.push(this.toElementFn(el)));
698
+ continue;
699
+ }
700
+ ans.push(this.push(el));
701
+ }
702
+ return ans;
703
+ }
704
+ /**
705
+ * Time Complexity: O(k)
706
+ * Space Complexity: O(k)
707
+ *
708
+ * The function `unshiftMany` iterates through a collection of elements and adds them to the
709
+ * beginning of a Doubly Linked List, returning an array of boolean values indicating the success of
710
+ * each insertion.
711
+ * @param {Iterable<E> | Iterable<R> | Iterable<DoublyLinkedListNode<E>>} elements - The `elements`
712
+ * parameter in the `unshiftMany` function can accept an iterable containing elements of type `E`,
713
+ * `R`, or `DoublyLinkedListNode<E>`. The function iterates over each element in the iterable and
714
+ * performs an `unshift` operation on the doubly linked list
715
+ * @returns The `unshiftMany` function returns an array of boolean values indicating the success of
716
+ * each unshift operation performed on the elements passed as input.
717
+ */
718
+ unshiftMany(elements) {
719
+ const ans = [];
720
+ for (const el of elements) {
721
+ if (this.toElementFn) {
722
+ ans.push(this.unshift(this.toElementFn(el)));
723
+ continue;
724
+ }
725
+ ans.push(this.unshift(el));
726
+ }
727
+ return ans;
728
+ }
676
729
  /**
677
730
  * Time Complexity: O(n)
678
731
  * Space Complexity: O(1)
@@ -1124,6 +1177,12 @@ export class DoublyLinkedList extends IterableElementBase {
1124
1177
  * Time Complexity: O(n)
1125
1178
  * Space Complexity: O(1)
1126
1179
  *
1180
+ * The function `countOccurrences` iterates through a doubly linked list and counts the occurrences
1181
+ * of a specified element or nodes that satisfy a given predicate.
1182
+ * @param {E | DoublyLinkedListNode<E> | ((node: DoublyLinkedListNode<E>) => boolean)} elementOrNode
1183
+ * - The `elementOrNode` parameter in the `countOccurrences` method can accept three types of values:
1184
+ * @returns The `countOccurrences` method returns the number of occurrences of the specified element,
1185
+ * node, or predicate function in the doubly linked list.
1127
1186
  */
1128
1187
  countOccurrences(elementOrNode) {
1129
1188
  const predicate = this._ensurePredicate(elementOrNode);
@@ -1137,18 +1196,6 @@ export class DoublyLinkedList extends IterableElementBase {
1137
1196
  }
1138
1197
  return count;
1139
1198
  }
1140
- /**
1141
- * Time Complexity: O(n)
1142
- * Space Complexity: O(n)
1143
- *
1144
- * The `fromArray` function creates a new instance of a DoublyLinkedList and populates it with the elements from the
1145
- * given array.
1146
- * @param {E[]} data - The `data` parameter is an array of elements of type `E`.
1147
- * @returns The `fromArray` function returns a DoublyLinkedList object.
1148
- */
1149
- static fromArray(data) {
1150
- return new DoublyLinkedList(data);
1151
- }
1152
1199
  /**
1153
1200
  * The function returns an iterator that iterates over the values of a linked list.
1154
1201
  */
@@ -1 +1 @@
1
- {"version":3,"file":"doubly-linked-list.js","sourceRoot":"","sources":["../../../../src/data-structures/linked-list/doubly-linked-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doubly-linked-list.js","sourceRoot":"","sources":["../../../../src/data-structures/linked-list/doubly-linked-list.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export declare class SinglyLinkedListNode<E = any> {
41
41
  set next(value: SinglyLinkedListNode<E> | undefined);
42
42
  }
43
43
  export declare class SinglyLinkedList<E = any, R = any> extends IterableElementBase<E, R, SinglyLinkedList<E, R>> {
44
- constructor(elements?: Iterable<E> | Iterable<R>, options?: SinglyLinkedListOptions<E, R>);
44
+ constructor(elements?: Iterable<E> | Iterable<R> | Iterable<SinglyLinkedListNode<E>>, options?: SinglyLinkedListOptions<E, R>);
45
45
  protected _head: SinglyLinkedListNode<E> | undefined;
46
46
  /**
47
47
  * The `head` function returns the first node of a singly linked list.
@@ -72,6 +72,16 @@ export declare class SinglyLinkedList<E = any, R = any> extends IterableElementB
72
72
  * @returns The size of the object, which is a number.
73
73
  */
74
74
  get size(): number;
75
+ /**
76
+ * Time Complexity: O(n)
77
+ * Space Complexity: O(n)
78
+ *
79
+ * The `fromArray` function creates a new SinglyLinkedList instance and populates it with the elements from the given
80
+ * array.
81
+ * @param {E[]} data - The `data` parameter is an array of elements of type `E`.
82
+ * @returns The `fromArray` function returns a `SinglyLinkedList` object.
83
+ */
84
+ static fromArray<E>(data: E[]): SinglyLinkedList<E, any>;
75
85
  /**
76
86
  * Time Complexity: O(1)
77
87
  * Space Complexity: O(1)
@@ -111,6 +121,33 @@ export declare class SinglyLinkedList<E = any, R = any> extends IterableElementB
111
121
  * @returns The `unshift` method is returning a boolean value, specifically `true`.
112
122
  */
113
123
  unshift(elementOrNode: E | SinglyLinkedListNode<E>): boolean;
124
+ /**
125
+ * Time Complexity: O(k)
126
+ * Space Complexity: O(k)
127
+ *
128
+ * The function `pushMany` iterates over elements and pushes them into a data structure, applying a
129
+ * transformation function if provided.
130
+ * @param {Iterable<E> | Iterable<R> | Iterable<SinglyLinkedListNode<E>>} elements - The `elements`
131
+ * parameter in the `pushMany` function can accept an iterable containing elements of type `E`, `R`,
132
+ * or `SinglyLinkedListNode<E>`.
133
+ * @returns The `pushMany` function returns an array of boolean values indicating whether each
134
+ * element was successfully pushed into the data structure.
135
+ */
136
+ pushMany(elements: Iterable<E> | Iterable<R> | Iterable<SinglyLinkedListNode<E>>): boolean[];
137
+ /**
138
+ * Time Complexity: O(k)
139
+ * Space Complexity: O(k)
140
+ *
141
+ * The function `unshiftMany` iterates over elements and adds them to a data structure, optionally
142
+ * converting them using a provided function.
143
+ * @param {Iterable<E> | Iterable<R> | Iterable<SinglyLinkedListNode<E>>} elements - The `elements`
144
+ * parameter in the `unshiftMany` function can accept an iterable containing elements of type `E`,
145
+ * `R`, or `SinglyLinkedListNode<E>`. The function iterates over each element in the iterable and
146
+ * performs an `unshift` operation on the linked list for each
147
+ * @returns The `unshiftMany` function is returning an array of boolean values, where each value
148
+ * represents the result of calling the `unshift` method on the current instance of the class.
149
+ */
150
+ unshiftMany(elements: Iterable<E> | Iterable<R> | Iterable<SinglyLinkedListNode<E>>): boolean[];
114
151
  /**
115
152
  * Time Complexity: O(n)
116
153
  * Space Complexity: O(1)
@@ -199,12 +236,18 @@ export declare class SinglyLinkedList<E = any, R = any> extends IterableElementB
199
236
  */
200
237
  addAt(index: number, newElementOrNode: E | SinglyLinkedListNode<E>): boolean;
201
238
  /**
239
+ * Time Complexity: O(1)
240
+ * Space Complexity: O(1)
241
+ *
202
242
  * The function checks if the length of a data structure is equal to zero and returns a boolean value indicating
203
243
  * whether it is empty or not.
204
244
  * @returns A boolean value indicating whether the length of the object is equal to 0.
205
245
  */
206
246
  isEmpty(): boolean;
207
247
  /**
248
+ * Time Complexity: O(1)
249
+ * Space Complexity: O(1)
250
+ *
208
251
  * The `clear` function resets the linked list by setting the head, tail, and length to undefined and 0 respectively.
209
252
  */
210
253
  clear(): void;
@@ -351,16 +394,6 @@ export declare class SinglyLinkedList<E = any, R = any> extends IterableElementB
351
394
  * The function `_getIterator` returns an iterable iterator that yields the values of a linked list.
352
395
  */
353
396
  protected _getIterator(): IterableIterator<E>;
354
- /**
355
- * Time Complexity: O(n)
356
- * Space Complexity: O(n)
357
- *
358
- * The `fromArray` function creates a new SinglyLinkedList instance and populates it with the elements from the given
359
- * array.
360
- * @param {E[]} data - The `data` parameter is an array of elements of type `E`.
361
- * @returns The `fromArray` function returns a `SinglyLinkedList` object.
362
- */
363
- static fromArray<E>(data: E[]): SinglyLinkedList<E, any>;
364
397
  /**
365
398
  * The _isPredicate function in TypeScript checks if the input is a function that takes a
366
399
  * SinglyLinkedListNode as an argument and returns a boolean.
@@ -46,16 +46,7 @@ export class SinglyLinkedListNode {
46
46
  export class SinglyLinkedList extends IterableElementBase {
47
47
  constructor(elements = [], options) {
48
48
  super(options);
49
- if (elements) {
50
- for (const el of elements) {
51
- if (this.toElementFn) {
52
- this.push(this.toElementFn(el));
53
- }
54
- else {
55
- this.push(el);
56
- }
57
- }
58
- }
49
+ this.pushMany(elements);
59
50
  }
60
51
  _head;
61
52
  /**
@@ -97,6 +88,22 @@ export class SinglyLinkedList extends IterableElementBase {
97
88
  get size() {
98
89
  return this._size;
99
90
  }
91
+ /**
92
+ * Time Complexity: O(n)
93
+ * Space Complexity: O(n)
94
+ *
95
+ * The `fromArray` function creates a new SinglyLinkedList instance and populates it with the elements from the given
96
+ * array.
97
+ * @param {E[]} data - The `data` parameter is an array of elements of type `E`.
98
+ * @returns The `fromArray` function returns a `SinglyLinkedList` object.
99
+ */
100
+ static fromArray(data) {
101
+ const singlyLinkedList = new SinglyLinkedList();
102
+ for (const item of data) {
103
+ singlyLinkedList.push(item);
104
+ }
105
+ return singlyLinkedList;
106
+ }
100
107
  /**
101
108
  * Time Complexity: O(1)
102
109
  * Space Complexity: O(1)
@@ -186,6 +193,53 @@ export class SinglyLinkedList extends IterableElementBase {
186
193
  this._size++;
187
194
  return true;
188
195
  }
196
+ /**
197
+ * Time Complexity: O(k)
198
+ * Space Complexity: O(k)
199
+ *
200
+ * The function `pushMany` iterates over elements and pushes them into a data structure, applying a
201
+ * transformation function if provided.
202
+ * @param {Iterable<E> | Iterable<R> | Iterable<SinglyLinkedListNode<E>>} elements - The `elements`
203
+ * parameter in the `pushMany` function can accept an iterable containing elements of type `E`, `R`,
204
+ * or `SinglyLinkedListNode<E>`.
205
+ * @returns The `pushMany` function returns an array of boolean values indicating whether each
206
+ * element was successfully pushed into the data structure.
207
+ */
208
+ pushMany(elements) {
209
+ const ans = [];
210
+ for (const el of elements) {
211
+ if (this.toElementFn) {
212
+ ans.push(this.push(this.toElementFn(el)));
213
+ continue;
214
+ }
215
+ ans.push(this.push(el));
216
+ }
217
+ return ans;
218
+ }
219
+ /**
220
+ * Time Complexity: O(k)
221
+ * Space Complexity: O(k)
222
+ *
223
+ * The function `unshiftMany` iterates over elements and adds them to a data structure, optionally
224
+ * converting them using a provided function.
225
+ * @param {Iterable<E> | Iterable<R> | Iterable<SinglyLinkedListNode<E>>} elements - The `elements`
226
+ * parameter in the `unshiftMany` function can accept an iterable containing elements of type `E`,
227
+ * `R`, or `SinglyLinkedListNode<E>`. The function iterates over each element in the iterable and
228
+ * performs an `unshift` operation on the linked list for each
229
+ * @returns The `unshiftMany` function is returning an array of boolean values, where each value
230
+ * represents the result of calling the `unshift` method on the current instance of the class.
231
+ */
232
+ unshiftMany(elements) {
233
+ const ans = [];
234
+ for (const el of elements) {
235
+ if (this.toElementFn) {
236
+ ans.push(this.unshift(this.toElementFn(el)));
237
+ continue;
238
+ }
239
+ ans.push(this.unshift(el));
240
+ }
241
+ return ans;
242
+ }
189
243
  /**
190
244
  * Time Complexity: O(n)
191
245
  * Space Complexity: O(1)
@@ -364,6 +418,9 @@ export class SinglyLinkedList extends IterableElementBase {
364
418
  return true;
365
419
  }
366
420
  /**
421
+ * Time Complexity: O(1)
422
+ * Space Complexity: O(1)
423
+ *
367
424
  * The function checks if the length of a data structure is equal to zero and returns a boolean value indicating
368
425
  * whether it is empty or not.
369
426
  * @returns A boolean value indicating whether the length of the object is equal to 0.
@@ -372,6 +429,9 @@ export class SinglyLinkedList extends IterableElementBase {
372
429
  return this._size === 0;
373
430
  }
374
431
  /**
432
+ * Time Complexity: O(1)
433
+ * Space Complexity: O(1)
434
+ *
375
435
  * The `clear` function resets the linked list by setting the head, tail, and length to undefined and 0 respectively.
376
436
  */
377
437
  clear() {
@@ -644,22 +704,6 @@ export class SinglyLinkedList extends IterableElementBase {
644
704
  current = current.next;
645
705
  }
646
706
  }
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
707
  /**
664
708
  * The _isPredicate function in TypeScript checks if the input is a function that takes a
665
709
  * SinglyLinkedListNode as an argument and returns a boolean.
@@ -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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"}
@@ -115,6 +115,16 @@ export declare class Deque<E = any, R = any> extends IterableElementBase<E, R, D
115
115
  * @returns The element that was removed from the data structure is being returned.
116
116
  */
117
117
  pop(): E | undefined;
118
+ /**
119
+ * Time Complexity: O(1)
120
+ * Space Complexity: O(1)
121
+ *
122
+ * The `shift()` function removes and returns the first element from a data structure, updating the
123
+ * internal state variables accordingly.
124
+ * @returns The element that is being removed from the beginning of the data structure is being
125
+ * returned.
126
+ */
127
+ shift(): E | undefined;
118
128
  /**
119
129
  * Time Complexity: Amortized O(1)
120
130
  * Space Complexity: O(n)
@@ -127,15 +137,34 @@ export declare class Deque<E = any, R = any> extends IterableElementBase<E, R, D
127
137
  */
128
138
  unshift(element: E): boolean;
129
139
  /**
130
- * Time Complexity: O(1)
131
- * Space Complexity: O(1)
140
+ * Time Complexity: O(k)
141
+ * Space Complexity: O(k)
132
142
  *
133
- * The `shift()` function removes and returns the first element from a data structure, updating the
134
- * internal state variables accordingly.
135
- * @returns The element that is being removed from the beginning of the data structure is being
136
- * returned.
137
- */
138
- shift(): E | undefined;
143
+ * The function `pushMany` iterates over elements and pushes them into an array after applying a
144
+ * transformation function if provided.
145
+ * @param {IterableWithSizeOrLength<E> | IterableWithSizeOrLength<R>} elements - The `elements`
146
+ * parameter in the `pushMany` function is expected to be an iterable containing elements of type `E`
147
+ * or `R`. It can be either an `IterableWithSizeOrLength<E>` or an `IterableWithSizeOrLength<R>`. The
148
+ * function iterates over each element
149
+ * @returns The `pushMany` function is returning an array of boolean values, where each value
150
+ * represents the result of calling the `push` method on the current object instance with the
151
+ * corresponding element from the input `elements` iterable.
152
+ */
153
+ pushMany(elements: IterableWithSizeOrLength<E> | IterableWithSizeOrLength<R>): boolean[];
154
+ /**
155
+ * Time Complexity: O(k)
156
+ * Space Complexity: O(k)
157
+ *
158
+ * The `unshiftMany` function in TypeScript iterates over elements and adds them to the beginning of
159
+ * an array, optionally converting them using a provided function.
160
+ * @param {IterableWithSizeOrLength<E> | IterableWithSizeOrLength<R>} elements - The `elements`
161
+ * parameter in the `unshiftMany` function is an iterable containing elements of type `E` or `R`. It
162
+ * can be an array or any other iterable data structure that has a known size or length. The function
163
+ * iterates over each element in the `elements` iterable and
164
+ * @returns The `unshiftMany` function returns an array of boolean values indicating whether each
165
+ * element was successfully added to the beginning of the array.
166
+ */
167
+ unshiftMany(elements?: IterableWithSizeOrLength<E> | IterableWithSizeOrLength<R>): boolean[];
139
168
  /**
140
169
  * Time Complexity: O(1)
141
170
  * Space Complexity: O(1)
@@ -48,14 +48,7 @@ export class Deque extends IterableElementBase {
48
48
  const needBucketNum = calcMinUnitsRequired(_size, this._bucketSize);
49
49
  this._bucketFirst = this._bucketLast = (this._bucketCount >> 1) - (needBucketNum >> 1);
50
50
  this._firstInBucket = this._lastInBucket = (this._bucketSize - (_size % this._bucketSize)) >> 1;
51
- for (const el of elements) {
52
- if (this.toElementFn) {
53
- this.push(this.toElementFn(el));
54
- }
55
- else {
56
- this.push(el);
57
- }
58
- }
51
+ this.pushMany(elements);
59
52
  }
60
53
  _bucketSize = 1 << 12;
61
54
  /**
@@ -211,6 +204,35 @@ export class Deque extends IterableElementBase {
211
204
  this._size -= 1;
212
205
  return element;
213
206
  }
207
+ /**
208
+ * Time Complexity: O(1)
209
+ * Space Complexity: O(1)
210
+ *
211
+ * The `shift()` function removes and returns the first element from a data structure, updating the
212
+ * internal state variables accordingly.
213
+ * @returns The element that is being removed from the beginning of the data structure is being
214
+ * returned.
215
+ */
216
+ shift() {
217
+ if (this._size === 0)
218
+ return;
219
+ const element = this._buckets[this._bucketFirst][this._firstInBucket];
220
+ if (this._size !== 1) {
221
+ if (this._firstInBucket < this._bucketSize - 1) {
222
+ this._firstInBucket += 1;
223
+ }
224
+ else if (this._bucketFirst < this._bucketCount - 1) {
225
+ this._bucketFirst += 1;
226
+ this._firstInBucket = 0;
227
+ }
228
+ else {
229
+ this._bucketFirst = 0;
230
+ this._firstInBucket = 0;
231
+ }
232
+ }
233
+ this._size -= 1;
234
+ return element;
235
+ }
214
236
  /**
215
237
  * Time Complexity: Amortized O(1)
216
238
  * Space Complexity: O(n)
@@ -244,33 +266,55 @@ export class Deque extends IterableElementBase {
244
266
  return true;
245
267
  }
246
268
  /**
247
- * Time Complexity: O(1)
248
- * Space Complexity: O(1)
269
+ * Time Complexity: O(k)
270
+ * Space Complexity: O(k)
249
271
  *
250
- * The `shift()` function removes and returns the first element from a data structure, updating the
251
- * internal state variables accordingly.
252
- * @returns The element that is being removed from the beginning of the data structure is being
253
- * returned.
254
- */
255
- shift() {
256
- if (this._size === 0)
257
- return;
258
- const element = this._buckets[this._bucketFirst][this._firstInBucket];
259
- if (this._size !== 1) {
260
- if (this._firstInBucket < this._bucketSize - 1) {
261
- this._firstInBucket += 1;
272
+ * The function `pushMany` iterates over elements and pushes them into an array after applying a
273
+ * transformation function if provided.
274
+ * @param {IterableWithSizeOrLength<E> | IterableWithSizeOrLength<R>} elements - The `elements`
275
+ * parameter in the `pushMany` function is expected to be an iterable containing elements of type `E`
276
+ * or `R`. It can be either an `IterableWithSizeOrLength<E>` or an `IterableWithSizeOrLength<R>`. The
277
+ * function iterates over each element
278
+ * @returns The `pushMany` function is returning an array of boolean values, where each value
279
+ * represents the result of calling the `push` method on the current object instance with the
280
+ * corresponding element from the input `elements` iterable.
281
+ */
282
+ pushMany(elements) {
283
+ const ans = [];
284
+ for (const el of elements) {
285
+ if (this.toElementFn) {
286
+ ans.push(this.push(this.toElementFn(el)));
262
287
  }
263
- else if (this._bucketFirst < this._bucketCount - 1) {
264
- this._bucketFirst += 1;
265
- this._firstInBucket = 0;
288
+ else {
289
+ ans.push(this.push(el));
290
+ }
291
+ }
292
+ return ans;
293
+ }
294
+ /**
295
+ * Time Complexity: O(k)
296
+ * Space Complexity: O(k)
297
+ *
298
+ * The `unshiftMany` function in TypeScript iterates over elements and adds them to the beginning of
299
+ * an array, optionally converting them using a provided function.
300
+ * @param {IterableWithSizeOrLength<E> | IterableWithSizeOrLength<R>} elements - The `elements`
301
+ * parameter in the `unshiftMany` function is an iterable containing elements of type `E` or `R`. It
302
+ * can be an array or any other iterable data structure that has a known size or length. The function
303
+ * iterates over each element in the `elements` iterable and
304
+ * @returns The `unshiftMany` function returns an array of boolean values indicating whether each
305
+ * element was successfully added to the beginning of the array.
306
+ */
307
+ unshiftMany(elements = []) {
308
+ const ans = [];
309
+ for (const el of elements) {
310
+ if (this.toElementFn) {
311
+ ans.push(this.unshift(this.toElementFn(el)));
266
312
  }
267
313
  else {
268
- this._bucketFirst = 0;
269
- this._firstInBucket = 0;
314
+ ans.push(this.unshift(el));
270
315
  }
271
316
  }
272
- this._size -= 1;
273
- return element;
317
+ return ans;
274
318
  }
275
319
  /**
276
320
  * Time Complexity: O(1)