LinkedList.d.ts 1022 B

123456789101112131415161718192021222324
  1. export declare const END: unique symbol;
  2. export declare type SortFn<DataClass> = (a: DataClass, b: DataClass) => boolean;
  3. export declare class ListItem<DataClass> {
  4. data: DataClass | symbol;
  5. next: ListItem<DataClass>;
  6. prev: ListItem<DataClass>;
  7. constructor(data?: any);
  8. }
  9. export declare class LinkedList<DataClass> {
  10. protected list: ListItem<DataClass>;
  11. constructor(...args: DataClass[]);
  12. isBefore(a: DataClass, b: DataClass): boolean;
  13. push(...args: DataClass[]): LinkedList<DataClass>;
  14. pop(): DataClass;
  15. unshift(...args: DataClass[]): LinkedList<DataClass>;
  16. shift(): DataClass;
  17. remove(...items: DataClass[]): void;
  18. clear(): LinkedList<DataClass>;
  19. [Symbol.iterator](): IterableIterator<DataClass>;
  20. reversed(): IterableIterator<DataClass>;
  21. insert(data: DataClass, isBefore?: SortFn<DataClass>): this;
  22. sort(isBefore?: SortFn<DataClass>): LinkedList<DataClass>;
  23. merge(list: LinkedList<DataClass>, isBefore?: SortFn<DataClass>): LinkedList<DataClass>;
  24. }