@gabrielrufino/cube
Version:
Data structures made in Typescript
25 lines (24 loc) • 962 B
TypeScript
import type IBinarySearchNodeOptions from './IBinarySearchNodeOptions';
import type IBinarySearchTree from './IBinarySearchTree';
import type IBinarySearchTreeData from './IBinarySearchTreeData';
export default class BinarySearchTree<T = number> implements IBinarySearchTree<T> {
private _root;
private _size;
constructor({ inputs, lessThanOrEqualTo }?: Readonly<IBinarySearchNodeOptions<T>>);
get data(): IBinarySearchTreeData<T>;
get size(): number;
get min(): T | null;
get max(): T | null;
insert(value: T): T;
walkInOrder(callback: (_value: T) => any): void;
walkPreOrder(callback: (_value: T) => any): void;
walkPostOrder(callback: (_value: T) => any): void;
search(value: T): boolean;
remove(value: T): T | null;
private _lessThanOrEqualTo;
private _insertChild;
private _visitNodeInOrder;
private _visitNodePreOrder;
private _visitNodePostOrder;
private [Symbol.toPrimitive];
}