UNPKG

@gabrielrufino/cube

Version:

Data structures made in Typescript

34 lines (33 loc) 965 B
import type { IDoublyLinkedListItem } from './IDoublyLinkedList'; import type IDoublyLinkedList from './IDoublyLinkedList'; export default class DoublyLinkedList<T = number> implements IDoublyLinkedList<T> { private _head; private _tail; private _size; constructor(...inputs: Readonly<T[]>); get data(): IDoublyLinkedListItem<T>[]; get size(): number; /** * Complexity: O(1) */ push(element: T): T; /** * Complexity: O(n/2) */ getFromPosition(position: number): IDoublyLinkedListItem<T> | undefined; positionOf(element: T): number | undefined; /** * Complexity: O(n) */ insertInPosition(element: T, position: number): T | undefined; /** * Complexity: O(n) */ remove(element: T): T | undefined; /** * Complexity: O(n) */ removeFromPosition(position: number): T | undefined; private _findFasterWayToPosition; private [Symbol.toPrimitive]; }