@algorithm.ts/circular-queue
TypeScript icon, indicating that this package has built-in type declarations

2.0.14 • Public • Published

@algorithm.ts/circular-queue


A typescript implementation of the Circular Queue data structure.

Circular queue is a queue structure, the main purpose of its design is to reuse space as much as possible on the basis of ordinary queues. Circular queues usually need to specify the maximum volume C of the collector. If the number of elements in the queue exceeds C, only the most recent C elements are kept in the queue. Other operations are the same as ordinary queues.

Install

  • npm

    npm install --save @algorithm.ts/circular-queue
  • yarn

    yarn add @algorithm.ts/circular-queue
  • deno

    import { createCircularQueue } from 'https://raw.githubusercontent.com/guanghechen/algorithm.ts/main/packages/circular-queue/src/index.ts'

Usage

  • Basic:

    import { createCircularQueue } from '@algorithm.ts/circular-queue'
    
    const queue = createCircularQueue<{ name: string }>()
    
    // Initialize the circular-queue with the maximum number of elements it can
    // be managed.
    queue.init(100)
    
    // Append a element to the end of the queue.
    queue.enqueue({ name: 'alice' })  // => 0
    queue.enqueue({ name: 'bob' }) // => 1
    queue.size()   // => 2
    
    // Get the front element of the queue.
    queue.front()       // => { name: 'alice' }
    
    // Get the last element of the queue.
    queue.end()         // => { name: 'bob' }
    
    // Take off the first element of the queue.
    queue.dequeue()     // => { name: 'alice' }
    queue.size()        // => 1
    
    // Test if the queue is empty.
    queue.isEmpty()     // => false
    
    queue.get(0)        // undefined
    queue.get(0, true)  // undefined
    queue.get(0, false) // { name: 'alice' }
    
    queue.get(1)        // => { name: 'bob' }
    queue.get(1, true)  // => { name: 'bob' }
    queue.get(1, false) // => { name: 'bob' }

Related

Readme

Keywords

Package Sidebar

Install

npm i @algorithm.ts/circular-queue

Weekly Downloads

5,156

Version

2.0.14

License

MIT

Unpacked Size

12.6 kB

Total Files

6

Last publish

Collaborators

  • lemonclown