lgrthms
Version:
Algorithms and data structures for your JavaScript and TypeScript projects 🧑💻
30 lines (29 loc) • 971 B
TypeScript
declare class Node<T = any> {
value: T;
next: Node<T> | null;
prev: Node<T> | null;
constructor(value: T);
}
export declare class DoublyLinkedList<T = any> {
private _head;
private _tail;
private _length;
constructor();
get head(): Node<T> | null;
get tail(): Node<T> | null;
get length(): number;
get(index: number): T | undefined;
getNode(index: number): Node<T> | undefined;
find(predicate: (value: T) => unknown): T | undefined;
findNode(predicate: (value: T) => unknown): Node<T> | undefined;
insert(value: T, index?: number): Node<T>;
insertAfter(value: T, node: Node<T>): Node<T>;
insertBefore(value: T, node: Node<T>): Node<T>;
removeAtIndex(index: number): void;
removeWithValue(predicate: (value: T) => unknown): void;
removeNode(node: Node<T> | null | undefined): void;
forEach(callbackfn: (value: T) => void): void;
private setHead;
private setTail;
}
export {};