Двоичное дерево поиска
Реализовать методы двоичного дерева поиска insert и remove в файле tree/tree.cpp. Дерево в данной задаче реализует множество, то есть хранит только "ключи", а не пары ключ-значение.
Метод tree::insert добавляет в множество (дерево) новое число и возвращает вершину, в котором это число лежит. Если число уже есть в дереве, ничего добавлять не нужно, а вернуть нужно указатель на имеющуюся вершину.
Метод tree::remove удаляет из множества (дерева) указанное число. Возвращает true, если такое число присутствовало, и false, если числа не было, и удалять не пришлось.
Сложность обеих операций – O(log(h)), где h – высота дерева
Все фрагменты кода, выполняющие схожие действия с различными данными, должны быть представлены в единственном экзмемпляре (т.е. вынесены в функции или циклы)
В коде не должны в явном виде встречаться операторы new и delete (для получения обычного указателя из std::unique_ptr пользуйтесь get)
Перем-е и ф-ии названы соотв-но.
Проходит все тесты
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |