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

Обход упорядоченного дерева. Не могу понять на что ругается прогорамма... Ошибок вроде как нет... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск строк http://www.cyberforum.ru/cpp-beginners/thread333130.html
Мне нужно найти в строке символ "," и заменить ее. Данная программа демонстрирует нахождение одной запятой #include<iostream> #include<string> using namespace std; class a {private: string...
C++ я новенький....посмотрите.. Описать процедуру TimeToHMS(T, H, M, S), определяющую по времени T (в секундах) содержащееся в нем количество часов H, минут M и секунд S (T — входной, H, M и S — выходные параметры целого типа).... http://www.cyberforum.ru/cpp-beginners/thread333123.html
C++ Необходимые знания и литература ?
Доброго времени суток , уважаемые пользователи и программисты ! Моя цель , я хотел бы научиться создавать программы и компьютерные игры , естественно этому всему надо учиться долгие годы . Я раньше...
Рекурсия возведение в степень C++
Занимаюсь изучением языка С++. Компилятор Visual C++ 2010 express.Когда компилирую выдает: 1>------ Build started: Project: recf, Configuration: Debug Win32 ------ 1>MSVCRTD.lib(crtexew.obj) :...
C++ Программа про карты http://www.cyberforum.ru/cpp-beginners/thread333100.html
Дана программа #include <iostream> #include <cstdlib> #include <ctime> using namespace std; enum Suit { clubs, diamonds, hearts, spades }; const int jack = 11;
C++ Вывод результата, начиная с 5-й строки. День добрый! Замучился вот с чем: Есть программа, выводящая на экран содержимое журнала системы для конкретного события. Мне надо надо отбросить лишнюю информацию и оставить лишь дату, время и имя... подробнее

Показать сообщение отдельно
Ne_Mega_Ne_Keek
4 / 4 / 0
Регистрация: 10.07.2011
Сообщений: 10
15.07.2011, 00:34  [ТС]
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <vector> 
#include <ctime>
 
using namespace std;
 
struct node
{
    int Key;
    int Cout;
    node *Left;
    node *Right;
};
 
class TREE
{
    private:
    node *Tree; // Указатель на корень дерева
    void Search (int, node**);
    public:
    TREE() {Tree=NULL;}
    node** GetTree (){return & Tree;} // Получение узла дерева.
    void BuildTree ();
    void CleanTree (node**);
    void ObhodEnd (node** );
    void ObhodLeft (node** );
    void Obhodback (node** );
    void Vyvod (node**,int);
};
 
void main ()
{
    setlocale(LC_ALL,"Russian");
    TREE A;
    A.BuildTree();
    cout<< endl <<"Вывод дерева:"<<endl;
    A.Vyvod (A.GetTree(),0);
    cout<<"Прямой обход дерева:";
    A.ObhodLeft (A.GetTree());
    cout<< endl<< "Обратный обход дерева:";
    A.ObhodEnd (A.GetTree());
    cout<< endl<< "Симметричный обход дерева:";
    A.Obhodback (A.GetTree());
    A.CleanTree (A.GetTree());
}
 
void TREE::BuildTree()
//Построение бинарного дерева (рекурсивный алгоритм).
//Tree-указатель на корень дерева.
{
    int el;
    cout<<"Введите ключи вершин дерева. Затем введите 0." <<endl;
    cin>> el;
    while(el!=0)
    {
        Search (el,&Tree);
        cin>>el;
    }
 
}
 
void TREE::Search(int x, node**p)
// Поиск вершины с ключом x в дереве со вставкой
//(рекурсивный алгоритм).
//*p- указатель на корень дерева.
{
    if(*p=NULL)
    {
    // Вершины в дереве нет; включить её.
        *p=new(node);
        (**p).Key =x;
        (**p).Cout =1;
        (**p).Left =NULL;
        (**p).Right =NULL;
    }
    else
    if(x<(**p).Key)
    Search(x,&(**p).Left);
    else
    if(x>(**p).Key)
    Search (x,&(**p).Right);
    else
    (**p).Cout=(**p).Cout +1;
}
 
void TREE::ObhodLeft(node**w)
//Прямой обход дерева.
//*w- указатель на корень дерева.
{
    if(*w!=NULL)
    {
        cout<<(**w).Key<<"";
        ObhodLeft(&((**w).Left));
        ObhodLeft(&((**w).Right));
    }
}
 
void TREE::ObhodEnd(node**w)
//Обратный обход дерева.
//*w- указатель на корень дерева.
{
    if(*w!=NULL)
    {
        ObhodEnd(&((**w).Left));
        ObhodEnd(&((**w).Right));
        cout<<(**w).Key<<" ";
    }
}
 
void TREE::Obhodback(node **w)
//Симметричный обход дерева.
//*w- указатель на корень дерева.
{
    if(*w!=NULL)
    {
        Obhodback(&((**w).Left));
        cout<<(**w).Key<<" ";
        Obhodback(&((**w).Right));
    }
}
 
void TREE::CleanTree(node **w)
//Очистка дерева.
//*w- указатель на корень дерева.
{
    if(*w!=NULL)
    {
        CleanTree(&((**w).Left));
        CleanTree(&((**w).Right));
        delete *w;
    }
}
 
void TREE::Vyvod(node**w,int l)
//Изображение дерева *w на экране
//(рекурсивный алгоримт).
//*w- указатель на корень дерева.
{
    int i;
    if(*w!=NULL)
    {
        Vyvod(&((**w).Right),l+1);
        for(i=1;i<=l;i++)
        cout<<" ";
        cout<<(**w).Key<<endl;
        Vyvod(&((**w).Left),l+1);
    }
}
Добавлено через 7 минут
if(*p==NULL) - Да... она на неё ругается... я это понял! Но почему?

Добавлено через 2 минуты
И спасибо что про тему сказал)) ... Я пока не так хорошо разбираюсь в структурах что бы понять, что он от меня требует...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru