Skip to content

alg-js/deque

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@alg/deque

JSR License

A deque implemented as an array blocked doubly linked list.

See @alg/buffer for a generic buffer.

Install

deno add jsr:@alg/deque
Other Install Options
npx jsr add @alg/deque
bunx jsr add @alg/deque
pnpm i jsr:@alg/deque
yarn add jsr:@alg/deque
vlt install jsr:@alg/deque

Example

import {Deque} from "@alg/deque";

const q = Deque.from(["I", "J"]);

q.pushFront("L");
q.pushBack("R");
q.pushAllBack(["X", "Y", "Z"]);
q.pushAllFront(["A", "B", "C"]);

console.log([...q]);  // ["C", "B", "A", "L", "I", "J", "R", "X", "Y", "Z"]

console.log(q.size());  // 10

console.log(q.popBack());  // "Z"
console.log(q.popFront());  // "C"

console.log(q.popBackK(2));  // ["Y", "X"]
console.log(q.popFrontK(2));  // ["B", "A"]

console.log(q.peekBack());  // "R"
console.log(q.peekFront());  // "L"

q.pushBack(q.popFront());  // Look, ma! O(1) rotate!

console.log([...q]);  // ["I", "J", "R", "L"]

About

A deque implemented as an array blocked doubly linked list

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published