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

Рекурсивный обход дерева, не являющегося бинарным - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить разность сумм элементов массива, расположеных до минимального элемента http://www.cyberforum.ru/cpp-beginners/thread279416.html
Ребят, помогите решить эти два задания: Дано массив А. Ввести массив с клавиатуры. 1) Вычислить разность сумм элементов массива , расположеных до минимального элемента и после максимального...
C++ чтение из xml файла У меня xml файлик, а в нем , к примеру, <tag> zhenya </tag>. Есть C++ код, который считывает символ с указанной позиции. Как можно правильно считать этот выбранный символ из моего xml файла ? ... http://www.cyberforum.ru/cpp-beginners/thread279406.html
C++ упорядочивание элементов матрицы
Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1<n<=100, 1<m<=50) и упорядочивает столбцы по возрастанию последних элементов столбцов.
C++ Использование библиотеки SSQ.dll
SSQ.dll - библиотека запросов сервера Counter Strike Source. Она содержит в себе различные функции с помощью которых можно узнать разную информацию о сервере (пинг, игроки и т.п.) Мне нужна...
C++ наследование в классах http://www.cyberforum.ru/cpp-beginners/thread279342.html
всем доброго времени суток ! нужно создать виртуальную функцию для заполнения класса данными и печать данных на экран и переопределить эти методы в производных классах вот мои классы / ...
C++ определенные интегралы Помогите, пожалуйста, решить задачи. подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
19.04.2011, 17:04
Начинаем с корня, выводим значение, рекурсивно вызываем функцию для всех потомков, начиная с первого (по крайней мере так, насколько я знаю, реализуется обход дерева каталогов). Пример (указатели на потомков лежат в векторе):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Tree::pre_order() const
{
    pre_order_helper(m_root);
}
 
void Tree::pre_order_helper(TreeNode *node) const
{
    if (node != 0)
    {
        std::cout << node->m_data << "  ";
 
        size_t childs_number = node->m_childs.size();
 
        for (size_t i = 0; i < childs_number; ++i)
            pre_order_helper(node->m_childs[i]);
    }
}
Пример писал, не имея самого класса, возможно, где-то ошибся, но в общих чертах так
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru