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

Возращение значения в рекурсии - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаление строк в файле http://www.cyberforum.ru/cpp-beginners/thread448080.html
Нужна программа, удаляющая в текстовом файле все строчки, начинающиеся на введенный символ. Хелп!
C++ Создать конструктор копий и оператор присваивания для класса компьютер и члена класса марка Создать конструктор копий и оператор присваивания для класса компьютер и члена класса марка. Всем огромное спасибо за помощь! | http://www.cyberforum.ru/cpp-beginners/thread448070.html
C++ 5. Обработать информацию о фирмах городов. Обработку прекратить, когда на запрос будет введено слово «end». Фирм в городе не более пятидесяти.
5. Обработать информацию о фирмах городов. Обработку прекратить, когда на запрос будет введено слово «end». Фирм в городе не более пятидесяти. Информация следующая: - название фирмы (не более тридцати знаков); - величина налогообложения (не более 1 млн. р. – в виде строки); - дата (месяц – в виде строки) последнего срока внесения налога; - дата его фактического внесения (строка). В одной...
О библиотеках C++
Есть dll, возможно ли импортировать функции из неё таким образом, чтоб после компиляции эти функции были в моём исполняемом файле и dll не требовалась?
C++ комментарии к задаче http://www.cyberforum.ru/cpp-beginners/thread448003.html
кому не сложно - снабдите основные вычисления и циклы комментариями. полностью в задаче разобраться не могу. ум за разум заходит. если можно чуть подробнее чем в 2х словах. заранее спасибо. сама задача звучит так: дана матрица m*n. найти строку в которой элементы чередуются знаками. #include "stdafx.h" #include "time.h" #include <iostream> using namespace std; void gen(int *M, int n, int...
 

Показать сообщение отдельно
РагнаР
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 27
17.02.2012, 21:08     Возращение значения в рекурсии
Есть бинарное дерево и есть функция, которая должна рекурсивно пройти по вершинам в порядке возрастания ключей и вернуть первое значение, подходящее по условию. Но почему-то функция доходит до самого последнего элемента, хотя не должна. Как это исправить?
Код дерева
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Код:
 
class Tree
{
public:
    static int Count;
    struct tree {
        int key;
        int height;
        int dif;
        tree *left, *right;
    } *root;
    class TreeException{};
    Tree();
    virtual ~Tree();
 
Код самой функции
Код:
 
int Tree::NodeForDelete(tree*&node,int Count)
    {
        if (node)
        {
            if(node->left!=0)
                 NodeForDelete(node->left,Count);
            if(node->height==(root->height/2))//условие
            {
                if(Count==0)
                {           
                    cout<<node->key<<endl;//значение выдается,значит условие выполняется
                    return node->key;
                }
                Count--;
            }
            if(node->right!=0)
                 NodeForDelete(node->right,Count);
            cout<<node->key<<" !!!"<<endl;
        }
        else if(node==root)
        {
            cout<<"Tree is Null"<<endl;
            //return node;
        }
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru