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

exception - C++

Восстановить пароль Регистрация
 
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
25.05.2013, 15:57     exception #1
Суть такова , она нормально не работает , и выкидывает исключение , не могу понять в чем дело
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
//------описание узла дерева 
typedef struct _node 
{
    int key;
    struct _node *right,*left;
}node;
//-------создание узла
node* create_node(int value)
{ 
    node *nod =(node*)  malloc(sizeof(node)); 
    nod->key=value;
    nod->left=NULL;
    nod->right=NULL;
    return nod;
}
//-------создание дерева 
node* add_tree(node *nod,int value)
{
    if(nod==NULL)
    {
        create_node(value);
    }
    if(value<nod->key)
    {
        if(nod->left==NULL)
            nod->left=create_node(value);
        else 
            add_tree(nod->left,value);
    }
    if(value>nod->key)
    {
        if(nod->right==NULL)
            nod->right=create_node(value);
        else 
            add_tree(nod->right,value);
    return nod;
    }
 
}
//------поиск в дереве 
node *find_tree(node *nod,int value)
{
    if(nod==NULL)
        return NULL;
    if(value==nod->key)
        return nod;
    if(value<nod->key)
        return find_tree(nod->left,value);
    if(value>nod->key)
        return find_tree(nod->right,value);
}
//-----наиболее правый 
int rightmost(node *nod)
{
    while(nod->right!=NULL)
    {
        nod=nod->right;
        return nod->key;
    }
}
//------удаление узла дерева 
node *del_tree(node *nod,int value)
{
    if(nod==NULL)
    {
        return NULL;
    }
    if(nod->key==value)
    {
        if(nod->left==NULL && nod->right==NULL)
        {
            free(nod);
            return NULL;
        }
        if(nod->left==NULL && nod->right !=NULL)
        {
            node *temp=nod->right;
            free(nod);
            return temp;
        }
        if(nod->left !=NULL && nod->right==NULL)
        {
            node *temp=nod->left;
            free(nod);
            return temp;
        }
        nod->key=rightmost(nod->left);
        nod->left=del_tree(nod->left,nod->key);
        return nod;
     }
    if(value<nod->key)
    {
        nod->left=del_tree(nod->left,value);
        return nod;
    }
    if(value>nod->key)
    {
        nod->right=del_tree(nod->right,value);
            return nod;
    }
    return nod;
}
//-------функция вывода 
void print_tree(node *nod)
{
    if(nod!=NULL)
    {
        print_tree(nod->left);
        printf("%d ",nod->key);
        print_tree(nod->right);
    }
}
int main()
{
    node nod;
    node *nodPtr;
    nodPtr=&nod;    
    add_tree(nodPtr,5);
    add_tree(nodPtr,6);
    add_tree(nodPtr,8);
    print_tree(nodPtr);
   cin.get();
   cin.get();
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2013, 15:57     exception
Посмотрите здесь:

Unhandled exception... C++
Unhandled exception C++
exception и cerr C++
C++ exception EEFFACE
Exception C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
25.05.2013, 16:36     exception #2
А инициализацию Пушкину оставили?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
{
    node nod;
 
     nod.left=NULL;
     nod.right=NULL;
     nod.key=0;
 
    node *nodPtr;
    nodPtr=&nod;    
    add_tree(nodPtr,5);
    add_tree(nodPtr,6);
    add_tree(nodPtr,8);
    print_tree(nodPtr);
   cin.get();
   cin.get();
   return 0;
}
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
25.05.2013, 16:56  [ТС]     exception #3
я то думал компилятор составит конструктор
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
25.05.2013, 17:41     exception #4
Цитата Сообщение от AlexProg Посмотреть сообщение
я то думал компилятор составит конструктор
он его сделает, только вот ничего инициализировать этот конструктор не станет.
AlexProg
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 52
25.05.2013, 17:46  [ТС]     exception #5
так конструктор должен вроде изначально инициализировать поля
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
25.05.2013, 17:48     exception #6
Цитата Сообщение от AlexProg Посмотреть сообщение
так конструктор должен вроде изначально инициализировать поля
конструктор, который сгенерирует компилятор будет подобен этому:
C++
1
2
3
4
class A{
public:
   A(){}//<<== Вот он
};
И ничего он естевственно инициализировать не будет. Лишь будут созданы данные члены класса.
Yandex
Объявления
25.05.2013, 17:48     exception
Ответ Создать тему
Опции темы

Текущее время: 23:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru