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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Стрелки совершают N выстрелов из пистолета по мишени. Кучность стрельбы может быть описана суммой квадратов отклонений результатов каждого выстрела от http://www.cyberforum.ru/cpp-beginners/thread226022.html
Спасибо :)) Ещё пару задач. Стрелки совершают N выстрелов из пистолета по мишени. Кучность стрельбы может быть описана суммой квадратов отклонений результатов каждого выстрела от среднего значения. Определить кто из двух стрелков стрелял кучнее, если их баллы {6,9,3,10,10,3,10,9,6,10} и {6,4,7,7,6,8,7,4,6,6}. И вторая. Сотрудник ГАИ замеряет скорость движения автомашин по трассе. Определить...
C++ Можно ли создать процесс(CreateProcessWithLogonW) на удаленном компьютере? Добрый день. Можно ли создать процесс на удаленном компьютере зная ip, пароль и имя пользователя. На подобии функций: CreateProcessWithLogon() CreateProcess() чтобы запустить там cmd.exe и перенаправить его поток вывода в переменную? http://www.cyberforum.ru/cpp-beginners/thread226018.html
C++ WinAPI OpenDialog, получить имя открытого файла
Всем добрый день. Не получается получить имя открытого файла в OpenDialog. OPENFILENAME ofn; LPSTR openedfile; ... void InitOpenDialog()
C++ полиморфизм
Всем привет, изучаю С++ недавно, я новичек в этом языке программирования, читаю про ООП, понял все за исключением полиморфизма, что делает оператор virtual зачем вообще нужен полиморфизм и еще не понял вот этот код #include <iostream> #include <cstdlib> #include <cstdio> #include <string> class Student { public: Student* makecopy() { // тут функция копии
C++ начало и конец цикла в коде. http://www.cyberforum.ru/cpp-beginners/thread225959.html
Вот программа по определению магического квадрата из матрицы, заданной в txt файле. #include "stdafx.h" #include <iostream> #include <fstream> #include <cmath> using namespace std; int main() { const int z=3; int q,A, i,j,e,r=1, stolb=0, strok,stro, stol, diag1=0, diag2=0, t, o,k; // diag1- побочная диагональ fstream(fin);
C++ Builder Медиапроигрыватель Скажите пожалуста первый день осваиваю С++ в среде редактора Builder 6 . Занимаюсь по видео урокам, там на примере показывается создание простейшего проигрывателя в Builder 6, но почему то редактор выдает ошибку в коде в этой строке if (OpenDialog1->Execute()) MediaPlayer1->FileName=OpenDialog1->FileName MediaPlayer1->Open(); вот весь код:... подробнее

Показать сообщение отдельно
Krock21rus
73 / 73 / 19
Регистрация: 18.11.2013
Сообщений: 369
Завершенные тесты: 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;
}
 
Текущее время: 10:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru