АВТ
Язык:

Дистанционный практикум по программированию

Задачи Online статус Соревнования
Новости Справка СДО
 
Здравствуйте, Гость! Войдите с паролем или зарегистрируйтесь.

1947. Дерево по уровням

Ограничение времени: 1 сек.
Ограничение памяти:262144 КБайт
Баллы:100
Статистика Послать на проверку Задачу добавил debug

Одним из способов представления множества в памяти машины является двоичное (бинарное) дерево поиска. Каждый узел данного дерева может иметь не более двух детей (левого и правого сына). Для любого узла r выполняется следующее свойство: ключи во всех узлах левого поддерева r меньше, чем ключ в узле r, а ключи в узлах правого поддерева – больше, чем в r.

Вставка нового элемента x в дерево начинается с корневого узла. Сравним x с ключом в корне. Если они равны, то делать ничего не надо – вставка закончена. Если x меньше ключа в корне, то идём в левое поддерево, если больше – в правое. Продолжаем делать так до тех пор, пока идти станет больше некуда – в этом случае создаём новый листовой узел.

На рисунке показано дерево, полученное из пустого дерева после вставки элементов 8, 5, 7, 11, 9, 3, 6.

Все узлы дерева можно разбить на уровни. Корень лежит на уровне ноль. Его дети лежат на уровне 1, их дети – на уровне 2, и так далее.

Вам дана последовательность элементов, которые поочерёдно вставлялись в изначально пустое дерево. Требуется вывести элементы результирующего дерева по уровням: в первой строке выведите корень дерева, в следующей строке – элементы первого уровня (слева направо), затем элементы второго уровня, и так далее.

Входные данные

В первой строке входных данных записано целое число N (1 ≤ N ≤ 1000) – количество элементов. В следующей строке через пробел записаны N целых чисел – вставляемые элементы (все элементы не превышают по модулю 109).

Выходные данные

Выведите уровни дерева в вышеописанном формате.

Примеры

Входные данные
7
8 5 7 11 9 3 6
Выходные данные
8
5 11
3 7 9
6
Входные данные
3
5 5 5
Выходные данные
5

Статистика Послать на проверку Обсуждение задачи Автор/источник:
Учебные курсы / Алгоритмы и структуры данных / Структуры данных /
245. Делители 1947. 243. Деревья 251. КЛП->ЛКП 1948. Коммерческий калькулятор
Учебные курсы / Язык программирования C++ / Структуры данных и использование указателей /
1946. 1 - Высота дерева 1947. 253. 3 - Луч
 
время генерации 0.422 сек.
© Copyright ВоГУ, АВТ, Носов Д.А., Андрианов И.А.