Создание узла бинарного поискового дерева

Узел бинарного дерева поиска хранит значение и ссылки на левое и правое поддерево. Сам узел не обеспечивает порядок: его должны сохранять операции вставки и удаления.

Короткий ответ

Что ответить на собеседовании

Узел бинарного дерева поиска хранит значение и ссылки на левое и правое поддерево. Сам узел не обеспечивает порядок: его должны сохранять операции вставки и удаления.

Подробный разбор

Ответ с пояснениями

Условие

Требуется реализовать структуру данных, представляющую узел бинарного дерева поиска, содержащий значение типа int.

Ответ

Узел бинарного дерева поиска хранит значение и ссылки на левое и правое поддерево. Сам узел не обеспечивает порядок: его должны сохранять операции вставки и удаления.

Вариант с единоличным владением потомками:

#include <memory>

struct Node {
    int value;
    std::unique_ptr<Node> left;
    std::unique_ptr<Node> right;
    explicit Node(int v) : value(v) {}
};

Для дерева без повторов все значения слева меньше value, справа — больше. Правило для дубликатов задаётся отдельно. unique_ptr автоматически освобождает поддеревья; если нужны невладеющие связи с родителем, нельзя создавать ими циклическое владение.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее