queue
Queue implementation in JavaScript (based on Array)
队列:先入先出
install
npm i @kartjim/queue
export
const { Queue } = require('@kartjim/queue');
or ESM :
import { Queue } from "@kartjim/queue";
Queue API
export class Queue<A> {
constructor(arr?: T[]);
isEmpty(): boolean;
size(): number;
front(): A;
end(): A;
push(val: A): Queue<A>;
pop(): A;
toArray(): A[];
clear(): void;
}
constructor
create a Queue from an Array.
const queue = new Queue();
isEmpty
Checks if the Queue is empty.
console.log(stack.isEmpty())
queue.push(1);
console.log(queue.isEmpty())
size
return the number of elements in the queue.
console.log(queue.size())
push
push an element to the top of the queue.
queue.push(2)
console.log(stack.front())
console.log(stack.end())
front
return the element at the front of the queue.
queue.push(5);
console.log(stack.front())
end
return the element at the end of the queue.
queue.push(6);
console.log(stack.end())
console.log(stack.size())
pop
remove and return the top element in the queue.
console.log(queue.pop())
console.log(queue.pop())
console.log(queue.pop())
console.log(queue.pop())
console.log(queue.pop())
toArray
return an array of elements in the queue.
queue.push(8).push(9).push(11);
console.log(queue.toArray())
clear
remove all elements from the queue.
queue.clear();
console.log(queue.size())
console.log(queue.isEmpty())
Coverage
🚀 grunt coverage:
===================== Coverage summary =====================
Statements : 100% ( 80/80 )
Branches : 100% ( 6/6 )
Functions : 100% ( 9/9 )
Lines : 100% ( 80/80 )
============================================================