@coxy/queue
v1.1.0
Published
A lightweight collection for working with regular and priority queues.
Readme
@coxy/queue
A lightweight collection for working with regular and priority queues.
Installation
npm install @coxy/queueor
yarn add @coxy/queueUsage
Regular Queue (Queue)
import { Queue } from '@coxy/queue'
const queue = new Queue()
queue.enqueue('first')
queue.enqueue('second')
queue.enqueue('third')
console.log(queue.size) // 3
console.log(queue.dequeue()) // 'first'
console.log(queue.dequeue()) // 'second'
queue.clear()
console.log(queue.size) // 0Iterating through the queue:
for (const item of queue) {
console.log(item)
}Priority Queue (PriorityQueue)
import { PriorityQueue } from '@coxy/queue'
const priorityQueue = new PriorityQueue()
priorityQueue.enqueue('low priority', 5)
priorityQueue.enqueue('high priority', 1)
priorityQueue.enqueue('medium priority', 3)
console.log(priorityQueue.size) // 3
console.log(priorityQueue.dequeue()) // 'high priority'
console.log(priorityQueue.dequeue()) // 'medium priority'
priorityQueue.clear()
console.log(priorityQueue.size) // 0Checking front and back elements:
priorityQueue.enqueue('low priority', 5)
priorityQueue.enqueue('high priority', 1)
console.log(priorityQueue.front().value) // 'high priority'
console.log(priorityQueue.back().value) // 'low priority'Features
Queueis implemented using a linked list.PriorityQueueis implemented using an array with sorted insertion.- Minimal size and simple codebase.
Fun fact: Priority queues are widely used in pathfinding algorithms like Dijkstra's algorithm!
