Nectar of the Programming Masses
    Wondering what’s next for npm?Check out our public roadmap! »

    priorityqueuejs
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/priorityqueuejs package

    2.0.0 • Public • Published

    priorityqueue.js

    Build Status

    A simple priority queue data structure for Node.js.

    Installation

    $ npm install priorityqueuejs
    

    Example

    var PriorityQueue = require('priorityqueuejs');
     
    var queue = new PriorityQueue(function(a, b) {
      return a.cash - b.cash;
    });
     
    queue.enq({ cash: 250, name: 'Valentina' });
    queue.enq({ cash: 300, name: 'Jano' });
    queue.enq({ cash: 150, name: 'Fran' });
    queue.size(); // 3
    queue.peek(); // { cash: 300, name: 'Jano' }
    queue.deq(); // { cash: 300, name: 'Jano' }
    queue.size(); // 2

    API

    PriorityQueue()

    Initializes a new empty PriorityQueue wich uses .DEFAULT_COMPARATOR() as the comparator function for its elements.

    PriorityQueue(comparator)

    Initializes a new empty PriorityQueue with uses the given comparator(a, b) function as the comparator for its elements.

    The comparator function must return a positive number when a > b, 0 when a == b and a negative number when a < b.

    PriorityQueue.DEFAULT_COMPARATOR(a, b)

    Compares two Number or String objects.

    PriorityQueue#deq()

    Dequeues the top element of the priority queue. Throws an Error when the queue is empty.

    PriorityQueue#enq(element)

    Enqueues the element at the priority queue and returns its new size.

    PriorityQueue#forEach(fn)

    Executes fn on each element. Just be careful to not modify the priorities, since the queue won't reorder itself.

    PriorityQueue#isEmpty()

    Returns whether the priority queue is empty or not.

    PriorityQueue#peek()

    Peeks at the top element of the priority queue. Throws an Error when the queue is empty.

    PriorityQueue#size()

    Returns the size of the priority queue.

    Testing

    $ npm install
    $ npm test
    

    Licence

    MIT

    Install

    npm i priorityqueuejs

    DownloadsWeekly Downloads

    87,693

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    13.8 kB

    Total Files

    6

    Last publish

    Collaborators

    • avatar