data-structure-typed 1.45.3 → 1.46.0

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 (47) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +91 -40
  3. package/benchmark/report.html +17 -17
  4. package/benchmark/report.json +160 -142
  5. package/dist/cjs/data-structures/hash/hash-map.d.ts +6 -5
  6. package/dist/cjs/data-structures/hash/hash-map.js +9 -6
  7. package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
  8. package/dist/cjs/data-structures/heap/heap.d.ts +59 -47
  9. package/dist/cjs/data-structures/heap/heap.js +133 -123
  10. package/dist/cjs/data-structures/heap/heap.js.map +1 -1
  11. package/dist/cjs/data-structures/queue/deque.d.ts +131 -164
  12. package/dist/cjs/data-structures/queue/deque.js +543 -211
  13. package/dist/cjs/data-structures/queue/deque.js.map +1 -1
  14. package/dist/cjs/types/data-structures/hash/hash-map.d.ts +0 -9
  15. package/dist/cjs/types/helpers.d.ts +11 -0
  16. package/dist/cjs/utils/utils.d.ts +1 -0
  17. package/dist/cjs/utils/utils.js +3 -1
  18. package/dist/cjs/utils/utils.js.map +1 -1
  19. package/dist/mjs/data-structures/hash/hash-map.d.ts +6 -5
  20. package/dist/mjs/data-structures/hash/hash-map.js +9 -6
  21. package/dist/mjs/data-structures/heap/heap.d.ts +59 -47
  22. package/dist/mjs/data-structures/heap/heap.js +133 -123
  23. package/dist/mjs/data-structures/queue/deque.d.ts +131 -164
  24. package/dist/mjs/data-structures/queue/deque.js +544 -201
  25. package/dist/mjs/types/data-structures/hash/hash-map.d.ts +0 -9
  26. package/dist/mjs/types/helpers.d.ts +11 -0
  27. package/dist/mjs/utils/utils.d.ts +1 -0
  28. package/dist/mjs/utils/utils.js +1 -0
  29. package/dist/umd/data-structure-typed.js +684 -328
  30. package/dist/umd/data-structure-typed.min.js +1 -1
  31. package/dist/umd/data-structure-typed.min.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/data-structures/hash/hash-map.ts +11 -7
  34. package/src/data-structures/heap/heap.ts +132 -128
  35. package/src/data-structures/queue/deque.ts +605 -226
  36. package/src/types/data-structures/hash/hash-map.ts +0 -11
  37. package/src/types/helpers.ts +15 -0
  38. package/src/utils/utils.ts +2 -0
  39. package/test/performance/data-structures/linked-list/doubly-linked-list.test.ts +21 -0
  40. package/test/performance/data-structures/priority-queue/priority-queue.test.ts +7 -7
  41. package/test/performance/data-structures/queue/deque.test.ts +24 -13
  42. package/test/unit/data-structures/hash/hash-map.test.ts +4 -4
  43. package/test/unit/data-structures/heap/heap.test.ts +2 -1
  44. package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +3 -3
  45. package/test/unit/data-structures/priority-queue/priority-queue.test.ts +3 -3
  46. package/test/unit/data-structures/queue/deque.test.ts +252 -240
  47. /package/test/performance/data-structures/{comparation.test.ts → comparison.test.ts} +0 -0
@@ -1,12 +1,3 @@
1
- export declare const enum IterateDirection {
2
- DEFAULT = 0,
3
- REVERSE = 1
4
- }
5
- export type HashMapOptions<T> = {
6
- sizeFunction?: number | (() => number);
7
- fixedLength?: number;
8
- forEach: (callback: (el: T) => void) => void;
9
- };
10
1
  export type HashMapLinkedNode<K, V> = {
11
2
  key: K;
12
3
  value: V;
@@ -6,3 +6,14 @@ export declare enum CP {
6
6
  eq = "eq",
7
7
  gt = "gt"
8
8
  }
9
+ export declare const enum IterateDirection {
10
+ DEFAULT = 0,
11
+ REVERSE = 1
12
+ }
13
+ export interface IterableWithSize<T> extends Iterable<T> {
14
+ size: number;
15
+ }
16
+ export interface IterableWithLength<T> extends Iterable<T> {
17
+ length: number;
18
+ }
19
+ export type IterableWithSizeOrLength<T> = IterableWithSize<T> | IterableWithLength<T>;
@@ -21,3 +21,4 @@ export declare const getMSB: (value: number) => number;
21
21
  export declare const rangeCheck: (index: number, min: number, max: number, message?: string) => void;
22
22
  export declare const throwRangeError: (message?: string) => void;
23
23
  export declare const isObjOrFunc: (input: unknown) => input is Record<string, unknown> | ((...args: any[]) => any);
24
+ export declare const calcMinUnitsRequired: (totalQuantity: number, unitSize: number) => number;
@@ -63,3 +63,4 @@ export const isObjOrFunc = (input) => {
63
63
  const inputType = typeof input;
64
64
  return (inputType === 'object' && input !== null) || inputType === 'function';
65
65
  };
66
+ export const calcMinUnitsRequired = (totalQuantity, unitSize) => Math.floor((totalQuantity + unitSize - 1) / unitSize);