1.1.0 • Published 8 months ago

@coxy/queue v1.1.0

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

@coxy/queue

A lightweight collection for working with regular and priority queues.

Installation

npm install @coxy/queue

or

yarn add @coxy/queue

Usage

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) // 0

Iterating 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) // 0

Checking 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

  • Queue is implemented using a linked list.
  • PriorityQueue is 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!

1.1.0

8 months ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago