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

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

Войти
Регистрация
Восстановить пароль
 
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
#1

Деревья, неверный результат - C++

29.09.2010, 19:20. Просмотров 368. Ответов 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
 
using namespace std;
 
class Tree
{
    int data;
    Tree *right;
    Tree *left;
public:
    Tree()
    {
        right=left=0;
    }
    void make(Tree *pp, int d);
    void walk(Tree *p);
};
 
void Tree::make(Tree *pp, int d)
{
    Tree *p = new Tree;
    if (!pp)
    {
        p->data = d;
        pp = p;
    }
    else 
        if (pp->data>d)
            make(pp->right, d);
        else
            make(pp->right, d);
}
 
void Tree::walk(Tree *p)
{
    if (p)
    {
        walk(p->right);
        cout<<p->data;
        walk(p->left);
    }
}
 
void main()
{
    Tree f;
    int d=1;
    f.make(&f,d);
    f.walk(&f);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2010, 19:20     Деревья, неверный результат
Посмотрите здесь:

Неверный результат _getch() - C++
Здравствуйте. Пытаюсь сделать управление клавишами в программе, но когда через _getch() отлавливаю нажатие кнопки (в данный момент UP), то...

Почему выводит неверный результат? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;locale.h&gt; #include &lt;stdlib.h&gt; using namespace std; int...

Калькулятор выводит неверный результат - C++
Изучаю С++ по Страуструпу. Дошел до следующей задачи(калькулятор) и &quot;буксую&quot;, не пойму в чем дело, код с книгой сверял несколько раз. ...

Проверка ввода и неверный результат - C++
переменная а содержит 13,а не то число которое мы вводим,Например мы ввели число 3,оно прошло проверку на букву и ...,но после проверки...

Выводит неверный результат ln2=1-1/2+1/3-1/4 - C++
Здравствуйте, необходимо написать последовательный и параллельный код для подсчета ln2=1-1/2+1/3-1/4... Вот что получилось: #include...

Неверный результат транспонирования матрицы - C++
Помогите, пожалуйста, разобраться - почему программа выдает в результате 0 1 1 1 0 1 1 1 0 Хотя ожидалось, что результатом...

Метод Гаусса-Зейделя: неверный результат - C++
Здравствуйте. Я вот написал(точнее фрагмент взял с Википедии) программу решения СЛАУ методом Гаусса-Зейделя, но результат не тот, который...

Вычисление по формуле даёт неверный результат - C++
#include &lt;math.h&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; double ad,bd; float af,bf; using namespace std; int main() ...

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

При значении больше 10 выводит неверный результат - C++
При вводе чисел до 10, например 4 выводится результат 4 = 4.02725. Начина с 10 результат такой 10=10. Почему так ? #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
30.09.2010, 14:13     Деревья, неверный результат #2
в общем должно быть что-то вроде этого:
C++
1
right->make(d);
но никак не этого:
C++
1
make(pp->right, d);//это кстати равносильно this->make(pp->right, d);
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
01.10.2010, 01:05  [ТС]     Деревья, неверный результат #3
в 31 строчке я должен был написать left а не right. но что-то я не понял на счёт
C++
1
right->make(d);
это вообще невозможно у меня функциия void выдаёт. да оно и не нужно, вроде. там передаётся либо правое поддерево, либо левое и обрабатывается через
C++
1
2
3
4
5
6
Tree *p = new Tree;
        if (!pp)
        {
                p->data = d;
                pp = p;
        }
уже как корень. это же рекурсия
Ответ Создать тему
Опции темы

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