АВТ
Language:

Remote Training on Programming

Problems On-line status Contests FAQ
For authors:
Register  ||  Login
 
Hello, Guest! Login or register.

215. Binary Search Tree

Time Limit: 1 seconds
Memory Limit:64000KB
Points:5
View Problem Statistics Submit Problem added Undefined

Вам требуется написать программу для работы с двоичным деревом поиска, реализующую основные операции:
  • вставка элемента
  • удаление элемента
  • поиск элемента
На вход подаётся последовательность целых чисел (в интервале от 1 до 1000000000), после каждого числа через пробел стоит знак
'+', если число нужно добавить в дерево,
'-', если число нужно удалить из дерева.
Если при вставке элемента он уже есть в дереве, ничего делать не надо. Если при удалении элемента его нет в дереве, делать тоже ничего не надо.

Входные данные: в каждой строке входного файла содержится число, затем пробел и символ '+' или '-'. Количество строк не превышает 100000. Гарантируется отсутствие "плохих" входных данных (случаев, когда много данных изначально упорядочено или почти упорядочено).

Выходные данные: В первой строке выведите количество элементов в дереве. Во второй строке выведите в порядке возрастания через пробел все числа, находящиеся в дереве.

Пример входных данных:
3 +
1 +
25347 +
1 -
3 +
8 +

Пример выходных данных:
3
3 8 25347

Пояснение к примеру - результирующее дерево:


View Problem Statistics Submit Author/source:
Sorted Problems / Dynamic Data Structures /
215. 370. Heap 695. I - Near Numbers 203. Mixed books
Educational Courses / C/C++for EPO-21 / Продолжение следует /
215. 97. Progression 243. Trees
We can all benefit by doing occasional "toy" programs, when artificial restrictions are set up, so that we are forced to push our abilities to the limit. The art of tackling miniproblems with all our energy will sharpen our talents for the real problems. Donald E. Knuth.
time generating 0.234 sec.
© Copyright VSTU, AVT, Nosov D.A.