+
Skip to content

alg-js/buffer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@alg/buffer

JSR License

A circular queue/buffer.

See @alg/deque for a generic double ended queue.

Install

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

Example

import {Buffer} from "@alg/buffer";

const buff = Buffer.from(["A", "B"], {capacity: 16});

buff.push("C");
buff.pushAll(["X", "Y", "Z"]);

console.log(buff.length);  // 6
console.log(buff.capacity);  // 16

console.log(buff.pop());  // A
console.log(buff.popK(2));  // ["B", "C"]
console.log(buff.peek());  // X
console.log(buff.peekK(3));  // ["X", "Y", "Z"]
console.log([...buff]);  // ["X", "Y", "Z"]

Buffers can also act as double ended queues with the push/pop back/front methods.

import {Buffer} from "@alg/buffer";

const buff = new Buffer({capacity: 16});

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

console.log([...buff]);  // ["Z", "Y", "X", "A", "B", "C"]

console.log(buff.popBack());  // C
console.log(buff.popFront());  // Z
console.log(buff.popBackK(2));  // ["B", "A"]
console.log(buff.popFrontK(2));  // ["Y", "X"]

About

A circular queue/buffer

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载