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

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

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

Бинарные деревья и стек отл. заданий - C++

02.07.2012, 22:37. Просмотров 1015. Ответов 6
Метки нет (Все метки)

Доброго времени суток. Ребят, я не спец, требуется решить такую задачу:

Написать нерекурсивную программу, печатающую все вершины двоичного дерева. При реализации использовать стек отложенных заданий.Узлы дерева – символы латинского алфавита.
Дерево задается в файле в формате:
m [e [c [a], g [k] ], s [p [o,s], y ] ]
Рисунок, поясниющий пример:
Бинарные деревья и стек отл. заданий

Прошу помочь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2012, 22:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Бинарные деревья и стек отл. заданий (C++):

Бинарные деревья - C++
Подсчитать количество элементов на n-уровне бинарного дерева. Подскажите как можно решить используя любой обход в глубину но без...

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

Бинарные деревья - C++
Компилятор выдаёт ошибки в 9, 10 и 12, 13 строках: invalid conversion from 'int' to 'sNode*' Подскажите пожалуйста, что не так. ...

Бинарные деревья - C++
На с++ с объектно-ориентированным подходом(тоисть с помощю класов) нужно представить арифметическое выражение типа 3*((7+1)/4)+(17-5) в...

Бинарные деревья - C++
Разработать набор классов упорядоченных бинарных деревьев поиска типов: вещественные числа, двоичные строки(строка из 0 и 1) и линейные...

Бинарные деревья - C++
Очень нужна помощь, вообще деревья не понимаю!!!:( Вершина дерева содержит указатель на строку и N указателей на потомков. Функция...

6
neske
1505 / 872 / 84
Регистрация: 26.03.2010
Сообщений: 2,986
02.07.2012, 22:57 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
struct node {
    char data;
    node *left, *right;
    int visited;
    node() : visited(0) {}
};
 
void print(node *root) {
    if (!root) {
        std::cout << "Tree is empty.";
        return;
    }
    std::stack <node *> stack;
    stack.push(root);
    root->visited = 1;
    node *cur;
    while (!stack.empty()) {
        cur = stack.top();
        if (cur->left && !cur->left->visited) {
            stack.push(cur->left);
            cur->left->visited = 1;
        } else if (cur->right && !cur->right->visited) {
            stack.push(cur->right);
            cur->right->visited = 1;
        } else {
            std::cout << cur->data << " ";
            stack.pop();
        }
    }
}
что-то не сообразить мне сразу как без дополнительного поля обойтись)
1
Frukt521
0 / 0 / 0
Регистрация: 02.07.2012
Сообщений: 5
02.07.2012, 23:16  [ТС] #3
neske, спасибо, будем пробовать, еще бы знать как забить данные, каким образом организовать цикл?
0
neske
1505 / 872 / 84
Регистрация: 26.03.2010
Сообщений: 2,986
02.07.2012, 23:22 #4
данные рекурсивно забить можно, к примеру дано - m [e [c [a], g [k] ], s [p [o,s], y ] ]
m - корень
e [c [a], g [k] ] - левое поддерево
s [p [o,s], y ] - правое поддерево
и так спускайтесь, пока не дойдете до внешних узлов
1
Frukt521
0 / 0 / 0
Регистрация: 02.07.2012
Сообщений: 5
02.07.2012, 23:27  [ТС] #5
устройство то понятно, а вот как функцию организовать без рекурсии - нет(
0
neske
1505 / 872 / 84
Регистрация: 26.03.2010
Сообщений: 2,986
02.07.2012, 23:31 #6
почему без рекурсии? в задании же сказано только про итерационный вывод дерева
0
Frukt521
0 / 0 / 0
Регистрация: 02.07.2012
Сообщений: 5
02.07.2012, 23:36  [ТС] #7
"Написать нерекурсивную программу" , или я чего-то непонимаю
0
02.07.2012, 23:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2012, 23:36
Привет! Вот еще темы с ответами:

бинарные деревья - C++
Вершина двоичного дерева содержит указатель на строку и указатели на правое и левое поддеревья. Строки в дереве упорядочены по возрастанию....

Бинарные деревья - C++
1)Написать программу подсчета числа вершин в бинарном дереве 2)Написать программу копирования одного бинарного дерева в другое ...

Бинарные деревья С++ - C++
Добрый день! Дали такое задание на лабораторную работу. кое-что получилось, а в остальном прошу Вас помочь... Из входной...

бинарные деревья - C++
Вот у меня есть программа, которая создает бинарное дерево из массива целых чисел. #include &lt;iostream&gt; #include &lt;conio.h&gt; using...


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

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

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