import BinaryTreeNode from './BinaryTreeNode'; /** * A Binary search tree node */ declare class BinarySearchTreeNode extends BinaryTreeNode { /** * Left child of the node */ left?: BinarySearchTreeNode; /** * Right child of the node */ right?: BinarySearchTreeNode; /** * Set the left child of the node * * @param {BinarySearchTreeNode} value */ setLeft(value: BinarySearchTreeNode): void; /** * Set the right child of the node * * @param {BinarySearchTreeNode} value */ setRight(value: BinarySearchTreeNode): void; /** * Insert a value into the node * (Using Recursion) * * @param {T} value */ insert(value: T): void; /** * Find the minimum value from the given node * * @param {BinarySearchTreeNode} node * @return {BinarySearchTreeNode} */ findMinimum(): BinarySearchTreeNode; /** * Delete this node * * @param {BinarySearchTreeNode} parent * @return {[ * BinarySearchTreeNode, * BinarySearchTreeNode * ]} [deletedNode, currentRoot] */ deleteThisNode(parent?: BinarySearchTreeNode): [BinarySearchTreeNode?, BinarySearchTreeNode?]; /** * Delete a node * (Using recursion) * * @param {T} value * @param {BinarySearchTreeNode} parent * @return {[ * BinarySearchTreeNode, * BinarySearchTreeNode * ]} [deletedNode, currentRoot] */ delete(value: T, parent?: BinarySearchTreeNode): [BinarySearchTreeNode?, BinarySearchTreeNode?]; } export default BinarySearchTreeNode;