max-priority-queue-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.
- package/README.md +63 -0
- package/dist/cjs/index.cjs +694 -119
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs-legacy/index.cjs +693 -118
- package/dist/cjs-legacy/index.cjs.map +1 -1
- package/dist/esm/index.mjs +694 -119
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm-legacy/index.mjs +693 -118
- package/dist/esm-legacy/index.mjs.map +1 -1
- package/dist/types/data-structures/base/index.d.ts +1 -0
- package/dist/types/data-structures/base/iterable-element-base.d.ts +1 -1
- package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
- package/dist/types/data-structures/base/linear-base.d.ts +3 -3
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +380 -51
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +487 -147
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +956 -80
- package/dist/types/data-structures/binary-tree/bst.d.ts +816 -29
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +610 -31
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +326 -135
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +3781 -6
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3607 -201
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2874 -65
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +3528 -6
- package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
- package/dist/types/data-structures/graph/directed-graph.d.ts +429 -47
- package/dist/types/data-structures/graph/map-graph.d.ts +59 -1
- package/dist/types/data-structures/graph/undirected-graph.d.ts +393 -59
- package/dist/types/data-structures/hash/hash-map.d.ts +473 -89
- package/dist/types/data-structures/heap/heap.d.ts +581 -99
- package/dist/types/data-structures/heap/max-heap.d.ts +46 -0
- package/dist/types/data-structures/heap/min-heap.d.ts +59 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +646 -47
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +596 -68
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +793 -12
- package/dist/types/data-structures/matrix/matrix.d.ts +499 -0
- package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +57 -0
- package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +60 -0
- package/dist/types/data-structures/priority-queue/priority-queue.d.ts +60 -0
- package/dist/types/data-structures/queue/deque.d.ts +593 -71
- package/dist/types/data-structures/queue/queue.d.ts +463 -42
- package/dist/types/data-structures/stack/stack.d.ts +384 -32
- package/dist/types/data-structures/trie/trie.d.ts +470 -48
- package/dist/types/interfaces/graph.d.ts +1 -1
- package/dist/types/types/common.d.ts +2 -2
- package/dist/types/types/data-structures/binary-tree/segment-tree.d.ts +1 -1
- package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
- package/dist/types/types/data-structures/linked-list/skip-linked-list.d.ts +1 -4
- package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
- package/dist/types/types/utils/validate-type.d.ts +4 -4
- package/dist/umd/max-priority-queue-typed.js +691 -116
- package/dist/umd/max-priority-queue-typed.js.map +1 -1
- package/dist/umd/max-priority-queue-typed.min.js +1 -1
- package/dist/umd/max-priority-queue-typed.min.js.map +1 -1
- package/package.json +2 -2
- package/src/data-structures/base/index.ts +1 -0
- package/src/data-structures/base/iterable-element-base.ts +4 -5
- package/src/data-structures/base/iterable-entry-base.ts +8 -8
- package/src/data-structures/base/linear-base.ts +3 -3
- package/src/data-structures/binary-tree/avl-tree.ts +386 -51
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +596 -247
- package/src/data-structures/binary-tree/binary-tree.ts +956 -81
- package/src/data-structures/binary-tree/bst.ts +840 -35
- package/src/data-structures/binary-tree/red-black-tree.ts +689 -97
- package/src/data-structures/binary-tree/segment-tree.ts +498 -249
- package/src/data-structures/binary-tree/tree-map.ts +3784 -7
- package/src/data-structures/binary-tree/tree-multi-map.ts +3614 -211
- package/src/data-structures/binary-tree/tree-multi-set.ts +2874 -65
- package/src/data-structures/binary-tree/tree-set.ts +3531 -10
- package/src/data-structures/graph/abstract-graph.ts +4 -4
- package/src/data-structures/graph/directed-graph.ts +429 -47
- package/src/data-structures/graph/map-graph.ts +59 -1
- package/src/data-structures/graph/undirected-graph.ts +393 -59
- package/src/data-structures/hash/hash-map.ts +476 -92
- package/src/data-structures/heap/heap.ts +581 -99
- package/src/data-structures/heap/max-heap.ts +46 -0
- package/src/data-structures/heap/min-heap.ts +59 -0
- package/src/data-structures/linked-list/doubly-linked-list.ts +646 -47
- package/src/data-structures/linked-list/singly-linked-list.ts +596 -68
- package/src/data-structures/linked-list/skip-linked-list.ts +1067 -90
- package/src/data-structures/matrix/matrix.ts +584 -12
- package/src/data-structures/priority-queue/max-priority-queue.ts +57 -0
- package/src/data-structures/priority-queue/min-priority-queue.ts +60 -0
- package/src/data-structures/priority-queue/priority-queue.ts +60 -0
- package/src/data-structures/queue/deque.ts +592 -70
- package/src/data-structures/queue/queue.ts +463 -42
- package/src/data-structures/stack/stack.ts +384 -32
- package/src/data-structures/trie/trie.ts +470 -48
- package/src/interfaces/graph.ts +1 -1
- package/src/types/common.ts +2 -2
- package/src/types/data-structures/binary-tree/segment-tree.ts +1 -1
- package/src/types/data-structures/heap/heap.ts +1 -0
- package/src/types/data-structures/linked-list/skip-linked-list.ts +2 -1
- package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
- 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>);
|