Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

mourner/tinyqueue

Repository files navigation

tinyqueue

The smallest and simplest binary heap priority queue in JavaScript.

// create an empty priority queue
let queue = new TinyQueue();
// add some items
queue.push(7);
queue.push(5);
queue.push(10);
// remove the top item
let top = queue.pop(); // returns 5
// return the top item (without removal)
top = queue.peek(); // returns 7
// get queue length
queue.length; // returns 2
// create a priority queue from an existing array (modifies the array)
queue = new TinyQueue([7, 5, 10]);
// pass a custom item comparator as a second argument
queue = new TinyQueue([{value: 5}, {value: 7}], function (a, b) {
	return a.value - b.value;
});
// turn a queue into a sorted array
const array = [];
while (queue.length) array.push(queue.pop());

For a faster number-based queue, see flatqueue.

Install

Install using NPM (npm install tinyqueue), then import as a module:

import TinyQueue from 'tinyqueue';

Or use a browser build from a CDN:

<script type="module">
	import TinyQueue from 'https://cdn.jsdelivr.net/npm/tinyqueue/+esm';

Thanks

Inspired by js-priority-queue by Adam Hooper.

About

The smallest and simplest priority queue in JavaScript.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 10

AltStyle によって変換されたページ (->オリジナル) /