32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
1

Бинарное дерево

12.07.2014, 16:12. Показов 1536. Ответов 7
Метки нет (Все метки)

Столкнулся с уникальной проблемой от которой волосы дыбом встают.
Вот код, достаточно первой итерации цикла, я ввожу данные а потом вывожу результат 2 раза подряд

строки 57-58
C++
1
2
cout<<"\n"<<l_tree->i<<"\n";  // - выводит 0
cout<<"\n"<<l_tree->i<<"\n"; // - выводит хрен знает что!!! почему??


C++ (Qt)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <time.h>
 
using namespace std;
 
 
struct TREE {
    int i;
    TREE * left;
    TREE * right;
 
};
 
typedef TREE* L_TREE;
typedef L_TREE* LL_TREE;
 
 
L_TREE insert(LL_TREE ll_tree,int _i){
 
    if( !*ll_tree) {
        cout<<&ll_tree<<"  "<<ll_tree<<"  "<<*ll_tree<<"\n";
 
        TREE time_tree;
        time_tree.i = _i;
        time_tree.left =0;
        time_tree.right=0;
        *ll_tree = &time_tree;
 
        
 
        cout<<&time_tree<<"\n"<<&ll_tree<<"  "<<ll_tree<<"  "<<*ll_tree<<"  "<<(*ll_tree)<<"  "<<&(*ll_tree)<<"\n";
 
    }else{
 
        cout<<(*ll_tree)->i;
        /*if((*ll_tree)->i > _i) {
            (*ll_tree)->right = insert(&(*ll_tree),_i);
        }else{
            (*ll_tree)->left = insert(&(*ll_tree),_i);
        }*/
    }
 
    return (*ll_tree);
}
 
 
 
void main() {
 
    L_TREE l_tree =0;
    srand(time(0));
 
    for (int i = 0; i < 10; i++)
    {
        cout<<"\n"<<&l_tree<<"  "<<l_tree<<"  "<<"\n";
        insert(&l_tree,i);
        cout<<"\n"<<l_tree->i<<"\n";
        cout<<"\n"<<l_tree->i<<"\n";
    }
 
 
 
 
 
 
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2014, 16:12
Ответы с готовыми решениями:

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Бинарное дерево
Всем доброго времени суток! Задача такая: Реализовать бинарное дерево в программе...

C++, Бинарное дерево
Привет. Можете помочь с заданием. Прочитал кучу теорию по бинарным деревьям. Сел делать вообще не...

7
12 / 10 / 12
Регистрация: 23.12.2012
Сообщений: 51
12.07.2014, 17:56 2
Я не очень понимаю ваш код, было бы лучше если вы бы описали задачку, а я покажу как я бы ее решил...
0
Модератор
Эксперт по электронике
8782 / 6568 / 891
Регистрация: 14.02.2011
Сообщений: 23,065
12.07.2014, 18:19 3
Цитата Сообщение от mh-coder Посмотреть сообщение
typedef TREE* L_TREE;
Цитата Сообщение от mh-coder Посмотреть сообщение
L_TREE l_tree =0;
память то кто выделять будет?
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
12.07.2014, 18:57  [ТС] 4
Цитата Сообщение от ValeryS Посмотреть сообщение
память то кто выделять будет?
какую память? я там адрес обнуляю

Цитата Сообщение от MrLinch Посмотреть сообщение
Я не очень понимаю ваш код, было бы лучше если вы бы описали задачку, а я покажу как я бы ее решил...
я изучаю принцып работы заполнения видом бинарного дерева, там 60 строчек кода, в котором я всего лишь сделал заполнения данными структуры, что там может быть непонятного? все cout - писал для себя, если мешают читать код можете вытереть, у меня решеней море, мне нужно сделать самому для освоения и практики, поэтому писать с нуля ненужно, просто обьясните почему там происходит такое чупо при выводе данных

Добавлено через 31 минуту
вопрос исчерпан
0
Модератор
Эксперт по электронике
8782 / 6568 / 891
Регистрация: 14.02.2011
Сообщений: 23,065
12.07.2014, 19:15 5
Лучший ответ Сообщение было отмечено mh-coder как решение

Решение

Цитата Сообщение от mh-coder Посмотреть сообщение
какую память? я там адрес обнуляю
вот это????
Цитата Сообщение от mh-coder Посмотреть сообщение
L_TREE l_tree =0;
ну а где ж ты создаешь его?
чтобы адрес то обнулять?
в стеке функции
Цитата Сообщение от mh-coder Посмотреть сообщение
insert
вышел из функции и нет ничего
динамическое выделение нужно
1
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
12.07.2014, 19:19  [ТС] 6
ValeryS,да я уже понял, спасибо
еще вопросец, если я записываю последователые данные, 1,2,3,4,5,6,7 и тд

в дерево запишется всё послдовательно и только от него в плане скорости не будет, как тогда лучше его реализовать?
0
Модератор
Эксперт по электронике
8782 / 6568 / 891
Регистрация: 14.02.2011
Сообщений: 23,065
12.07.2014, 19:28 7
Цитата Сообщение от mh-coder Посмотреть сообщение
еще вопросец, если я записываю последователые данные, 1,2,3,4,5,6,7 и тд
в дерево запишется всё послдовательно и только от него в плане скорости не будет,
получится не дерево а список
дерево с левыми(правыми) ветвями
тут двумя словами не объяснишь, прочитай теорию организации данных, и тогда задавай конкретные вопросы
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
12.07.2014, 19:38  [ТС] 8
а можно ссылку про то где почитаь? я то я про бинарные деревья перечитал много статей из гугла, и нигде про подобный случай ничего не упоминалось
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2014, 19:38
Помогаю со студенческими работами здесь

Бинарное Дерево
struct Tree { int value; Tree *l, *r; }; void add(Tree *&amp;obj, int value) { if (obj ==...

Бинарное дерево
Здравствуйте. Объясните пожалуйста подробно, по какому принципу идёт заполнение бинарного дерева...

Бинарное дерево
дано целочисленнное бинарное дерево. найти: а)количество вершин дереваж б)значение самой левой...

Бинарное дерево
Объясните пжлст почему не работает программа...при вводе файла пишет -842150451 /*Дан адрес P1...

Бинарное дерево
Нужно записать в дерево и вывести в форматированном виде каталог файлов(типа windows) на вход даны...

Бинарное дерево
Здравствуйте.Прошу помощи.Никак не могу разобраться в задании.Нужно сделать бинарное дерево и с...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru