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

Выкладываю реализацию алгоритма Дейкстры на С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Стрелки совершают N выстрелов из пистолета по мишени. Кучность стрельбы может быть описана суммой квадратов отклонений результатов каждого выстрела от http://www.cyberforum.ru/cpp-beginners/thread226022.html
Спасибо :)) Ещё пару задач. Стрелки совершают N выстрелов из пистолета по мишени. Кучность стрельбы может быть описана суммой квадратов отклонений результатов каждого выстрела от среднего значения....
C++ Можно ли создать процесс(CreateProcessWithLogonW) на удаленном компьютере? Добрый день. Можно ли создать процесс на удаленном компьютере зная ip, пароль и имя пользователя. На подобии функций: CreateProcessWithLogon() CreateProcess() чтобы запустить там cmd.exe и... http://www.cyberforum.ru/cpp-beginners/thread226018.html
C++ полиморфизм
Всем привет, изучаю С++ недавно, я новичек в этом языке программирования, читаю про ООП, понял все за исключением полиморфизма, что делает оператор virtual зачем вообще нужен полиморфизм и еще не...
начало и конец цикла в коде. C++
Вот программа по определению магического квадрата из матрицы, заданной в txt файле. #include "stdafx.h" #include <iostream> #include <fstream> #include <cmath> using namespace std; int main()...
C++ Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси http://www.cyberforum.ru/cpp-beginners/thread225942.html
Заполнить матрицу случайными числами. Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси. сделать нужно на С(визуал студио 05)
C++ Каким методом можно действовать ? Надо по заданному числу Н найти такое число К, такое что десятичная запись КК(с чертой наверху, т.е. если за каждый разряд числа принять переменную : abcd , то в моем случае должно получится... подробнее

Показать сообщение отдельно
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
30.01.2014, 13:45
Цитата Сообщение от 0x10 Посмотреть сообщение

Не по теме:

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

согласен, алгоритм вроде рабочий, но кажется лучше сделать цикл while чем использовать goto, и измение x я нашёл только в конце, что-то тут не так

Добавлено через 3 минуты
а вот сам алгоритм дейкстры, который находит расстояние от начальной точки до всех остальных. Нашёл в интернете на kvodo.ru, необходимо передать матрицу расстояний и начальную точку, компактный:

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
void Dijkstra(int GR[V][V], int st)
{
int distance[V], count, index, i, u, m=st+1;
bool visited[V];
for (i=0; i<V; i++)
{
distance[i]=INT_MAX; visited[i]=false;
}
distance[st]=0;
for (count=0; count<V-1; count++)
{
int min=INT_MAX;
for (i=0; i<V; i++)
if (!visited[i] && distance[i]<=min)
{
min=distance[i]; index=i;
}
u=index;
visited[u]=true;
for (i=0; i<V; i++)
if (!visited[i] && GR[u][i] && distance[u]!=INT_MAX &&
distance[u]+GR[u][i]<distance[i])
distance[i]=distance[u]+GR[u][i];
}
cout<<"Стоимость пути из начальной вершины до остальных:\t\n";
for (i=0; i<V; i++) if (distance[i]!=INT_MAX)
cout<<m<<" > "<<i+1<<" = "<<distance[i]<<endl;
else cout<<m<<" > "<<i+1<<" = "<<"маршрут недоступен"<<endl;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru