@gabrielrufino/cube
Version:
Data structures made in Typescript
34 lines (33 loc) • 965 B
TypeScript
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];
}