Skip to content

craigdallimore/priority-queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bb9d538 Β· Jan 25, 2025

History

52 Commits
Jan 25, 2025
Jan 25, 2025
Jan 25, 2025
Apr 10, 2022
Mar 30, 2022
Jan 25, 2025
Mar 5, 2021
Jan 25, 2025
Jan 25, 2025
Jan 25, 2025
Jan 25, 2025
Apr 10, 2022
Jan 25, 2025
Jan 25, 2025
Jan 25, 2025

Repository files navigation

Priority Queue

Build Coverage Downloads Size

Installation

npm install @decoy9697/priority-queue

Usage

import PQ, { LOW_FIRST } from "@decoy9697/priority-queue";

const pq = new PQ({ sort: LOW_FIRST });

// The number influences priority
// - lower takes precedence (given LOW_FIRST, otherwise use HIGH_FIRST)
// - with equal numbers, recency of insert takes precedence
pq.insert("🌡", 5);
pq.insert("🌿", 10);
pq.insert("🌴", 3);

// .peek() gives the item with the lowest number, but does not dequeue it
pq.peek(); // 🌴
pq.peek(); // 🌴

// .pop() gives the item with the lowest number, dequeuing it
pq.pop(); // 🌴
pq.pop(); // 🌡
pq.pop(); // 🌿
pq.pop(); // undefined

// .isEmpty() returns a boolean, true given it is empty
pq.isEmpty(); // true

Development

This project uses nix to install dependencies for the development shell.

Commands

nix develop - starts a development shell with system dependencies

Within the shell

npm i - install project dependencies

npm test - run the tests

npm bench - run benchmarkjs

npm format - run the linter