UNPKG

stl-kit

Version:

A modern JavaScript & TypeScript standard template library (STL) for data structures and algorithms. Includes high-performance implementations of Stack, Queue, Deque, Linked List, Vector, Set, Map, Tree, Heap, and Graph — inspired by C++ STL. Designed for

34 lines (32 loc) 1.29 kB
type Factory<T, A extends unknown[]> = (...args: A) => T; interface QueueOptions<T, A extends unknown[]> { initValues?: T[]; factory?: Factory<T, A>; } declare class Queue<T, A extends unknown[] = unknown[]> { #private; constructor({ initValues, factory }?: QueueOptions<T, A>); [Symbol.iterator](): IterableIterator<T>; rbegin(): IterableIterator<T>; begin(): IterableIterator<T>; push(value: T): void; pop(): T | undefined; emplace(...args: A): void; isEmpty(): boolean; clear(): void; toArray(): T[]; assign(count: number, value: T): void; assign(values: T[], start?: number, end?: number): void; forEach(callback: (value: T, index: number, stack: Queue<T, A>) => void | false, thisArg?: unknown): void; peekFirst(): T | undefined; peekLast(): T | undefined; clone(deepCloneFn?: (val: T) => T): Queue<T, A>; get length(): number; get front(): T | undefined; set front(val: T); get back(): T | undefined; set back(val: T); static equals<U, V extends unknown[] = unknown[]>(queue1: Queue<U, V>, queue2: Queue<U, V>, comparator?: (a: U, b: U) => boolean): boolean; static swap<U, V extends unknown[] = unknown[]>(queue1: Queue<U, V>, queue2: Queue<U, V>): void; } export { Queue };