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

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

Войти
Регистрация
Восстановить пароль
 
weras
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 6
#1

Как вызвать в main данные функции? - C++

10.06.2013, 19:35. Просмотров 396. Ответов 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
130
131
132
133
134
135
136
137
138
139
using namespace std;
template <class T>//Создаем дерево
class Tree {
    struct Node {
        T item;
        Node *son;//создаем сыновей
        Node *brother;//создаем элементы ,которые располагаеются на том же уровне данного дерева
 
        Node(T i, Node *s = NULL, Node *b =NULL ) { // конструктор позволяющий задавать элементы данного дерева     
            item = i;
            son = s;
            brother = b;
        }
    };
 
    Node *root;//по умолчанию является приватным
 
public:
    Tree() { //конструктор ,который создает дерево
        root = NULL;
    }
 
    ~Tree() {
        DeleteSubtree(root);//рекурсивное удаление дерева из памяти
    }
 
    int GetHeight() { // Получение значения 
        return GetHeight(root);//высоты дерева
    }
 
    void Add(const T &elem) {//Добавление нового элемента в дерево
        Add(root, elem);
    }
 
private:
    void Add(Node *&node, const T &elem);//хранение элементов ,которые выстраиваются в определенном порядке
    void DeleteSubtree(Node *node);//Удаление ветки дерева
    int  GetHeight(Node *node);//Получение высоты дерева
    void reverse(Node *node);//Обратный обход дерева
    void NextNode( Node *node );//Получение следующего узла
    void get_son();//Получение сына
    void get_brother();//получение брата
    void streight(Node *root);
};
 
template <class T>
void Tree<T>::DeleteSubtree(Node *node) { //Удаление узлов дерева
    if(node){//удаление происходит до тех  пор ,пока следующим элементом не окажется node,тогда заканчивается работа 
        DeleteSubtree(node->son);//удаление ветви son
        DeleteSubtree(node->brother);//удаление ветви brother
            delete node;//в конце удаляется node
    }
}
        
template <class T>
int Tree<T>::GetHeight(Node *node) {
    if (node == NULL)//проверка ,на наличие элементов в дереве
        return 0;//если элементов нет ,то возвращает значение 0
    int max = 0;
    //Подсчитываем значение коичества всех поддеревьев 
    for (Node *current = node->son; current; current = current->brother) {//проход по всем элементам дерева
        int curHeight = GetHeight(current);
        if(curHeight > max)
            max = curHeight;
    }
    return max + 1;//и прибаляем первый элемент с которого начинался отсчет
 
 
}
 
//Добавление нового элемента 
template <class T>
void Tree<T>::Add(Node *&node, const T &item) {
    if (node==NULL)
    {
        node = new Node(item);
    } 
    else if (item < node->item) {
        Add(node->son, item);
    } 
    else {
        Add(node->brother, item);
    }
}
 
 
template <class T>//Обратный обход дерева
void Tree<T>:: reverse(Node *root)
{
if(!root)//если дерево является, не выполнять никаких действий – обход дерева завершается
return;
reverse(root->son);//обход левого поддерева
printf("%d. \"%s\"\n", ++cnt, root->info);// здесь выполняется необходимая обработка корня – например,вывод информации в выходной поток
reverse(root->brother);// обход правого поддерева
}
 
 
template <class T>//Прямой 
void Tree<T>::streight(Node *root)
{
if(!root)
return;
// 
printf("%d. \"%s\"\n", ++cnt, root->info);
// обход левого поддерева 
straight(root->son);
// обход правого поддерева 
straight(root->brother);
}
 
template <class T>//Получение следующего узла
void Tree<T>:: NextNode( Node *node )
{
   if ( node->IsSelected )
   {
 
     ( str->Equals( "Next" ) )
               node->TreeView->SelectedNode = node->NextNode;
     
      
   }
 
   node->TreeView->Focus();
}
//Получение левой ветки
template<class T>void Tree<T>::get_son(){
        Node<T>*son=this->obj;
        while(left_son->son!=NULL)
            down();
        return son;
    }
 
//Получение правой ветки
template<class T>void Tree<T>::get_brother(){
        Node<T>*brother=this->obj;
        while(right_brother->brother!=NULL)
            down();
        return son;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 19:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как вызвать в main данные функции? (C++):

Как вызвать Main из другой функции? - C++
собственно в этом то и вся проблема(( Не знаю как вызвать Main из другой функции.... Может кто помочь??

Как вызвать функцию из функции main? - C++
работаю в деве. предположим я создал проект, изначально в нем находится файл main.cpp. предположим я создал в нем еще один файл с именем...

Как вызвать в main() функции getsum() и getsum(int m) - C++
// Program.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using...

Как вызвать 3 данные функции? - C++
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;string&gt; #include &lt;iostream&gt; using namespace std; class Result{ double x, y,...

Вызвать на выполнение созданные в функции main проекта, подключив header файл с описанием созданных функций - C++
Помогите решить вот такую задачку, особые проблемы у меня возникают в работе с heder файлом. Создать библиотечный файл в котором...

Как вызвать функцию из .h в main ? - C++
Здравствуйте! Помогите решить проблему. У меня есть много маленьких подзадачек в виде функций, которые расписаны в файлах .h и .cpp....

1
NeonLost
Пес войны
75 / 86 / 3
Регистрация: 23.02.2012
Сообщений: 653
10.06.2013, 19:41 #2
int main()
{
Tree<int> iTree;
iTree.add(15);
...
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2013, 19:41
Привет! Вот еще темы с ответами:

Транспонирование - как вызвать функцию из main - C++
Вроде всё правильно но выдаёт ошибку Unresolved external '_main' referenced from C:\PROGRAM FILES...

В главной функции main () ввести входные данные, и вызвав собственные функции, вычислить значение выражения и вывести результаты - C++
В главной функции main () ввести входные данные, и вызвав собственные функции, вычислить значение выражения и вывести результаты. ...

Можно ли вручную вызвать метод main() - C++
у меня в книге по C++ написано, что метод main() является зарезервированным системой и что его невозможно вызвать вручнуюкак обычную...

Как из обыной функции вызвать функции член класса? - C++
Требуется установить таймер. При компиляции выдаётся ошибка. Как ее решить? void handlук(int signo) { cTimer.run; } ...


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

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

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