priority-queue-node

    1.0.2 • Public • Published

    Priority Queue for Node.js

    Coverage Status

    A Priority Queue implementation that maintains a sorted queue of items. Use a custom comparator function to compare items in the queue. If a custom comparator is not passed to the PriorityQueue's constructor, a default comparator will be used. Based on the comparator used, the queue can store items in ascending or descending order.

    Installation

    NPM:

    npm install priority-queue-node

    Github Packages: (Note: Ensure your registry url is pointed at https://npm.pkg.github.com)

    npm install @vincegando/priority-queue-node

    API

    constructor([comparator: Function])

    Initialize the Priority Queue.

    Arguments

    • (optional) comparator (Function) - The compare function used to order items in the queue

    To use the default comparator, pass no arguments to the constructor.

    const PriorityQueue = require('priority-queue-node')
    
    const priorityQueue = new PriorityQueue()

    To use a custom comparator, pass a compare function as the only argument to the constructor.

    const PriorityQueue = require('priority-queue-node')
    
    const customQueue = new PriorityQueue((a, b) => {
      return b - a
    })

    enqueue(item: any)

    Add an item to the PriorityQueue.

    Arguments

    • item (any) - The item to add to the queue

    NOTE: If undefined or null is passed as the item argument, nothing will be added to the queue.

    // Add a number
    priorityQueue.enqueue(5)
    
    // Add a string
    priorityQueue.enqueue('foo')
    
    // Add an object
    priorityQueue.enqueue({ bar: 'baz' })

    dequeue(): any

    Remove and return the item from the beginning of the PriorityQueue.

    returns any: The item at the beginning of the queue

    // Starting queue: [1, 3, 5], comparator: default
    
    const item1 = priorityQueue.dequeue() // 1
    const item2 = priorityQueue.dequeue() // 3
    const item3 = priorityQueue.dequeue() // 5

    peek(): any

    Return the item from the beginning of the PriorityQueue.

    returns any: The item at the beginning of the queue

    // Starting queue: [1, 3, 5], comparator: default
    
    const item1 = priorityQueue.peek() // 1
    const item2 = priorityQueue.peek() // 1
    const item3 = priorityQueue.peek() // 1

    size(): Number

    Return the current size of the PriorityQueue.

    returns Number: The current size of the queue

    priorityQueue.enqueue(1)
    priorityQueue.enqueue(2)
    priorityQueue.enqueue(3)
    
    const size = priorityQueue.size() // 3

    isEmpty(): Boolean

    Return true if the PriorityQueue is empty, false if not.

    returns Boolean: true if the queue is empty, false if not

    const empty1 = priorityQueue.isEmpty() // true
    
    priorityQueue.enqueue(1)
    const empty2 = priorityQueue.isEmpty() // false

    Install

    npm i priority-queue-node

    DownloadsWeekly Downloads

    2

    Version

    1.0.2

    License

    ISC

    Unpacked Size

    26.6 kB

    Total Files

    14

    Last publish

    Collaborators

    • avatar