/** * 定义链表结构 * @param data * @param next * @constructor */ declare class Node { data: T; next: Node | undefined; prev: Node | undefined; constructor(data: T); } declare class BothLinkedList { private head; private tail; private size; /** * 插入元素 采用尾插法 * @param data */ insertHead(data: T): void; /** * 根据索引插入元素 * @param data * @param index */ insertIndex(data: T, index: number): void; /** * 删除元素(根据元素值进行删除) */ deleteData(data: T): void; /** * 根据元素索引删除 * @param index */ deleteFrom(index: number): void; /** * 正向遍历 */ getHead(): Node | undefined; /** * 反向遍历 */ getTail(): Node | undefined; /** * 获取链表长度 */ getSize(): number; /** * 更具索引,获取元素值 * @param index */ getData(index: number): T | undefined; } export default BothLinkedList;