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

не могу скомпилировать программу( - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не могу разобраться с NetBeans C++ http://www.cyberforum.ru/cpp-beginners/thread843096.html
Ребят не подскажите в чём дело. Сначала эту "прогу" на C написал было всё нормально. А вот на C++ не хочет с этими библиотеками. NetBeans не так настроен или что? (...
C++ Общий корень узлов Имеется странноватая коряга, в которой не предки содержат указатели на потомки, а наоборот. Метод вызван для некоторого узла дерева и принял в параметр Right ссылку на другой узел. Требуется найти... http://www.cyberforum.ru/cpp-beginners/thread843078.html
Выделение памяти C++
Всем доброго времени суток! Пытаюсь сделать связанный список на 100кк элементов, но не выделив памяти и под половину, программа жрёт 4 гига оперативы, и как вы поняли намерена сожрать больше....
C++ закрытое наследование
Объясните, плиз. Заранее спасибо В классе Base поле X находится в части private, производный класс объявлен так: class Derived: private Base{…}. Какие из следующих функций могут обращаться к...
C++ Наибольшее нечетное http://www.cyberforum.ru/cpp-beginners/thread843070.html
Собственно задание: Ввести с клавиатуры целое число, которое будет являться количеством целых чисел во вводимой последовательности. Определить максимальное среди нечетных элементов...
C++ Замена слов в строках Доброго времени суток! Помогите, пожалуйста, вот с таким заданием: нужно в тексте заменить все слова "and" на "и". Например, есть строка: "Миша and Ваня играли в футбол". Должно получиться: "Миша и... подробнее

Показать сообщение отдельно
Wonder Land
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 5

не могу скомпилировать программу( - C++

20.04.2013, 03:39. Просмотров 521. Ответов 1
Метки (Все метки)

не могу никак додуматься как скомпилировать, ругается что init() не определен...
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
#include <iostream.h>
#include <stdlib.h>
 
struct Node
{
   int inf;
   Node *next;
};
 
//============================Stack==============================
 
void push(Node *&st,int dat)
{  // Загрузка числа в стек
 
   Node *el = new Node;
   el->inf = dat;
   el->next = st;
   st=el;
}
 
int pop(Node *&st)
{       // Извлечение из стека
 
   int value = st->inf;
   Node *temp = st;
   st = st->next;
   delete temp;
 
   return value;
}
 
int peek(Node *st)
{     // Получение числа без его извлечения
   return st->inf;
}
 
//==============================================================
 
Node **graph;   // Массив списков смежности
const int vertex = 1; // Первая вершина
 
void add(Node*& list,int data)
{  //Добавление смежной вершины
 
   if(!list){list=new Node;list->inf=data;list->next=0;return;}
 
   Node *temp=list;
   while(temp->next)temp=temp->next;
   Node *elem=new Node;
   elem->inf=data;
   elem->next=NULL;
   temp->next=elem;
}
 
void del(Node* &l,int key)
{ // Удаление вершины key из списка
 
   if(l->inf==key){Node *tmp=l; l=l->next; delete tmp;}
   else
        {
     Node *tmp=l;
     while(tmp)
         {
        if(tmp->next) // есть следующая вершина
           if(tmp->next->inf==key)
                  {  // и она искомая
             Node *tmp2=tmp->next;
                 tmp->next=tmp->next->next;  
                 delete tmp2;  
               }
           tmp=tmp->next;
     }
   }
}
 
int eiler(Node **gr,int num)
{ // Определение эйлеровости графа
 
   int count;
   for(int i=0;i<num;i++)
   {  //проходим все вершины
 
      count=0;
      Node *tmp=gr[i];
 
     while(tmp)
         {       // считаем степень
            count++;
        tmp=tmp->next;
         }
      if(count%2==1)return 0; // степень нечетная
   }
   return 1;   // все степени четные
}
 
void eiler_path(Node **gr)
{ //Построение цикла
 
   Node *S = init();// Стек для  пройденных вершин
   int v=vertex;// 1я вершина (произвольная)
   int u;
 
   push(S,v); //сохраняем ее в стек
   while(S)
      {  //пока стек не пуст
     v = peek(S); // текущая вершина
     if(!gr[v]){ // если нет инцидентных ребер
     v=pop(S); cout<<v+1<<"   "; //выводим вершину  (у нас отсчет от 1, поэтому +1)
      }
     else 
      {
     u=gr[v]->inf; push(S,u);  //проходим в следующую вершину
     del(gr[v],u); del(gr[u],v); //удаляем пройденное ребро
      }
   }
}
 
int main()
{
 
system("CLS");
    cout<<"Количество вершин:  "; int n; cin>>n; // Количество вершин
   int zn;// Текущее значение
 
   graph=new Node*[n];
   for(int i=0;i<n;i++)graph[i]=NULL;
   for(i=0;i<n;i++)   // заполняем массив списков
 
     for(int j=0;j<n;j++)
         {
        cin>>zn;
        if (zn) add(graph[i],j);
      }
 
         cout<<"\n\nРЕЗУЛЬТАТ  ";
 
   if(eiler(graph,n))eiler_path(graph);
   else cout<<"Граф не является эйлеровым.";
 
   cout<<endl;
   cin.get();
   cin.get();
   return(0);
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru