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
package/README.md
CHANGED
|
@@ -34,6 +34,69 @@ yarn add max-priority-queue
|
|
|
34
34
|
|
|
35
35
|
[//]: # (No deletion!!! Start of Example Replace Section)
|
|
36
36
|
|
|
37
|
+
### Job scheduling by priority
|
|
38
|
+
```typescript
|
|
39
|
+
const jobs = new MaxPriorityQueue<number>();
|
|
40
|
+
|
|
41
|
+
jobs.add(3); // low priority
|
|
42
|
+
jobs.add(7); // high priority
|
|
43
|
+
jobs.add(5); // medium priority
|
|
44
|
+
jobs.add(10); // critical
|
|
45
|
+
|
|
46
|
+
// Highest priority job first
|
|
47
|
+
console.log(jobs.poll()); // 10;
|
|
48
|
+
console.log(jobs.poll()); // 7;
|
|
49
|
+
console.log(jobs.poll()); // 5;
|
|
50
|
+
console.log(jobs.poll()); // 3;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Auction system with highest bid tracking
|
|
54
|
+
```typescript
|
|
55
|
+
interface Bid {
|
|
56
|
+
bidder: string;
|
|
57
|
+
amount: number;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const auction = new MaxPriorityQueue<Bid>([], {
|
|
61
|
+
comparator: (a, b) => b.amount - a.amount
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
auction.add({ bidder: 'Alice', amount: 100 });
|
|
65
|
+
auction.add({ bidder: 'Bob', amount: 250 });
|
|
66
|
+
auction.add({ bidder: 'Charlie', amount: 175 });
|
|
67
|
+
|
|
68
|
+
// Current highest bid
|
|
69
|
+
console.log(auction.peek()?.bidder); // 'Bob';
|
|
70
|
+
console.log(auction.peek()?.amount); // 250;
|
|
71
|
+
|
|
72
|
+
// Process winning bid
|
|
73
|
+
const winner = auction.poll()!;
|
|
74
|
+
console.log(winner.bidder); // 'Bob';
|
|
75
|
+
console.log(auction.peek()?.bidder); // 'Charlie';
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### CPU process scheduling
|
|
79
|
+
```typescript
|
|
80
|
+
const cpuQueue = new MaxPriorityQueue<[number, string]>([], {
|
|
81
|
+
comparator: (a, b) => b[0] - a[0]
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
cpuQueue.add([5, 'System process']);
|
|
85
|
+
cpuQueue.add([1, 'Background task']);
|
|
86
|
+
cpuQueue.add([8, 'User interaction']);
|
|
87
|
+
cpuQueue.add([3, 'Network sync']);
|
|
88
|
+
|
|
89
|
+
const order = [];
|
|
90
|
+
while (cpuQueue.size > 0) {
|
|
91
|
+
order.push(cpuQueue.poll()![1]);
|
|
92
|
+
}
|
|
93
|
+
console.log(order); // [
|
|
94
|
+
// 'User interaction',
|
|
95
|
+
// 'System process',
|
|
96
|
+
// 'Network sync',
|
|
97
|
+
// 'Background task'
|
|
98
|
+
// ];
|
|
99
|
+
```
|
|
37
100
|
|
|
38
101
|
[//]: # (No deletion!!! End of Example Replace Section)
|
|
39
102
|
|