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

Нерекурсивный обход дерева - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выяснить, можно ли из строки st1 сделать строку st2 путем перестановки символов http://www.cyberforum.ru/cpp-beginners/thread208472.html
Ребят помогите пожалуста) Даны две строки st1 и st2. Выяснить можо ли из строки st1 сделать строку st2 путем перестановки символов.
C++ Цикл и вектор Проблема в том, что оно входит в цикл ака for(i=0;i<-1;i++) Сразу даю кусок кода =) В функцию передаем координаты вершин фигуры, прямоугольник, по которому отсекаем ее и цвет points -... http://www.cyberforum.ru/cpp-beginners/thread208471.html
массивы C++
решить задачу с помощью одномерного массива: Дан целочисленный массив А. Если массив А упорядочен по убыванию, то переставить местами элементы массива в каждой паре соседних элементов: А и A, А и A,...
C++ Массив структур
Информация о дисциплине содержит название, количество часов лекций, количество часов практических занятий, фамилию преподавателя. Вывести информацию о дисциплинах, которые читаются заданным...
C++ Текстовые файлы http://www.cyberforum.ru/cpp-beginners/thread208439.html
Добрый день! Мне необходимо обработать текстовый файл, подсчитав в нем количество слов, предложений и абзацев. В каждой строчке не более 20000 символов. Пишу программу #include <stdio.h> #include...
C++ шаблоны и связь между файлами в проекте Собственно, проблема в следующем: если убрать комментарии в файле list.h, то все нормально компилируется. если убрать комментарии в файле list.cpp, то в point.cpp выводится ошибка "undefined... подробнее

Показать сообщение отдельно
Aye Aye
368 / 282 / 36
Регистрация: 17.12.2009
Сообщений: 567
12.12.2010, 15:59
кажется перебил правильно, но стек на односвязном списке обычно организовывается немножко удобнее, нужно определить класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class MySteck{
    struct list_node*{
        list_node *next;
        int value;
        list_node(list_node *l, int v);
    };
    list_node *head;
    int sz; // количество узлов в списке
public:
    void push(int x);
    void pop();
    void top();
    bool empty();
    int size();
};
просто так намного понятнее и можно хорошо протестировать стек отдельно от непосредственного использования.
Цитата Сообщение от Artishok Посмотреть сообщение
я изменил tt->left на tt->right а tt->left но это ничего не изменило
не может быть, чтобы это ничего не изменило, смотри внимательнее. Может где-нибудь опечатался, или забыл поменять... ну если написано tt = tt->right; как обход может в другую сторону пойти!? нрипиши там везде вывод содержимого узлов на экран, чтобы было видно точно куда идет обход. Может твоя процедура заполнения дерева заполняет его не в том порядке, в каком ты думаешь. Сначала распечатай дерево обычно процедурой:
C++
1
2
3
4
5
6
7
8
9
void print(node *t,int n)
{
    if (t != NULL) {
        print(t->right,n+1);
        for (int i = 0; i < n) std::cout << "  ";
        std::cout << t->val << '\n';
        print(t->left,n+1);
    }
}
и убедись, что дерево именно такое, каким ты его себе представляешь.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru