eolymp
bolt
Try our new interface for solving problems
Məsələlər

Обратный обход дерева

Обратный обход дерева

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

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

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 PostOrder(void); // Вывести вершины дерева в порядке обратного обхода

};

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

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

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

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

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

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 122.17 MiB
Giriş verilənləri #1
6
14 9 1 14 20 13
Çıxış verilənləri #1
1 13 9 20 14 14 
Müəllif Михаил Медведев
Mənbə Язык С++