Вам требуется написать программу для работы с двоичным деревом поиска, реализующую основные операции:
- вставка элемента
- удаление элемента
- поиск элемента
На вход подаётся последовательность целых чисел (в интервале от 1 до 1000000000), после каждого числа через
пробел стоит знак
'+', если число нужно добавить в дерево,
'-', если число нужно удалить из дерева.
Если при вставке элемента он уже есть в дереве, ничего делать не надо. Если при удалении элемента его нет в дереве,
делать тоже ничего не надо.
Входные данные: в каждой строке входного файла содержится число, затем пробел и символ '+' или '-'. Количество строк не превышает 100000. Гарантируется отсутствие "плохих" входных данных (случаев, когда много данных изначально упорядочено или почти упорядочено).
Выходные данные:
В первой строке выведите количество элементов в дереве. Во второй строке выведите в порядке возрастания через пробел все числа, находящиеся в дереве.
Пример входных данных:
3 +
1 +
25347 +
1 -
3 +
8 +
Пример выходных данных:
3
3 8 25347
Пояснение к примеру - результирующее дерево:
|