Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Foollox33
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 4
#1

Обход бинарного дерева С++ - C++

15.06.2017, 14:12. Просмотров 211. Ответов 5
Метки нет (Все метки)

Нужна помощь! Просмотрел много источников, но так и не нашёл своего ответа...Суть задачи состоит в том что, мне нужно при обходе дерева(любым способом) отлавливать елементы НЕ являющимися листьями и запихать их в массив. Столько перепробовал, но так и не смог. Помогите кому не впадлу. Сессию здать не могу)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2017, 14:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обход бинарного дерева С++ (C++):

Обход Бинарного дерева - C++
Задача: написать функцию, помощью которой можно получить n-тый элемент бинарного дерева по возрастанию. в узлах хранятся целые числа. ...

Обход бинарного дерева - C++
Прошу Вас, помогите школьнику, незнающему деревья, завтра срочно надо сдать работу, я никак не могу реализовать... 1. В заданном...

Обход бинарного дерева - C++
может есть у кого такой пример или похожий??или часть какая нибудь?

НЕрекурсивный обход бинарного дерева - C++
уважаемые программисты! нужно написать алгоритм обхода бинарного дерева без использования рекурсии, а с помощью стека. Проверить на...

Обход бинарного дерева без рекурсии - C++
нужно написать алгоритм обхода бинарного дерева без использования рекурсии, а с помощью стека. Проверить на дереве int, но в самом коде...

Как осуществлять обход бинарного дерева? - C++
Хочу создать клас бинарное дерево, но не знаю чем это дерево я буду проходить, как двигатса от одного узла к дргому.(без создания...

5
likehood
offline
890 / 749 / 253
Регистрация: 25.12.2016
Сообщений: 2,474
Завершенные тесты: 3
15.06.2017, 17:06 #2
Цитата Сообщение от Foollox33 Посмотреть сообщение
Столько перепробовал, но так и не смог
Покажите один из опробованных вариантов и объясните что именно не получилось.
1
Foollox33
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 4
15.06.2017, 18:11  [ТС] #3
Код
void print (node * root, short x, short y, short a, char c, int* qe)
//...бла бла бла 
if(root->left==0||root->right==0||root->left!=0 && root->right!=0){
      qe[k]=root->data;
      k++;}
//(Без этого кусочка кода всё работает)
Мне нужно "отловить предков" и запихать их в массив, где я смогу уже дальше с ними работать.
Проблема только в этом кусочке кода.
Здесь я проверяю:
1: Есть ли у узла левый потомок;
2: Есть ли у узла правый потомок;
3: Или проверка на 2-ух потомков сразу.
Под словами "бла бла бла" я подразумеваю использование всех остальных аргументов функции кроме последнего, ссылки на массив.
0
ixoyz
122 / 65 / 17
Регистрация: 01.06.2015
Сообщений: 268
Записей в блоге: 1
Завершенные тесты: 1
15.06.2017, 18:27 #4
Цитата Сообщение от Foollox33 Посмотреть сообщение
root->left==0||root->right==0||root->left!=0 && root->right!=0
А вы таблицу истинности прибывали строить? У вас условие всегда истина
1
Foollox33
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 4
15.06.2017, 18:32  [ТС] #5
Я уже разобрался!)))
Код
if(root->left==0 && root->right!=0 || root->right==0 && root->left!=0 || root->left!=0 && root->right!=0)
Проверка на предков.


Только человек захотевший этого сможет сделать это!


Тема закрыта
0
likehood
offline
890 / 749 / 253
Регистрация: 25.12.2016
Сообщений: 2,474
Завершенные тесты: 3
15.06.2017, 19:24 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Зачем так сложно?

Достаточно просто
C++
1
if (root->left != 0 || root->right != 0)
1
15.06.2017, 19:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2017, 19:24
Привет! Вот еще темы с ответами:

Бинарное дерево. Обход бинарного дерева (симметрический, прямой и обратный) - C++
Привет всем! Мне надо в курсовой работе написать программу, которая строит бинарное дерево (по вводимым значениям) и потом обходит это...

"Рекурсивная функция" (Обход бинарного дерева) - C++
Привет всем, встретился с такой рекурсивной ф-ей, которая обходит бинарное дерево и выводит его на экран. Не могу понять как она работает ...

Запись бинарного дерева в файл и восстановление из него этого дерева - C++
Задача такая: есть бинарное дерево. Каждый элемент дерева содержит 3 указателя - 1 указатель на структуру с данными, 2 и 3й указатель на...

Написать шаблон бинарного дерева с функцией распечатки дерева - C++
Не понимаю, что от меня хотят. Дано такое задание: Написать шаблон бинарного дерева с функцией распечатки дерева *(+(d,e),c) в виде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru