queues.js

node package for top and bottom plus lifo/ fifo queues, stack, priority queues, double ended queues, circular queues, wait queues, and semaphore queues implementation

MIT License

Downloads
10
Stars
1
Committers
2

queues.js

node package for top and bottom plus lifo/ fifo queues, stack, priority queues, double ended queues, circular queues, wait queues (TODO), and semaphore queues (TODO) implementation

Find the demos in the demos folder

APIs queues.js

Commonjs Code

var queues = require("queues.js");

var Queue = require("queues.js").Queue;
var QueueFifo = require("queues.js").QueueFifo;
var QueueLifo = require("queues.js").QueueLifo;

var queue = new Queue();
var fifo = new QueueFifo();
var lifo = new QueueLifo();

ESM Code

import { default as queues, QueueLifo, QueueFifo } as "queues.js";

var fifo = new QueueFifo();
var lifo = new QueueLifo();

ESM or Commonjs Code

var queues = import("queues.js");
var QueueFifo = import("queues.js").QueueFifo;
var QueueLifo = import("queues.js").QueueLifo;

var fifo = new QueueFifo();
var lifo = new QueueLifo();

Bases used

  • Queue - Persistent Queue (stores the queue value at its place - uses a offset)
  • QueueLowFootprint - Non-Persistent Queue (releases the queue value from its place permanently - use value once)
  • All LowFootprint names classes / functions are non-persistent queues

Queue (includes all Base methods)


const { Queue, QueueLowFootprint, QueueLifo, QueueFifo, QueueLowFootprintLifo, QueueLowFootprintFifo, AsyncQueue, AsyncQueueLowFootprint } = require("queues.js");

QueueTop (includes all Base methods)


const { QueueTop, QueueTopLowFootprint, QueueTopLifo, QueueTopFifo, QueueTopLowFootprintLifo, QueueTopLowFootprintFifo, AsyncQueueTop, AsyncQueueTopLowFootprint } = require("queues.js");

Stack (includes all Base methods)


const { Stack, StackLowFootprint, AsyncStack, AsyncStackLowFootprint } = require("queues.js");

Double - Denqueue (includes all Base methods)


const { DoubleEnded, DoubleEndedLowFootprint, AsyncDoubleEnded, AsyncDoubleEndedLowFootprint } = require("queues.js");

Semaphore (includes all Base methods)

In development


const { Semaphore } = require("queues.js");

WaitQueue (includes all Base methods)

In development


const { WaitQueue } = require("queues.js");

Priority Queue (includes all Base methods)


const { Priority, PriorityLowFootprint, AsyncPriority, AsyncPriorityLowFootprint } = require("queues.js");

Circular Queue (includes all Base methods)

In development - Currently Testing


const { Circular, AsyncCircular } = require("queues.js");

FIFO BOTTOM QUEUE IMPLEMENTATION

//
// FIFO BOTTOM QUEUE IMPLEMENTATION
// 
//   <==   [1,2,3,4]  <==
//

var queues = require("queues.js");
var QueueFifo = require("queues.js").QueueFifo;

var fifo = new QueueFifo();
fifo.enqueue(item);
fifo.add(item);
fifo.insert(item);
fifo.push(item);

fifo.dequeue();
fifo.shift();
fifo.remove();

LIFO BOTTOM QUEUE IMPLEMENTATION

//
// LIFO BOTTOM QUEUE IMPLEMENTATION
// 
//              <==
//   [1,2,3,4]  
//              ==>
//

var queues = require("queues.js");
var QueueLifo = require("queues.js").QueueLifo;

var lifo = new QueueLifo();
lifo.enqueue(item);
lifo.add(item);
lifo.push(item);
lifo.insert(item);

lifo.dequeue();
lifo.pop();
lifo.remove();

TODO

.todo In Development: Asynchronous Implementation, Semphores, Wait Queues

Contributions

Contributions, Feature Improvements, Bugs, and Issues are invited. raising an issue

License

MIT License