eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Прямой обход дерева

Прямой обход дерева

Задан массив целых чисел. Создайте из них Бинарное Дерево Поиска. Если вставляемое значение равно текущей вершине, то его следует вставлять в правое поддерево.

Реализуйте метод PreOrder прямого обхода дерева. При прямом обходе сначала посещается корень, потом левое поддерево, потом правое поддерево.

prb7463.gif

Напишите код согласно следующего интерфейса:

class TreeNode

{

public:

int val;

TreeNode *left;

TreeNode *right;

TreeNode(int x) : val(x), left(NULL), right(NULL) {}

};

class Tree

{

public:

TreeNode *head;

Tree() : head(NULL) {};

void Insert(int val); // Вставка числа val в Бинарное Дерево Поиска

void PreOrder(void); // Вывести вершины дерева в порядке прямого обхода

};

Вы можете создавать (использовать) по необходимости дополнительные методы.

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

Первая строка содержит число n (1n100). Вторая строка содержит n целых чисел.

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

Создайте Бинарное Дерево Поиска из входных данных. Выведите вершины дерева в порядке прямого обхода.

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
6
14 9 1 14 20 13
Вихідні дані #1
14 9 1 13 14 20 
Автор Михаил Медведев
Джерело Язык С++