UNPKG

861 BTypeScriptView Raw
1export declare class HeadNode<T> {
2 next: LinkedListNode<T> | TailNode<T>;
3 constructor();
4}
5export declare class TailNode<T> {
6 previous: LinkedListNode<T> | HeadNode<T>;
7 constructor(head: HeadNode<T>);
8}
9export declare class LinkedListNode<T> {
10 next: LinkedListNode<T> | TailNode<T> | null;
11 previous: LinkedListNode<T> | HeadNode<T> | null;
12 readonly item: T;
13 constructor(item: T);
14 detachSelf(): void;
15 attachAfter(node: LinkedListNode<T> | HeadNode<T>): void;
16 attachBefore(node: LinkedListNode<T> | TailNode<T>): void;
17}
18export declare class LinkedList<T> {
19 head: HeadNode<T>;
20 tail: TailNode<T>;
21 constructor();
22 add(item: T): LinkedListNode<T>;
23 getItems(): T[];
24 forEach(callback: (item: T, node: LinkedListNode<T>) => void): void;
25 hasItems(): boolean;
26 getLastItem(): LinkedListNode<T>;
27}