https://github.com/huseynovvusal/pqjs
⚡ A fast and lightweight priority queue implementation for JavaScript.
https://github.com/huseynovvusal/pqjs
algorithms data-structures heapq pqjs priority-queue
Last synced: 6 months ago
JSON representation
⚡ A fast and lightweight priority queue implementation for JavaScript.
- Host: GitHub
- URL: https://github.com/huseynovvusal/pqjs
- Owner: huseynovvusal
- License: mit
- Created: 2025-01-26T20:28:10.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-01-29T07:23:45.000Z (9 months ago)
- Last Synced: 2025-04-13T04:52:03.514Z (6 months ago)
- Topics: algorithms, data-structures, heapq, pqjs, priority-queue
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/pqjs
- Size: 648 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
**Pq.js** provides a fast, straightforward priority queue to manage data based on priority. Ideal for sorting, task
scheduling, or implementing priority-based logic in your app.- ⚡ Simple and fast priority queue operations.
- 🔽🔼 Supports both **Min-Heap** and **Max-Heap** configurations.
- 🌱 No dependencies.Perfect for anyone needing a priority queue implementation in JavaScript.
## Installation
```sh
npm install pqjs
```## Usage
### Importing the PriorityQueue
```javascript
import {PriorityQueue} from "pqjs"
```### Creating a PriorityQueue
```javascript
const pq = new PriorityQueue()
```### Creating a PriorityQueue with Initial Values
```javascript
const initialValues = [10, 5, 20]
const pq = new PriorityQueue(initialValues)
```### Adding Elements
```javascript
pq.push(10)
pq.push(5)
pq.push(20)
```### Accessing the Top Element
```javascript
console.log(pq.top()) // 20 for Max-Heap by default
```### Removing the Top Element
```javascript
console.log(pq.pop()) // 20
```### Checking if the Queue is Empty
```javascript
console.log(pq.empty()) // false
```### Clearing the Queue
```javascript
pq.clear()
console.log(pq.empty()) // true
```### Converting to an Array
```javascript
console.log(pq.toArray()) // []
```### Using a Comparator for Min-Heap
```javascript
const minHeapComparator = (a, b) => b - a
const minHeap = new PriorityQueue([], minHeapComparator)minHeap.push(10)
minHeap.push(5)
minHeap.push(20)console.log(minHeap.pop()) // 5 for Min-Heap
console.log(minHeap.pop()) // 10 for Min-Heap
console.log(minHeap.pop()) // 20 for Min-Heap
```## License
MIT © 2025 Vusal Huseynov