lgrthms
Version:
Algorithms and data structures for your JavaScript and TypeScript projects 🧑💻
26 lines (25 loc) • 1.02 kB
TypeScript
export declare class BinaryTree<T = any> {
private _parent;
private _left;
private _right;
private _size;
value: T;
constructor(value: T);
get size(): number;
set parent(tree: BinaryTree<T>);
get parent(): BinaryTree<T> | null;
set left(tree: BinaryTree<T>);
get left(): BinaryTree<T> | null;
set right(tree: BinaryTree<T>);
get right(): BinaryTree<T> | null;
insert(value: T): BinaryTree<T>;
remove(tree: BinaryTree<T>): void;
removeWithValue(predicate: (value: T) => unknown): void;
dfs(predicate: (value: T) => unknown): BinaryTree<T> | null;
deepFirstSearch(predicate: (value: T) => unknown): BinaryTree<T> | null;
bfs(predicate: (value: T) => unknown): BinaryTree<T> | null;
breadthFirstSearch(predicate: (value: T) => unknown): BinaryTree<T> | null;
traverseInOrder(callbackfn: (value: T) => void): void;
traversePreOrder(callbackfn: (value: T) => void): void;
traversePostOrder(callbackfn: (value: T) => void): void;
}