1.0.5 • Published 9 months ago
@datastructures-js/deque v1.0.5
@datastructures-js/deque
A performant double-ended queue (deque) implementation in javascript.
Contents
Install
npm install --save @datastructures-js/dequerequire
const { Deque } = require('@datastructures-js/deque');import
import { Deque } from '@datastructures-js/deque';API
constructor
JS
// empty queue
const deque = new Deque();
// from an array
const deque = new Deque([1, 2, 3]);TS
// empty queue
const deque = new Deque<number>();
// from an array
const deque = new Deque<number>([1, 2, 3]);Deque.fromArray
JS
// empty queue
const deque = Deque.fromArray([]);
// with elements
const list = [10, 3, 8, 40, 1];
const deque = Deque.fromArray(list);
// If the list should not be mutated, use a copy of it.
const deque = Deque.fromArray(list.slice());TS
// empty queue
const deque = Deque.fromArray<number>([]);
// with elements
const list = [10, 3, 8, 40, 1];
const deque = Deque.fromArray<number>(list);pushFront
adds an element at the front of the queue.
deque.pushFront(30).pushFront(20).pushFront(10);pushBack
adds an element at the back of the queue.
deque.pushBack(40).pushBack(50).pushBack(60);front
peeks on the front element of the queue.
console.log(deque.front()); // 10back
peeks on the back element of the queue.
console.log(deque.back()); // 60popFront
removes and returns the front element in the queue.
console.log(deque.popFront()); // 10
console.log(deque.front()); // 20popBack
removes and returns the back element in the queue.
console.log(deque.popBack()); // 60
console.log(deque.back()); // 50isEmpty
checks if the queue is empty.
console.log(deque.isEmpty()); // falsesize
returns the number of elements in the queue.
console.log(deque.size()); // 4clone
creates a shallow copy of the queue.
const deque2 = Deque.fromArray([{ id: 2 }, { id: 4 } , { id: 8 }]);
const clone = deque2.clone();
clone.popFront();
console.log(deque2.front()); // { id: 2 }
console.log(clone.front()); // { id: 4 }toArray
returns a copy of the remaining elements as an array.
console.log(deque.toArray()); // [ 20, 30, 40, 50 ]clear
clears all elements from the queue.
deque.clear();
deque.size(); // 0Build
grunt buildLicense
The MIT License. Full License is here