Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ нужна помощь. Сложение и вычитание больших чисел. https://www.cyberforum.ru/ cpp-beginners/ thread573755.html
Доброго время суток! Нужна помощь в задаче. Звучит так: " Сложение и вычитание больших чисел 2^32 и больше. Киньте примеры. Заранее огромное спасибо ОГРОМНОЕ! P.S. 2 день мучаюсь уже. Добавлено через 12 минут помогите пожалуйста, добрые людишки. ООЧень надо решить эту задачу!
C++ Создать одномерный массив с числом элементов как у исходного
void new_arr(int size) { int *B=new int; cout<<sizeof(B)/sizeof(int) // =1 элемент deleteB; } void main() { const N=100;
C++ Зеркально отразить элементы матрицы относительно главной диагонали Дана квадратная матрица A порядка M. Зеркально отразить ее элементы относительно главной диагонали (при этом элементы главной диагонали останутся на прежнем месте, элемент A1,2 поменяется местами с A2,1, элемент A1,3 — с A3,1 и т. д.). Вспомогательную матрицу не использовать. Вот код: #include <iostream> #include <time.h> #include <stdlib.h> using namespace std; int main() { ... https://www.cyberforum.ru/ cpp-beginners/ thread573746.html C++ Неплоский класс Что есть такое неплоский класс? Класс в котором используется динамическая память? https://www.cyberforum.ru/ cpp-beginners/ thread573740.html
C++ Ошибка в процедуре вставки в упорядоченный массив
void insert (int a,int &n,int x) { int i=n; int j=n+1; while (a>x) a=a; a=x; if (j!=0) while (j>=0) a=a; n=n+1;
C++ Крестики нолики на С++ Помогите плиз, нужны крестики нолики на С++, поле 3 на 3, передвигаться стрелочками, минименю. https://www.cyberforum.ru/ cpp-beginners/ thread573722.html
C++ Хэш-таблицы https://www.cyberforum.ru/ cpp-beginners/ thread573713.html
Добавить функцию Scan просмотра таблицы (в случае цепочек –элементы списка выводить на одной строке, через табуляцию), функцию расчета коэффициента заполнения хэш-таблицы ( альфа=n/m - число хранимых элементов /размер массива хэш). Использовать функции при моделировании. Провести исследования построения хэш-таблиц для разного размера (например 16,32 или 32,64, 128) с коллизиями. Исследовать...
Бинарные деревья C++
Доброго времени суток, нужна помощь, дали задание...Вершина бинарного дерева содержит ключ, строку и два указателя на потомков.Составить функцию распечатки всех элементов дерева по уровням: корень дерева, вершины 1-го уровня, вершины 2-го уровня, ... Есть мысли как реализовать?...
C++ Как решить без массивов? https://www.cyberforum.ru/ cpp-beginners/ thread573701.html
как это решить без массивов? //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- #include <iostream> #include <ctime> using namespace std;
C++ не могу представить в виде функции, помогите(! Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке. Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента. вот мой вариант #include <iostream> #include <cmath> #include <stdlib.h> #include <iomanip> https://www.cyberforum.ru/ cpp-beginners/ thread573700.html
как написать функцию возвращающую объект с указателем на кучу C++
уперся в следующее: есть класс содержащий в себе указатель на динамическую память (кучу). В общем-то это массив размерность которого определяется при создании объекта. конструктор объекта кроме всего прочего, выделяет сколько нужно памяти и вносит ее адрес в соответствующее поле. class MyClass { ... type* data; ... }
C++ Массив строк https://www.cyberforum.ru/ cpp-beginners/ thread573681.html
Может кто то написать код, чтобы с массива строк выбрать одну рандомно, заранее благодарен..
0 / 0 / 0
Регистрация: 11.11.2010
Сообщений: 26
0

Описать неориентированный граф - C++ - Ответ 3027424

14.05.2012, 02:41. Показов 3980. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Используя методы объектно-ориентированного программирования требуется реализовать абстрактную структуру данных (класс), называемую «граф»(G(V,E))
Для выполнения базовых операций над графами требуется реализовать следующие методы класса (операторы):
AddVertex (v1) – добавление вершины к графу G, в случае существования в составе G указанной вершины должно выдаваться соответствующее уведомление;
AddEdge (v1,v2) – соединение двух вершин ребром, если указанные вершины на момент выполнения указанной операции уже смежны, то оператору должен быть оповещён о данном факте;
DelVertex (v1) – удаление указанной вершины из графа G, при этом должны удаляться все инцидентные данной вершине рёбра, в случае отсутствия заданной вершины оператору должно выдаваться соответствующее уведомление;
DelEdge (v1,v2) – удаление ребра соединяющего две заданные вершины, в случае отсутствия такого ребра оператору должно выдаваться соответствующее уведомление;
LoadGraph() – загружает граф в память программы из файла;
SaveGraph() – сохраняет созданный в памяти программы граф в файл; -(это всё уже сделано)
остались эти две:

IsFull(G) – анализирует граф на предмет свойства «полнота» и сообщает о соответствующем результате;
D (v,1) – возвращает список вершин, удалённых на расстояние 1 от вершины v.
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
#include <iostream>
 #include <fstream>
 #include <string>
 
 using namespace std;
 
 string str(int d)
 {
 int n = 10;
 string s = "";
 while(d != 0)
 {
 s = char(((d%n)/(n/10))+48) + s;
 d = d - (d%n);
 n *= 10;
 }
 return s;
 }
 
 
 
 struct link
 {
 int data;
 link* next;
 };
 
 
 class linklist
 {
 private:
 link* first;
 public:
 bool e;
 
 linklist ( )
 {
 first = NULL;
 e = false;
 }
 
 void additem ( int d );
 void linklist::display ( );
 bool exist(int x);
 void makenull();
 
 
 };
 
 void linklist::additem ( int d ) // добавление элемента
 {
 link* newlink = new link; // выделяем память
 newlink->data = d; // запоминаем данные
 newlink->next = first; // запоминаем значение first
 first = newlink; // first теперь указывает на новый элемент
 }
 
 void linklist::display ( )
 {
 link* current = first; // начинаем с первого элемента
 while( current ) // пока есть данные
 {
 cout << current->data << endl; // печатаем данные
 current = current->next; // двигаемся к следующему элементу
 }
 }
 
 bool exist(int x)
 {
 link* current = first; 
 if (!current) return 0;
 while( current ) 
 {
 if (current->data == x)
 {
 return 1;
 break;
 } 
 current = current->next; 
 }
 
 if (current == NULL)
 return 0;
 } 
 
 void makenull()
 {
 link* current = first; 
 link* deleted = new link;
 while(!(current)) 
 { 
 deleted = current; 
 current = current->next; 
 delete deleted; 
 }
 first = NULL ;
 cout<<"Linklist is free";
 }
 
 
 class Graph
 {
 private:
 
 linklist adj[1000];
 
 public:
 
 Graph ( ) 
 { } 
 
 void addedge (int x,int y); 
 void addvertex (int x);
 void deledge (int x,int y); 
 void delvertex (int x);
 void load();
 void save();
 
 
 
 void q(int n);
 void d(int x);
 void IsFull(G);
 void D(v,1);
 
 };
 
 
 void Graph::addedge(int x,int y)
 {
 if ((adj[x].e == true) && (adj[y].e == true) && (adj[x].exist(y) == false) && (adj[y].exist(x)==false) && (x!=y))
 {
 adj[x].additem(y);
 adj[y].additem(x);
 }
 else cout<<"Error"<<endl;
 }
 
 void Graph::addvertex(int x)
 {
 
 if (adj[x].e==false)
 adj[x].e=true;
 else
 cout<<"Vertise is !!!"<<endl;
 }
 
 void Graph::deledge (int x,int y)
 {
 if ((adj[x].e == true) && (adj[y].e == true) && (adj[x].exist(y) == true) && (adj[y].exist(x) == true) && (x!=y))
 {
 adj[x].delitem(y);
 adj[y].delitem(x);
 }
 else cout<<"Error"<<endl;
 }
 
 void Graph::delvertex(int x)
 {
 if (adj[x].e == true)
 {
 adj[x].e = false;
 adj[x].makenull();
 
 for (int i = 1; i < 1000; i++)
 {
 if (adj[i].exist(x) == 1)
 adj[i].delitem(x);
 }
 }
 else
 cout<<"Vertise is not !!!"<<endl;
 }
 
 void Graph::save()
 {
 string s = "";
 for(int i = 1;i <= 1000; i++)
 {
 if(adj[i].e == true)
 {
 /*cout<<"save"<<endl;
 s = s + str(i) + " - ";
 out.write(s.c_str(),s.size());*/
 adj[i].save(i);
 }
 //out.close();
 } 
 }
 
 void Graph::display()
 {
 for (int i = 1; i < 1000; i++)
 {
 if (adj[i].e == true)
 {
 cout<<i<<" - ";
 adj[i].display();
 cout<<endl;
 }
 }
 }
 
 void Graph::q(int n)
 {
 int d = 0;
 for (int i = 1; i <= n; i++)
 {
 if (adj[i].e == true)
 d = d + adj[i].Putnumberver();
 }
 cout<<"There are "<<(d/2)<<" edges in the Graph"<<endl;
 }
 
 void Graph::d(int x)
 {
 cout<<"The degree of vertex "<<x<<" is "<<adj[x].Putnumberver()<<endl;
 }
 
 
 
 }
 int main()
 {
 Graph G;
 int n = 0,x = 0,y = 0,v = 0;
 
 
 while(true)
 {
 
 cout<<"What are you want?"<<endl
 <<"1 - Add Vertex"<<endl
 <<"2 - Add Edge"<<endl
 <<"3 - Delete Vertex"<<endl
 <<"4 - Delete Edge"<<endl
 <<"5 - Calculate the numbers of Edge"<<endl
 <<"6 - Calculate the numbers of Vertex"<<endl
 <<"7 - Calculate the degree of vertex"<<endl
 <<"8 - Display Graph to monitor"<<endl
 <<"9 - Save Graph"<<endl
 <<"10 - Load Graph"<<endl
 <<"11 - Exit"<<endl;
 cin>>v;
 
 
 
 if(v == 1)
 {
 cout<<"Enter Vertex"<<endl;
 cin>>x;
 G.addvertex(x);
 n++;
 };
 
 if(v == 2)
 {
 cout<<"Enter edge(vertexes x and y)"<<endl;
 cin>>x>>y;
 G.addedge(x,y);
 };
 if(v == 3)
 {
 cout<<"Enter deleted Vertex"<<endl;
 cin>>x;
 G.delvertex(x);
 };
 
 if(v == 4)
 {
 cout<<"Enter deleted edge(vertexes x and y)"<<endl;
 cin>>x>>y;
 G.deledge(x,y);
 };
 
 if(v == 5)
 {
 G.q(n);
 };
 
 if(v == 6)
 {
 G.p(n);
 };
 
 if(v == 7)
 {
 cout<<"Enter Vertex"<<endl;
 cin>>x;
 G.d(x);
 };
 
 if(v == 8)
 G.display();
 
 if(v == 9)
 {
 G.saves();
 }
 
 if(v == 10)
 {string d = "1111111";
 ofstream out("file.txt");
 out.write(d.c_str(),d.size());
 
 d = "vgbjrvbrhbr ";
 
 out.write(d.c_str(),d.size());
 
 
 d = "jfnvrfbjhvbrjdb ";
 
 out.write(d.c_str(),d.size());
 
 
 d = "vjvhrvuedbrj";
 
 out.write(d.c_str(),d.size());
 out.close();
 
 
 
 }
 
 if(v == 11)
 break;
 }
 
 
 
 
 system("pause");
 return 0;
 }


Вернуться к обсуждению:
Описать неориентированный граф C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2012, 02:41
Готовые ответы и решения:

Неориентированный граф
Есть такое задание &quot;Реализация АТД « Неориентированный граф» через класс. Граф представлен в виде...

Неориентированный граф!!!
Еще раз обращаюсь за помощью к форуму..от этих задач зависит стипендия! Помогите пожалуйста! ...

Неориентированный граф, вывести порядки вершин графа
Доброго времени суток. Прошу помощи. С алгоритмами работал мало, решил взяться за сложную(для меня)...

Вставить в неориентированный граф ребро, соединяющее вершины a и b
Создать граф, используя список смежности. Дан неориентированный граф. Вставить в граф ребро,...

0
14.05.2012, 02:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2012, 02:41
Помогаю со студенческими работами здесь

Дан неориентированный граф. Необходимо определить, является ли он деревом
Дан неориентированный граф. Необходимо определить, является ли он деревом. Формат входных данных...

Проверить, содержит ли заданный неориентированный граф хотя бы один цикл
Циклом в графе называется маршрут, начальная и конечная вершины которого совпадают. Проверить,...

Ввести из файла неориентированный нагруженный граф в список смежности, используя вектор векторов
Доброго времени суток, уважаемые форумчане. Нуждаюсь в вашей помощи) Необходимо ввести из файла...

Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности
Нужно задать граф списком ребер и вывести его в виде матрицы смежности. Знаю что в i строке j...

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