Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 4

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

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

Студворк — интернет-сервис помощи студентам
Нужна помощь! Просмотрел много источников, но так и не нашёл своего ответа...Суть задачи состоит в том что, мне нужно при обходе дерева(любым способом) отлавливать елементы НЕ являющимися листьями и запихать их в массив. Столько перепробовал, но так и не смог. Помогите кому не впадлу. Сессию здать не могу)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.06.2017, 14:12
Ответы с готовыми решениями:

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

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

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

5
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
15.06.2017, 17:06
Цитата Сообщение от Foollox33 Посмотреть сообщение
Столько перепробовал, но так и не смог
Покажите один из опробованных вариантов и объясните что именно не получилось.
1
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 4
15.06.2017, 18:11  [ТС]
Code
1
2
3
4
5
6
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
353 / 165 / 61
Регистрация: 01.06.2015
Сообщений: 656
15.06.2017, 18:27
Цитата Сообщение от Foollox33 Посмотреть сообщение
root->left==0||root->right==0||root->left!=0 && root->right!=0
А вы таблицу истинности прибывали строить? У вас условие всегда истина
1
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 4
15.06.2017, 18:32  [ТС]
Я уже разобрался!)))
Code
1
if(root->left==0 && root->right!=0 || root->right==0 && root->left!=0 || root->left!=0 && root->right!=0)
Проверка на предков.


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


Тема закрыта
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
15.06.2017, 19:24
Лучший ответ Сообщение было отмечено Foollox33 как решение

Решение

Зачем так сложно?

Достаточно просто
C++
1
if (root->left != 0 || root->right != 0)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.06.2017, 19:24
Помогаю со студенческими работами здесь

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

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

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

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

Обход правой части бинарного дерева (корень - уникальный элемент)
Здравствуйте, уважаемые форумчане! Снова придумал несложную задачу на бинарные деревья. Надеюсь, кому-то будет интересно. Вот код: /* ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru