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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ArcangelJonni
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 64
#1

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

19.12.2013, 18:41. Просмотров 1126. Ответов 3
Метки нет (Все метки)

Кто может подсказать (или указать где найти) код алгоритма Дейкстры на С++?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2013, 18:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализация алгоритма Дейкстры (C++):

Параллельная реализация алгоритма Дейкстры - C++
Здравствуйте. Вообщем, надо сделать алгоритм Дейкстры на MPI, но выполнятся он будет не на кластере, а на одном компе. (далее узел -...

Выкладываю реализацию алгоритма Дейкстры на С++ - C++
Дпанная программа выполняет поиск по заданной матрице весов. Далее указываем начальную точку в графе и программа расчитывает все кратчайшие...

Задача с использованием алгоритма Дейкстры - C++
Ребят,кто-нибудь помогите решить задачку, используя алгоритм Дейкстры.Он есть готовый,осталось с помощью него только решить. Задача об...

Не найден заголовочный файл в реализации алгоритма Дейкстры - C++
запускаю программу и выдает ошибку "fatal error C1083: Не удается открыть файл включение: stdafx.h: No such file or directory" код...

Найти и исправить ошибки в реализации алгоритма Дейкстры - C++
Алгоритм Дейкстры (построение путей с минимальными цепями) #include<iostream.h> #include<string.h> #include<stdio.h> ...

Определение радиуса и соответствующего радиусу пути взвешенного орграфа на основе алгоритма Дейкстры - C++
Реализация АТД « Взвешенный орграф». Граф представлен в виде списков смежности. Определение радиуса и соответствующего радиусу пути...

3
ПерС
375 / 291 / 90
Регистрация: 05.11.2013
Сообщений: 821
Записей в блоге: 5
Завершенные тесты: 1
19.12.2013, 18:46 #2
вот например
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");
}
1
Dinosuaur
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 6
21.12.2014, 19:09 #3
ПерС, я не много не понимаю условие:
C++
1
2
3
4
if (!visited[i] && GR[u][i] && distance[u]!=INT_MAX &&
distance[u]+GR[u][i]<distance[i])
distance[i]=distance[u]+GR[u][i];
}
вы не могли бы пояснить? При переносе алгоритма на C# компилятор жалуется на строчку
C++
1
!visited[i] && GR[u][i]
не могу понять что она значит : Если вершина не посещена и ..?
0
ПерС
375 / 291 / 90
Регистрация: 05.11.2013
Сообщений: 821
Записей в блоге: 5
Завершенные тесты: 1
23.12.2014, 17:53 #4
if (GR[u][i]) в си то же самое, что if (GR[u][i]!=0)
0
23.12.2014, 17:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2014, 17:53
Привет! Вот еще темы с ответами:

Реализация алгоритма - C++
помогите пожалуйсто написать программу: 1. Реализовать алгоритм Insertion-Sort (сортировка вставками) и Merge-Sort (сортировка слиянием)...

Реализация алгоритма - C++
Смотрите, есть функция для рисования сегмента круга: pieslice(int x, int y, int start, int end, int radius) - int start и int ende угол...

Реализация LCS алгоритма на с++ - C++
Здравствуйте форумчане!! Помогите заблудшей душе.... Есть задачка , максимально быстрым способом найти наибольшую общую подстроку во...

Реализация циклического алгоритма - C++
Помогите пожалуйста! Мне нужно написать несколько программ, но получается не всё. Может кого заинтересует одно из заданий. Заранее огромное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.