graph-typed 2.4.5 → 2.5.1

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 (93) hide show
  1. package/dist/cjs/index.cjs +2250 -394
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs-legacy/index.cjs +2249 -393
  4. package/dist/cjs-legacy/index.cjs.map +1 -1
  5. package/dist/esm/index.mjs +2250 -394
  6. package/dist/esm/index.mjs.map +1 -1
  7. package/dist/esm-legacy/index.mjs +2249 -393
  8. package/dist/esm-legacy/index.mjs.map +1 -1
  9. package/dist/types/data-structures/base/index.d.ts +1 -0
  10. package/dist/types/data-structures/base/iterable-element-base.d.ts +1 -1
  11. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  12. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  13. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +380 -51
  14. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +487 -147
  15. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +956 -80
  16. package/dist/types/data-structures/binary-tree/bst.d.ts +816 -29
  17. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +610 -31
  18. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +326 -135
  19. package/dist/types/data-structures/binary-tree/tree-map.d.ts +3781 -6
  20. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3607 -201
  21. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2874 -65
  22. package/dist/types/data-structures/binary-tree/tree-set.d.ts +3528 -6
  23. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  24. package/dist/types/data-structures/graph/directed-graph.d.ts +429 -47
  25. package/dist/types/data-structures/graph/map-graph.d.ts +59 -1
  26. package/dist/types/data-structures/graph/undirected-graph.d.ts +393 -59
  27. package/dist/types/data-structures/hash/hash-map.d.ts +473 -89
  28. package/dist/types/data-structures/heap/heap.d.ts +581 -99
  29. package/dist/types/data-structures/heap/max-heap.d.ts +46 -0
  30. package/dist/types/data-structures/heap/min-heap.d.ts +59 -0
  31. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +646 -47
  32. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +596 -68
  33. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +793 -12
  34. package/dist/types/data-structures/matrix/matrix.d.ts +499 -0
  35. package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +57 -0
  36. package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +60 -0
  37. package/dist/types/data-structures/priority-queue/priority-queue.d.ts +60 -0
  38. package/dist/types/data-structures/queue/deque.d.ts +593 -71
  39. package/dist/types/data-structures/queue/queue.d.ts +463 -42
  40. package/dist/types/data-structures/stack/stack.d.ts +384 -32
  41. package/dist/types/data-structures/trie/trie.d.ts +470 -48
  42. package/dist/types/interfaces/graph.d.ts +1 -1
  43. package/dist/types/types/common.d.ts +2 -2
  44. package/dist/types/types/data-structures/binary-tree/segment-tree.d.ts +1 -1
  45. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  46. package/dist/types/types/data-structures/linked-list/skip-linked-list.d.ts +1 -4
  47. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  48. package/dist/types/types/utils/validate-type.d.ts +4 -4
  49. package/dist/umd/graph-typed.js +2247 -391
  50. package/dist/umd/graph-typed.js.map +1 -1
  51. package/dist/umd/graph-typed.min.js +3 -3
  52. package/dist/umd/graph-typed.min.js.map +1 -1
  53. package/package.json +2 -2
  54. package/src/data-structures/base/index.ts +1 -0
  55. package/src/data-structures/base/iterable-element-base.ts +4 -5
  56. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  57. package/src/data-structures/base/linear-base.ts +3 -3
  58. package/src/data-structures/binary-tree/avl-tree.ts +386 -51
  59. package/src/data-structures/binary-tree/binary-indexed-tree.ts +596 -247
  60. package/src/data-structures/binary-tree/binary-tree.ts +956 -81
  61. package/src/data-structures/binary-tree/bst.ts +840 -35
  62. package/src/data-structures/binary-tree/red-black-tree.ts +689 -97
  63. package/src/data-structures/binary-tree/segment-tree.ts +498 -249
  64. package/src/data-structures/binary-tree/tree-map.ts +3784 -7
  65. package/src/data-structures/binary-tree/tree-multi-map.ts +3614 -211
  66. package/src/data-structures/binary-tree/tree-multi-set.ts +2874 -65
  67. package/src/data-structures/binary-tree/tree-set.ts +3531 -10
  68. package/src/data-structures/graph/abstract-graph.ts +4 -4
  69. package/src/data-structures/graph/directed-graph.ts +429 -47
  70. package/src/data-structures/graph/map-graph.ts +59 -1
  71. package/src/data-structures/graph/undirected-graph.ts +393 -59
  72. package/src/data-structures/hash/hash-map.ts +476 -92
  73. package/src/data-structures/heap/heap.ts +581 -99
  74. package/src/data-structures/heap/max-heap.ts +46 -0
  75. package/src/data-structures/heap/min-heap.ts +59 -0
  76. package/src/data-structures/linked-list/doubly-linked-list.ts +646 -47
  77. package/src/data-structures/linked-list/singly-linked-list.ts +596 -68
  78. package/src/data-structures/linked-list/skip-linked-list.ts +1067 -90
  79. package/src/data-structures/matrix/matrix.ts +584 -12
  80. package/src/data-structures/priority-queue/max-priority-queue.ts +57 -0
  81. package/src/data-structures/priority-queue/min-priority-queue.ts +60 -0
  82. package/src/data-structures/priority-queue/priority-queue.ts +60 -0
  83. package/src/data-structures/queue/deque.ts +592 -70
  84. package/src/data-structures/queue/queue.ts +463 -42
  85. package/src/data-structures/stack/stack.ts +384 -32
  86. package/src/data-structures/trie/trie.ts +470 -48
  87. package/src/interfaces/graph.ts +1 -1
  88. package/src/types/common.ts +2 -2
  89. package/src/types/data-structures/binary-tree/segment-tree.ts +1 -1
  90. package/src/types/data-structures/heap/heap.ts +1 -0
  91. package/src/types/data-structures/linked-list/skip-linked-list.ts +2 -1
  92. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  93. package/src/types/utils/validate-type.ts +4 -4
@@ -9,6 +9,66 @@ import type { PriorityQueueOptions } from '../../types';
9
9
  import { Heap } from '../heap';
10
10
  /**
11
11
  * @example
12
+ * // Hospital emergency room triage
13
+ * interface Patient {
14
+ * name: string;
15
+ * severity: number; // 1 = critical, 5 = minor
16
+ * }
17
+ *
18
+ * const er = new PriorityQueue<Patient>([], {
19
+ * comparator: (a, b) => a.severity - b.severity
20
+ * });
21
+ *
22
+ * er.add({ name: 'Flu symptoms', severity: 4 });
23
+ * er.add({ name: 'Heart attack', severity: 1 });
24
+ * er.add({ name: 'Broken arm', severity: 3 });
25
+ * er.add({ name: 'Stroke', severity: 1 });
26
+ *
27
+ * // Most critical patients first
28
+ * console.log(er.poll()?.severity); // 1;
29
+ * console.log(er.poll()?.severity); // 1;
30
+ * console.log(er.poll()?.severity); // 3;
31
+ * console.log(er.poll()?.severity); // 4;
32
+ * @example
33
+ * // Task scheduler with deadlines
34
+ * interface Task {
35
+ * name: string;
36
+ * deadline: number; // hours until due
37
+ * }
38
+ *
39
+ * const scheduler = new PriorityQueue<Task>([], {
40
+ * comparator: (a, b) => a.deadline - b.deadline
41
+ * });
42
+ *
43
+ * scheduler.add({ name: 'Report', deadline: 24 });
44
+ * scheduler.add({ name: 'Email', deadline: 2 });
45
+ * scheduler.add({ name: 'Meeting prep', deadline: 4 });
46
+ * scheduler.add({ name: 'Code review', deadline: 8 });
47
+ *
48
+ * // Process most urgent first
49
+ * console.log(scheduler.peek()?.name); // 'Email';
50
+ * console.log(scheduler.size); // 4;
51
+ *
52
+ * const order = [];
53
+ * while (scheduler.size > 0) {
54
+ * order.push(scheduler.poll()!.name);
55
+ * }
56
+ * console.log(order); // ['Email', 'Meeting prep', 'Code review', 'Report'];
57
+ * @example
58
+ * // Bandwidth allocation with priorities
59
+ * const bandwidth = new PriorityQueue<[number, string]>([], {
60
+ * comparator: (a, b) => a[0] - b[0]
61
+ * });
62
+ *
63
+ * bandwidth.add([1, 'Video call']); // highest priority
64
+ * bandwidth.add([3, 'File download']);
65
+ * bandwidth.add([2, 'Web browsing']);
66
+ * bandwidth.add([1, 'Voice call']);
67
+ *
68
+ * // Allocate bandwidth to highest priority first
69
+ * console.log(bandwidth.poll()?.[1]); // 'Video call';
70
+ * console.log(bandwidth.poll()?.[1]); // 'Voice call';
71
+ * console.log(bandwidth.size); // 2;
12
72
  */
13
73
  export declare class PriorityQueue<E = any, R = any> extends Heap<E, R> {
14
74
  constructor(elements?: Iterable<E> | Iterable<R>, options?: PriorityQueueOptions<E, R>);