An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          





Pq.js







npm version


license


npm downloads



An efficient and easy-to-use priority queue.

**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