BinarySearchTree

BinarySearchTree

Класс для создания экземпляра BST.

Constructor

new BinarySearchTree()

Source:
Example
const BST = new BinarySearchTree();
BST.insert(11);
BST.insert(5);
BST.insert(4);
BST.insert(5);
BST.insert(12);
BST.insert(6);

Methods

findMinNode(node) → {Node}

Находит узел с минимальным значением в дереве.
Parameters:
Name Type Description
node Node узел, который будем проверять
Source:
Returns:
эземпляр `Node`, содержащий минальное значение
Type
Node

inOrderTraverse(node, callback) → {void}

Прямой обход BST. >При прямом обходе будут посещаться все узлы в порядке возрастания, начиная с указанного узла (хотя это и необязательно), и выполнять заданную callback функцию (также необязательно).
Parameters:
Name Type Description
node Node узел, с которого начинается обход дерева
callback function callback функция
Source:
Returns:
Type
void

insert(data) → {void}

Создает экземпляр класса `Node`. И располагает его внутри BST.
Parameters:
Name Type Description
data Number значение добавляемого узла
Source:
Returns:
Type
void

insertNode(node, newNode) → {void}

Размещает узел в нужной позиции BST.
Parameters:
Name Type Description
node Node родительский узел
newNode Node добавляемый узел
Source:
Returns:
Type
void

postOrderTraverse(node, callback) → {void}

Обход в обратном порядке. >При обходе в обратном порядке посещаются узлы после посещения его потомков.
Parameters:
Name Type Description
node Node узел, с которого начинается обход дерева
callback function callback функция, которая будет выполнена при каждой итерации
Source:
Returns:
Type
void

preOrderTraverse(node, callback) → {void}

Симметричный обход. >При симметричном обходе посещаются каждый узел до его потомков.
Parameters:
Name Type Description
node Node узел, с которого начинается обход дерева
callback function callback функция, которая будет выполнена при каждой итерации
Source:
Returns:
Type
void

remove(data) → {void}

Удаление узла.
Parameters:
Name Type Description
data Number значение удаляемого узла
Source:
Returns:
Type
void

removeLeafNode(node) → {Node}

Удаление крайнего узла (leaf node). >Крайний узел - узел без дочерних элементов
Parameters:
Name Type Description
node Node Узел, который собираемся удалить (присвоить `null`)
Source:
Returns:
Обновленное значение узла
Type
Node

removeNode(node, data) → {Node|null|*}

Выбор способа удаления.
Parameters:
Name Type Description
node Node элемент, в котором происходит поиск удаляемого узла
data Number значение узла
Source:
Returns:
Type
Node | null | *

removeNodeWithoutLeftChild(node) → {Node}

Удаляет родительский узел, устанавливая вместо него дочерний правый.
Parameters:
Name Type Description
node Node родительский узел
Source:
Returns:
новый родительский узел (бывший дочерний правый)
Type
Node

removeNodeWithoutRightChild(node) → {Node}

Удаляет родительский узел, устанавливая вместо него дочерний левый.
Parameters:
Name Type Description
node Node родительский узел
Source:
Returns:
новый родительский узел (бывший дочерний левый)
Type
Node

removeNodeWithTwoChildren(node) → {Node}

Удаление узла с двумя потомками.
Parameters:
Name Type Description
node Node удаляемый узел
Source:
Returns:
минимальный дочерний элемент у правого поддерева указанного узла
Type
Node
Поиск.
Parameters:
Name Type Description
node Node Узел, в котором производится поиск
data Number значение, которое ищем
Source:
Returns:
узел, с указанным значением `data`
Type
Node