UNPKG

@cosmicmind/algojs

Version:

A TypeScript library featuring algorithms and data structures.

29 lines 2.22 kB
import { Stackable, stackDepth, Listable, List } from '.'; export type Tree = Listable & Stackable & { parent?: Tree; next?: Tree; previous?: Tree; children: List<Tree>; size: number; }; export declare const TreeCompareFn: <T extends Tree>(a: T, b: T) => number; export declare const treeCreate: <T extends Tree>(props?: Omit<T, keyof Tree>) => T; export declare function treeInsertChild<T extends Tree>(parent: T, node: T): void; export declare function treeInsertChildBefore<T extends Tree>(parent: T, node: T, before: T, compare?: (a: T, b: T) => number): void; export declare function treeInsertChildAfter<T extends Tree>(parent: T, node: T, after: T, compare?: (a: T, b: T) => number): void; export declare function treeAppendChild<T extends Tree>(parent: T, node: T): void; export declare function treeRemove<T extends Tree>(node: T, compare?: (a: T, b: T) => number): void; export declare const treeDepth: <T extends Tree>(root: T) => ReturnType<typeof stackDepth>; export declare function treeIsRoot<T extends Tree>(node: T): boolean; export declare function treeIsLeaf<T extends Tree>(node: T): boolean; export declare function treeIsChild<T extends Tree>(parent: T, node: T, compare?: (a: T, b: T) => number): boolean; export declare function treeIsFirstChild<T extends Tree>(parent: T, node: T, compare?: (a: T, b: T) => number): boolean; export declare function treeIsLastChild<T extends Tree>(parent: T, node: T, compare?: (a: T, b: T) => number): boolean; export declare function treeIsOnlyChild<T extends Tree>(parent: T, node: T, compare?: (a: T, b: T) => number): boolean; export declare function treeIsChildDeep<T extends Tree>(parent: T, node: T, compare?: (a: T, b: T) => number): boolean; export declare function treeIncreaseSize<T extends Tree>(root: T, size: number): void; export declare function treeDecreaseSize<T extends Tree>(root: T, size: number): void; export declare function depthFirstIterator<T extends Tree>(root: T): IterableIterator<T>; export declare function breadthFirstIterator<T extends Tree>(root: T): IterableIterator<T>; export declare function treeQuery<T extends Tree>(root: T, ...fn: ((node: T) => boolean)[]): Set<T>; //# sourceMappingURL=Tree.d.ts.map