High performance data structures for JavaScript.
Install it with NPM or add it to your package.json:
$ npm install jds
Then
var JDS = require('jds');Copy build/jds.js in a public folder and then insert the HTML code:
<script src="jds.js" type="text/javascript"></script>$ grunt build
$ grunt test
First in first out.
var queue = new JDS.Queue([1]);
// 1
console.log(queue.dequeue());
// true
console.log(queue.empty());
queue.enqueue(10)
.enqueue(20)
.enqueue(30);
// 3
console.log(queue.size());
// 10, 20, 30
queue.each(function(value, index) {
console.log(value);
});
// [10, 20, 30]
queue.toJSON();Maintains elements sorted in descending order by their priorities
var pqueue = new JDS.PriorityQueue([5, 4, 0, 9, 7, 3]);
// 9
console.log(queue.dequeue());
// 7
console.log(queue.dequeue());
// 4
console.log(queue.size());
queue.clean();
// 0
console.log(queue.size());
queue.enqueue(100);
// 100
console.log(queue.getPeek());You can extend JDS.PriorityQueue to meet the requirements of your data
var DistanceQueue = new JDS.PriorityQueue.extend({
getPriority: function(element) {
return element.x*element.x + element.y*element.y;
}
});
var dqueue = new DistanceQueue();
queue.enqueue({x: 200, y: 200});
queue.enqueue({x: 100, y: 100});
// 200 200
console.log(queue.getPeek().x, queue.getPeek().y);(The MIT License)
Copyright (c) 2014 Emmanuel Garcia <blasten@gmail.com>