Задание 9. Деревья поиска
9.1 Двоичное дерево поиска
Реализуйте простое двоичное дерево поиска. Без балансировки.
Вход
На вход программы подаются команды, их количество не превышает 100. В каждой строке находится одна из команд:
insert x
- добавить в дерево ключx
.delete x
- удалить ключx
из дерева. Если ключа нет, то ничего делать не нужно.has x
- проверяет, есть ли ключx
в дереве. Печатаетt
илиf
.next x
- вывести минимальный элемент дерева, строго большийx
.prev x
- вывести максимальный элемент дерева, строго меньшийx
.
Все x
- это целый числа типа int32
.
Выход
Результаты выполнения команд insert
, has
, next
, prev
.
Пример
Вход
insert 5
insert 7
insert 3
insert 4
has 3
has 8
insert 8
has 8
delete 3
has 4
next 7
prev 5
Выход
t
f
t
t
8
4
9.2 AVL-дерево
Добавьте баланисровку в дерево из 9.1.
Тесты такие же как и в 9.1.