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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
hazerot
2 / 2 / 0
Регистрация: 13.05.2012
Сообщений: 46
#1

Алгоритмы обходов дерева - C++

12.07.2012, 19:06. Просмотров 3310. Ответов 4
Метки нет (Все метки)

Всем добрый вечер. Не у кого случаем не завалялись алгоритмы для обходов дерева, если да, то поделитесь пожалуйста.
Нужны обходы:
Прямой или префиксный порядок (сверху вниз)
Обратный или инфиксный порядок (слева направо)
Концевой или постфиксный порядок (снизу вверх)
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2012, 19:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Алгоритмы обходов дерева (C++):

Количество обходов шахматной доски конём (с возвратом в начальную клетку) - C++
Всем добрый день, нужна помощь. Нужно найти на доске n*m количество обходов доски. n,m <=6. С последней клетки нужно обязательно вернуться...

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

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

Вывод бинарного дерева на экран в виде "дерева" - C++
основная задача: подсчет количества листьев. проблема: при просмотре хочу выводить бин. дерево, в красивом виде, возможно использование...

Алгоритмы на C++ - C++
Вот решил приобрести себе такую ​​книгу. http://www.ozon.ru/context/detail/id/5531965/ Книга вроде не плохая, но там нет описания всех...

Алгоритмы С++ - C++
Написать программу календарь, которая при вводе даты выдает день недели

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.07.2012, 21:09 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
hazerot, если говорить о рекурсивной реализации, всё довольно просто, фактически, название обхода определяет реализацию.
Префиксный обход:
C++
1
2
3
4
5
6
7
8
9
10
void preorder(TreeNode *node)
{
    if (node != 0)
    {
        std::cout << node->data << std::endl;
        
        preorder(node->left);
        preorder(node->right);
    }
}
Инфиксный обход:
C++
1
2
3
4
5
6
7
8
9
10
11
void inorder(TreeNode *node)
{
    if (node != 0)
    {
        inorder(node->left);
        
        std::cout << node->data << std::endl;
        
        inorder(node->right);
    }
}
Постфиксный обход:
C++
1
2
3
4
5
6
7
8
9
10
void postorder(TreeNode *node)
{
    if (node != 0)
    {
        postorder(node->left);
        postorder(node->right);
        
        std::cout << node->data << std::endl;
    }
}
6
akk
44 / 44 / 7
Регистрация: 28.01.2012
Сообщений: 341
03.01.2013, 01:03 #3
silent_1991, это ж левоассоциативные обходы?
Цитата Сообщение от silent_1991 Посмотреть сообщение
C
1
2
3
4
5
6
7
8
void preorder(TreeNode *node) 
{ 
if (node != 0) 
{ std::cout << node->data << std::endl;
preorder(node->left); 
preorder(node->right); 
} 
}
Для того чтобы были правоассоциативные нужно поменять 5 и 6 строчку???
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.01.2013, 14:32 #4
Цитата Сообщение от akk Посмотреть сообщение
Для того чтобы были правоассоциативные нужно поменять 5 и 6 строчку???
Очевидно, да.
0
Akalit
0 / 0 / 0
Регистрация: 07.02.2017
Сообщений: 27
07.05.2017, 20:43 #5
А что мы должны передавать в функцию?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2017, 20:43
Привет! Вот еще темы с ответами:

Алгоритмы - C++
case 2:{ int n1; int n2; do{ cout &lt;&lt; &quot;Введите номер словаря в который хотите добавить ячейку: ...

Циклические алгоритмы. - C++
Циклические алгоритмы. 1. Известны оценки по информатике каждого из 20 учеников класса. Сколько учеников имеют по информатике оценку...

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

Итерационные алгоритмы - C++
Помогите пожалуйста с заданием нужно решить на основе реккурентных отношений


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.05.2017, 20:43
Ответ Создать тему
Опции темы

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