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

Поиск минимального остовного дерева на графе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не компилируются проекты: Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped http://www.cyberforum.ru/cpp-beginners/thread1240571.html
Здравствуйте, уважаемые специалисты. Недавно начал изучать С++ Компилятор Visual C++ при попытке скомпилировать любой код выдаёт это: ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0...
C++ Конструктор копирования, аварийное завершение на этапе исполнения #include <iostream.h> #include <string.h> class String{ private: char *data; int max_length; public: String() { http://www.cyberforum.ru/cpp-beginners/thread1240568.html
C++ Будут ли все константы гарантированно инициализированы к моменту обращения к ним из разных единиц трансляции
Безопасно ли такое использование: // config.cpp const int ival = 6; const SomeNonTrivialClass obj(...); // config.h extern const int ival; extern const SomeNonTrivialClass obj; //...
Как реализовать свой тип данных C++
Здравсвтуйте,подскажите пожалуйста как реализовать с с++ свой тип данных. Допустим хочу завести массив,где каждому arr будет соответсвовать две переменные(arr.a,arr.b). Если точнее - arr.a,arr.b ......
C++ Перегруженный operator<< http://www.cyberforum.ru/cpp-beginners/thread1240484.html
Есть допустим такая дружественная функция: объявление template<typename Type> friend std::ostream& operator<<(std::ostream&, Stack<Type>&); определение template<typename Type> std::ostream&...
C++ Вывести на экран суммарный результат, указав число студентов сдавших и проваливших экзамен День добрый помогите решить задачу: есть 10 студентов ( 10 раз на екран должно высвечиватся"Введите результат" результат- если пользователь пишет 1,значит студент сдал,если пишет 2 - провалил... подробнее

Показать сообщение отдельно
frEEze00
2 / 2 / 1
Регистрация: 10.07.2014
Сообщений: 25
10.08.2014, 15:52  [ТС]
zss, проблема не в этом, переделал все циклы на циклы вида:
C++
1
for (i=0; i<kolVer; i++)....
и так же сменил строку
C++
1
used[1]=true;
на
C++
1
used[0]=true;
, но
ошибка не исчезла.
вот код программы, которую я нашел в интернете и переделал, она работает :
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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale (LC_ALL,"RUS");
int a,b,u,v,n,i,j,ne=1;
int visited[10]={0},min,mincost=0,cost[10][10];
 
int path[100]={0}; //В этот массив будут записываться вершины, по которым составиться путь
int path_index=0;
 
 
cout<<"Введи количество вершин "; cin>>n;
cout<<"Введи матрицу смежности\n";
 
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cin>>cost[i][j];
if(cost[i][j]==0)
cost[i][j]=999; //999 - это что-типа бесконечности. Должно быть больше чем значения веса каждого из ребер в графе
}
visited[1]=1;
cout<<"\n";
 
while(ne < n)
{
for(i=1,min=999;i<=n;i++)
for(j=1;j<=n;j++)
if(cost[i][j]< min)
if(visited[i]!=0)
{
min=cost[i][j];
a=u=i;
b=v=j;
}
if(visited[u]==0 || visited[v]==0)
{
path[path_index]=b;
path_index++;
//cout<<"\n "<<ne++<<" "<<a<<" "<<b<<min; //Можно вывести так
ne++; //если строчку выше раскомментировать - эту закомментировать
mincost+=min;
visited[b]=1;
 
}
cost[a][b]=cost[b][a]=999;
}
 
cout<<"\n";
 
cout<<1<<" —> ";
for (int i=0;i<n-1;i++)
{
cout<<path[i];
if (i<n-2) cout<<" —> ";
}
 
cout<<"\n Минимальная стоимость "<<mincost;
 
cin.get();
cin.get();
 
return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru