Бинарное дерево на С++

Описание
Ваша задача реализовать методы двоичного дерева поиска insert и remove в файле tree/tree.cpp. Дерево в данной задаче реализует множество, то есть хранит только "ключи", а не пары ключ-значение.
Метод tree::insert добавляет в множество (дерево) новое число и возвращает вершину, в котором это число лежит. Если число уже есть в дереве, ничего добавлять не нужно, а вернуть нужно указатель на имеющуюся вершину.
Метод tree::remove удаляет из множества (дерева) указанное число. Возвращает true, если такое число присутствовало, и false, если числа не было, и удалять не пришлось.