min-heap-typed 1.50.3 → 1.50.5

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 (44) hide show
  1. package/dist/data-structures/base/iterable-base.d.ts +10 -8
  2. package/dist/data-structures/base/iterable-base.js +8 -12
  3. package/dist/data-structures/binary-tree/{tree-multimap.d.ts → avl-tree-multi-map.d.ts} +11 -11
  4. package/dist/data-structures/binary-tree/{tree-multimap.js → avl-tree-multi-map.js} +14 -14
  5. package/dist/data-structures/binary-tree/bst.js +5 -7
  6. package/dist/data-structures/binary-tree/index.d.ts +2 -1
  7. package/dist/data-structures/binary-tree/index.js +2 -1
  8. package/dist/data-structures/binary-tree/rb-tree.js +17 -9
  9. package/dist/data-structures/binary-tree/tree-multi-map.d.ts +200 -0
  10. package/dist/data-structures/binary-tree/tree-multi-map.js +399 -0
  11. package/dist/data-structures/graph/abstract-graph.d.ts +1 -0
  12. package/dist/data-structures/graph/abstract-graph.js +3 -0
  13. package/dist/data-structures/linked-list/doubly-linked-list.d.ts +14 -76
  14. package/dist/data-structures/linked-list/doubly-linked-list.js +16 -86
  15. package/dist/data-structures/linked-list/singly-linked-list.d.ts +27 -69
  16. package/dist/data-structures/linked-list/singly-linked-list.js +35 -79
  17. package/dist/data-structures/queue/deque.d.ts +0 -53
  18. package/dist/data-structures/queue/deque.js +0 -61
  19. package/dist/data-structures/queue/queue.d.ts +0 -70
  20. package/dist/data-structures/queue/queue.js +0 -87
  21. package/dist/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +5 -0
  22. package/dist/types/data-structures/binary-tree/index.d.ts +2 -1
  23. package/dist/types/data-structures/binary-tree/index.js +2 -1
  24. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +5 -0
  25. package/dist/types/data-structures/binary-tree/tree-multi-map.js +2 -0
  26. package/package.json +2 -2
  27. package/src/data-structures/base/iterable-base.ts +14 -10
  28. package/src/data-structures/binary-tree/{tree-multimap.ts → avl-tree-multi-map.ts} +20 -20
  29. package/src/data-structures/binary-tree/bst.ts +5 -6
  30. package/src/data-structures/binary-tree/index.ts +2 -1
  31. package/src/data-structures/binary-tree/rb-tree.ts +20 -10
  32. package/src/data-structures/binary-tree/tree-multi-map.ts +463 -0
  33. package/src/data-structures/graph/abstract-graph.ts +4 -0
  34. package/src/data-structures/heap/heap.ts +1 -1
  35. package/src/data-structures/linked-list/doubly-linked-list.ts +16 -94
  36. package/src/data-structures/linked-list/singly-linked-list.ts +35 -87
  37. package/src/data-structures/queue/deque.ts +0 -67
  38. package/src/data-structures/queue/queue.ts +0 -98
  39. package/src/types/data-structures/binary-tree/avl-tree-multi-map.ts +8 -0
  40. package/src/types/data-structures/binary-tree/index.ts +2 -1
  41. package/src/types/data-structures/binary-tree/tree-multi-map.ts +8 -0
  42. package/dist/types/data-structures/binary-tree/tree-multimap.d.ts +0 -5
  43. package/src/types/data-structures/binary-tree/tree-multimap.ts +0 -8
  44. /package/dist/types/data-structures/binary-tree/{tree-multimap.js → avl-tree-multi-map.js} +0 -0
@@ -93,6 +93,24 @@ export class SinglyLinkedList<E = any> extends IterableElementBase<E> {
93
93
  return this._tail;
94
94
  }
95
95
 
96
+ /**
97
+ * The above function returns the value of the first element in a linked list, or undefined if the
98
+ * list is empty.
99
+ * @returns The value of the first node in the linked list, or undefined if the linked list is empty.
100
+ */
101
+ get first(): E | undefined {
102
+ return this.head?.value;
103
+ }
104
+
105
+ /**
106
+ * The function returns the value of the last element in a linked list, or undefined if the list is
107
+ * empty.
108
+ * @returns The value of the last node in the linked list, or undefined if the linked list is empty.
109
+ */
110
+ get last(): E | undefined {
111
+ return this.tail?.value;
112
+ }
113
+
96
114
  protected _size: number = 0;
97
115
 
98
116
  /**
@@ -130,20 +148,19 @@ export class SinglyLinkedList<E = any> extends IterableElementBase<E> {
130
148
  /**
131
149
  * Time Complexity: O(1)
132
150
  * Space Complexity: O(1)
133
- * Constant time, as it involves basic pointer adjustments.
134
- * Constant space, as it only creates a new node.
135
151
  */
136
152
 
137
153
  /**
138
154
  * Time Complexity: O(1)
139
155
  * Space Complexity: O(1)
140
156
  *
141
- * The `push` function adds a new node with the given value to the end of a singly linked list.
142
- * @param {E} value - The "value" parameter represents the value that you want to add to the linked list. It can be of
143
- * any type (E) as specified in the generic type declaration of the class or function.
157
+ * The push function adds a new element to the end of a singly linked list.
158
+ * @param {E} element - The "element" parameter represents the value of the element that you want to
159
+ * add to the linked list.
160
+ * @returns The `push` method is returning a boolean value, `true`.
144
161
  */
145
- push(value: E): boolean {
146
- const newNode = new SinglyLinkedListNode(value);
162
+ push(element: E): boolean {
163
+ const newNode = new SinglyLinkedListNode(element);
147
164
  if (!this.head) {
148
165
  this._head = newNode;
149
166
  this._tail = newNode;
@@ -155,23 +172,6 @@ export class SinglyLinkedList<E = any> extends IterableElementBase<E> {
155
172
  return true;
156
173
  }
157
174
 
158
- /**
159
- * Time Complexity: O(1)
160
- * Space Complexity: O(1)
161
- */
162
-
163
- /**
164
- * Time Complexity: O(1)
165
- * Space Complexity: O(1)
166
- *
167
- * The `push` function adds a new node with the given value to the end of a singly linked list.
168
- * @param {E} value - The "value" parameter represents the value that you want to add to the linked list. It can be of
169
- * any type (E) as specified in the generic type declaration of the class or function.
170
- */
171
- addLast(value: E): boolean {
172
- return this.push(value);
173
- }
174
-
175
175
  /**
176
176
  * Time Complexity: O(n)
177
177
  * Space Complexity: O(1)
@@ -182,10 +182,9 @@ export class SinglyLinkedList<E = any> extends IterableElementBase<E> {
182
182
  * Time Complexity: O(n)
183
183
  * Space Complexity: O(1)
184
184
  *
185
- * The `pop()` function removes and returns the value of the last element in a linked list, updating the head and tail
186
- * pointers accordingly.
187
- * @returns The method `pop()` returns the value of the node that is being removed from the end of the linked list. If
188
- * the linked list is empty, it returns `undefined`.
185
+ * The `pop` function removes and returns the value of the last element in a linked list.
186
+ * @returns The method is returning the value of the element that is being popped from the end of the
187
+ * list.
189
188
  */
190
189
  pop(): E | undefined {
191
190
  if (!this.head) return undefined;
@@ -208,24 +207,6 @@ export class SinglyLinkedList<E = any> extends IterableElementBase<E> {
208
207
  return value;
209
208
  }
210
209
 
211
- /**
212
- * Time Complexity: O(n)
213
- * Space Complexity: O(1)
214
- */
215
-
216
- /**
217
- * Time Complexity: O(n)
218
- * Space Complexity: O(1)
219
- *
220
- * The `pollLast()` function removes and returns the value of the last element in a linked list, updating the head and tail
221
- * pointers accordingly.
222
- * @returns The method `pop()` returns the value of the node that is being removed from the end of the linked list. If
223
- * the linked list is empty, it returns `undefined`.
224
- */
225
- pollLast(): E | undefined {
226
- return this.pop();
227
- }
228
-
229
210
  /**
230
211
  * Time Complexity: O(1)
231
212
  * Space Complexity: O(1)
@@ -235,8 +216,8 @@ export class SinglyLinkedList<E = any> extends IterableElementBase<E> {
235
216
  * Time Complexity: O(1)
236
217
  * Space Complexity: O(1)
237
218
  *
238
- * The `shift()` function removes and returns the value of the first node in a linked list.
239
- * @returns The value of the node that is being removed from the beginning of the linked list.
219
+ * The `shift()` function removes and returns the value of the first element in a linked list.
220
+ * @returns The value of the removed node.
240
221
  */
241
222
  shift(): E | undefined {
242
223
  if (!this.head) return undefined;
@@ -255,28 +236,13 @@ export class SinglyLinkedList<E = any> extends IterableElementBase<E> {
255
236
  * Time Complexity: O(1)
256
237
  * Space Complexity: O(1)
257
238
  *
258
- * The `pollFirst()` function removes and returns the value of the first node in a linked list.
259
- * @returns The value of the node that is being removed from the beginning of the linked list.
239
+ * The unshift function adds a new element to the beginning of a singly linked list.
240
+ * @param {E} element - The "element" parameter represents the value of the element that you want to
241
+ * add to the beginning of the singly linked list.
242
+ * @returns The `unshift` method is returning a boolean value, `true`.
260
243
  */
261
- pollFirst(): E | undefined {
262
- return this.shift();
263
- }
264
-
265
- /**
266
- * Time Complexity: O(1)
267
- * Space Complexity: O(1)
268
- */
269
-
270
- /**
271
- * Time Complexity: O(1)
272
- * Space Complexity: O(1)
273
- *
274
- * The unshift function adds a new node with the given value to the beginning of a singly linked list.
275
- * @param {E} value - The parameter "value" represents the value of the new node that will be added to the beginning of the
276
- * linked list.
277
- */
278
- unshift(value: E): boolean {
279
- const newNode = new SinglyLinkedListNode(value);
244
+ unshift(element: E): boolean {
245
+ const newNode = new SinglyLinkedListNode(element);
280
246
  if (!this.head) {
281
247
  this._head = newNode;
282
248
  this._tail = newNode;
@@ -288,27 +254,9 @@ export class SinglyLinkedList<E = any> extends IterableElementBase<E> {
288
254
  return true;
289
255
  }
290
256
 
291
- /**
292
- * Time Complexity: O(1)
293
- * Space Complexity: O(1)
294
- */
295
-
296
- /**
297
- * Time Complexity: O(1)
298
- * Space Complexity: O(1)
299
- *
300
- * The addFirst function adds a new node with the given value to the beginning of a singly linked list.
301
- * @param {E} value - The parameter "value" represents the value of the new node that will be added to the beginning of the
302
- * linked list.
303
- */
304
- addFirst(value: E): boolean {
305
- return this.unshift(value);
306
- }
307
-
308
257
  /**
309
258
  * Time Complexity: O(n)
310
259
  * Space Complexity: O(1)
311
- * Linear time, where n is the index, as it may need to traverse the list to find the desired node.
312
260
  */
313
261
 
314
262
  /**
@@ -811,73 +811,6 @@ export class Deque<E> extends IterableElementBase<E> {
811
811
  return newDeque;
812
812
  }
813
813
 
814
- /**
815
- * Time Complexity: Amortized O(1) - Similar to push, resizing leads to O(n).
816
- * Space Complexity: O(n) - Due to potential resizing.
817
- */
818
-
819
- /**
820
- * Time Complexity: Amortized O(1) - Similar to push, resizing leads to O(n).
821
- * Space Complexity: O(n) - Due to potential resizing.
822
- *
823
- * The addLast function adds an element to the end of an array.
824
- * @param {E} element - The element parameter represents the element that you want to add to the end of the
825
- * data structure.
826
- */
827
- addLast(element: E): boolean {
828
- return this.push(element);
829
- }
830
-
831
- /**
832
- * Time Complexity: O(1)
833
- * Space Complexity: O(1)
834
- */
835
-
836
- /**
837
- * Time Complexity: O(1)
838
- * Space Complexity: O(1)
839
- *
840
- * The function "pollLast" removes and returns the last element of an array.
841
- * @returns The last element of the array is being returned.
842
- */
843
- pollLast(): E | undefined {
844
- return this.pop();
845
- }
846
-
847
- /**
848
- * Time Complexity: O(1)
849
- * Space Complexity: O(1)
850
- * /
851
-
852
- /**
853
- * Time Complexity: O(1)
854
- * Space Complexity: O(1)
855
- *
856
- * The "addFirst" function adds an element to the beginning of an array.
857
- * @param {E} element - The parameter "element" represents the element that you want to add to the
858
- * beginning of the data structure.
859
- */
860
- addFirst(element: E): boolean {
861
- return this.unshift(element);
862
- }
863
-
864
- /**
865
- * Time Complexity: O(1)
866
- * Space Complexity: O(1)
867
- * /
868
-
869
- /**
870
- * Time Complexity: O(1)
871
- * Space Complexity: O(1)
872
- *
873
- * The function "pollFirst" removes and returns the first element of an array.
874
- * @returns The method `pollFirst()` is returning the first element of the array after removing it
875
- * from the beginning. If the array is empty, it will return `undefined`.
876
- */
877
- pollFirst(): E | undefined {
878
- return this.shift();
879
- }
880
-
881
814
  /**
882
815
  * Time Complexity: O(n)
883
816
  * Space Complexity: O(1)
@@ -178,72 +178,6 @@ export class Queue<E = any> extends IterableElementBase<E> {
178
178
  return spliced.length === 1;
179
179
  }
180
180
 
181
- /**
182
- * Time Complexity: O(1)
183
- * Space Complexity: O(1)
184
- */
185
-
186
- /**
187
- * Time Complexity: O(1)
188
- * Space Complexity: O(1)
189
- *
190
- * The `peek` function returns the first element of the array `_elements` if it exists, otherwise it returns `undefined`.
191
- * @returns The `peek()` method returns the first element of the data structure, represented by the `_elements` array at
192
- * the `_offset` index. If the data structure is empty (size is 0), it returns `undefined`.
193
- */
194
- peek(): E | undefined {
195
- return this.first;
196
- }
197
-
198
- /**
199
- * Time Complexity: O(1)
200
- * Space Complexity: O(1)
201
- */
202
-
203
- /**
204
- * Time Complexity: O(1)
205
- * Space Complexity: O(1)
206
- *
207
- * The `peekLast` function returns the last element in an array-like data structure, or undefined if the structure is empty.
208
- * @returns The method `peekLast()` returns the last element of the `_elements` array if the array is not empty. If the
209
- * array is empty, it returns `undefined`.
210
- */
211
- peekLast(): E | undefined {
212
- return this.last;
213
- }
214
-
215
- /**
216
- * Time Complexity: O(1)
217
- * Space Complexity: O(1)
218
- */
219
-
220
- /**
221
- * Time Complexity: O(1)
222
- * Space Complexity: O(1)
223
- *
224
- * The enqueue function adds a value to the end of a queue.
225
- * @param {E} value - The value parameter represents the value that you want to add to the queue.
226
- */
227
- enqueue(value: E): boolean {
228
- return this.push(value);
229
- }
230
-
231
- /**
232
- * Time Complexity: O(1)
233
- * Space Complexity: O(1)
234
- */
235
-
236
- /**
237
- * Time Complexity: O(1)
238
- * Space Complexity: O(1)
239
- *
240
- * The `dequeue` function removes and returns the first element from a queue, or returns undefined if the queue is empty.
241
- * @returns The method is returning a value of type E or undefined.
242
- */
243
- dequeue(): E | undefined {
244
- return this.shift();
245
- }
246
-
247
181
  /**
248
182
  * Time Complexity: O(1)
249
183
  * Space Complexity: O(1)
@@ -411,38 +345,6 @@ export class Queue<E = any> extends IterableElementBase<E> {
411
345
  * 4. Frequent Enqueuing and Dequeuing Operations: If your application involves frequent enqueuing and dequeuing operations and is less concerned with random access, then LinkedListQueue is a good choice.
412
346
  */
413
347
  export class LinkedListQueue<E = any> extends SinglyLinkedList<E> {
414
- /**
415
- * The `get first` function returns the value of the head node in a linked list, or `undefined` if the list is empty.
416
- * @returns The `get first()` method is returning the value of the `head` node if it exists, otherwise it returns `undefined`.
417
- */
418
- get first(): E | undefined {
419
- return this.head?.value;
420
- }
421
-
422
- /**
423
- * The enqueue function adds a value to the end of an array.
424
- * @param {E} value - The value parameter represents the value that you want to add to the queue.
425
- */
426
- enqueue(value: E): boolean {
427
- return this.push(value);
428
- }
429
-
430
- /**
431
- * The `dequeue` function removes and returns the first element from a queue, or returns undefined if the queue is empty.
432
- * @returns The method is returning the element at the front of the queue, or undefined if the queue is empty.
433
- */
434
- dequeue(): E | undefined {
435
- return this.shift();
436
- }
437
-
438
- /**
439
- * The `peek` function returns the value of the head node in a linked list, or `undefined` if the list is empty.
440
- * @returns The `peek()` method is returning the value of the `head` node if it exists, otherwise it returns `undefined`.
441
- */
442
- peek(): E | undefined {
443
- return this.first;
444
- }
445
-
446
348
  /**
447
349
  * Time Complexity: O(n)
448
350
  * Space Complexity: O(n)
@@ -0,0 +1,8 @@
1
+ import { AVLTreeMultiMap, AVLTreeMultiMapNode } from '../../../data-structures';
2
+ import type { AVLTreeOptions } from './avl-tree';
3
+
4
+ export type AVLTreeMultiMapNodeNested<K, V> = AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
5
+
6
+ export type AVLTreeMultiMapNested<K, V, N extends AVLTreeMultiMapNode<K, V, N>> = AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, AVLTreeMultiMap<K, V, N, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7
+
8
+ export type AVLTreeMultiMapOptions<K> = AVLTreeOptions<K> & {}
@@ -2,5 +2,6 @@ export * from './binary-tree';
2
2
  export * from './bst';
3
3
  export * from './avl-tree';
4
4
  export * from './segment-tree';
5
- export * from './tree-multimap';
5
+ export * from './avl-tree-multi-map';
6
6
  export * from './rb-tree';
7
+ export * from './tree-multi-map';
@@ -0,0 +1,8 @@
1
+ import { TreeMultiMap, TreeMultiMapNode } from '../../../data-structures';
2
+ import type { RBTreeOptions } from './rb-tree';
3
+
4
+ export type TreeMultiMapNodeNested<K, V> = TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
5
+
6
+ export type TreeMultiMapNested<K, V, N extends TreeMultiMapNode<K, V, N>> = TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, TreeMultiMap<K, V, N, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7
+
8
+ export type TreeMultiMapOptions<K> = RBTreeOptions<K> & {}
@@ -1,5 +0,0 @@
1
- import { TreeMultimap, TreeMultimapNode } from '../../../data-structures';
2
- import type { AVLTreeOptions } from './avl-tree';
3
- export type TreeMultimapNodeNested<K, V> = TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
4
- export type TreeMultimapNested<K, V, N extends TreeMultimapNode<K, V, N>> = TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
5
- export type TreeMultimapOptions<K> = AVLTreeOptions<K> & {};
@@ -1,8 +0,0 @@
1
- import { TreeMultimap, TreeMultimapNode } from '../../../data-structures';
2
- import type { AVLTreeOptions } from './avl-tree';
3
-
4
- export type TreeMultimapNodeNested<K, V> = TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, TreeMultimapNode<K, V, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
5
-
6
- export type TreeMultimapNested<K, V, N extends TreeMultimapNode<K, V, N>> = TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, TreeMultimap<K, V, N, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7
-
8
- export type TreeMultimapOptions<K> = AVLTreeOptions<K> & {}