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

Реализация алгоритма Дейкстры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить сумму ряда через for http://www.cyberforum.ru/cpp-beginners/thread1048661.html
Вычислить сумму ряда, указанного в варианте задания для любого значения N, введенного с клавиатуры.Через for
C++ Реккурентная формула Помогите пожалуйста с составлением реккурентной формулы http://www.cyberforum.ru/cpp-beginners/thread1048652.html
К четным элементам целочисленного массива прибавить данное число а, а из элементов с четными номерами вычесть данное число b. C++
К четным элементам целочисленного массива прибавить данное число а, а из элементов с четными номерами вычесть данное число b.
Сколько точек попадет в круг определенного радиуса C++
В ЭВМ вводятся по очереди координаты n точек (n ≥ 10). Определить, сколько из них попадет в круг радиуса r с центром в точке (а, b).
C++ Функция, которая суммирует произвольные целые числа http://www.cyberforum.ru/cpp-beginners/thread1048634.html
Привет) Помогите, пожалуйста, написать в консоле с++ программу с функцией, которая суммирует произвольное кол-во целых чисел.
C++ задание по вычислению даты Даны три числа D, M и G, определяющие день, месяц и год. Проверить образуют ли они правильную дату и вывести соответствующее сообщение. Например, 31.06.90 - неправильная дата. Год не високосный. Никак не могу додумать код(( подробнее

Показать сообщение отдельно
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
19.12.2013, 18:46     Реализация алгоритма Дейкстры
вот например
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
#include "stdafx.h"
#include <iostream>
using namespace std;
const int V=6;
//алгоритм Дейкстры
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;
}
//главная функция
void main()
{
setlocale(LC_ALL, "Rus");
int start, GR[V][V]={
{0, 1, 4, 0, 2, 0},
{0, 0, 0, 9, 0, 0},
{4, 0, 0, 7, 0, 0},
{0, 9, 7, 0, 0, 2},
{0, 0, 0, 0, 0, 8},
{0, 0, 0, 0, 0, 0}};
cout<<"Начальная вершина >> "; cin>>start;
Dijkstra(GR, start-1);
system("pause>>void");
}
 
Текущее время: 06:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru