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

Алгоритм Дейкстры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка на вводе данных http://www.cyberforum.ru/cpp-beginners/thread755763.html
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> /* * В последовательности введенных символов (последний '$') определить порядковый номер первой буквы R * (с учетом верхнего/нижнего регистров) */
C++ crtdbg.h Для чего используется этот заголовочный файл и где про него почитать? http://www.cyberforum.ru/cpp-beginners/thread755727.html
6. Заполнить 2 двумерных массива разной длины символами. Написать функцию, которая ставит символ пробела в старшем байте каждого слова массива. Обрабо C++
6. Заполнить 2 двумерных массива разной длины символами. Написать функцию, которая ставит символ пробела в старшем байте каждого слова массива. Обработать 2 массива. Результаты вывести на печать. помогите плз
Создание заголовочного файла .h C++
Подскажите как создать свою, пользовательскую библиотеку .h! Компилятор Dev c++
C++ Switch default и cin http://www.cyberforum.ru/cpp-beginners/thread755710.html
Проблема в следующем: Если в case есть cin то после завершения кейса выбирается default, как избежать этого? int i; char s; do { cout<<"— Поиск —"<<endl<<endl; cout<<"Выберите пункт меню:"<<endl; cout<<endl; cout<<"1."<<endl; cout<<"2."<<endl;
C++ Можно ли создавать массив строк (string)? А можно ли в с++ создавать массив строк? Например string a ? подробнее

Показать сообщение отдельно
nikitaevg
0 / 0 / 0
Регистрация: 23.07.2011
Сообщений: 57
08.01.2013, 16:25     Алгоритм Дейкстры
Добрый день, пишу программу, где одна из ф-ий построена на алгоритме Дейкстры. Обрабатываю матрицу с путями, но если в ряду есть несколько значений, которые минимальны в этом ряду, что делать? Пример такой матрицы:
0 2 4 2 2
5 0 1 1 1
1 1 0 1 2
5 3 1 0 5
5 2 2 2 0
алгоритм выводит
0 2 3 2 2
2 0 1 1 1
1 1 0 1 2
2 2 1 0 3
5 2 2 2 0
а должен
0 2 3 2 2
2 0 1 1 1
1 1 0 1 2
2 2 1 0 3
3 2 2 2 0
Пятый ряд выглядит не корректно.
Вот мой код:
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
69
70
71
72
73
int x1;
    bool q1=false;
    int *krp=new   int[dln+1];
    x1 = xn;
    int s = 0;
    int kol=0;
    int dt = 0;
    bool *is = new bool[dln+1];
    int min1=0;
    int *st=new int[dln+1];
    int min3=1000000;
    bool q=false;
    int min2=1000000;
    for(int i=1;i<=dln;i++)
        is[i]=true;
    int k=0;
    for(int i=1;i<dln+1;i++)
    {
        krp[i]=1000000;
    }
    krp[xn]=0;
    for(int i=1;i<=dln+1;i++)
    {
        if(i==dln+1)
        {
            
                if(q==true)
                {
                    is[min1]=false;
                    x1=min1;
                    dt+=min2;
                    i=0;
                    q=false;
                    min2=1000000;
                }
                else
                {
                    q1=false;
                    for(int j=1;j<=dln;j++)
                    {
                        if(is[j]==false&&krp[j]<min3)
                        {
                            min3=krp[j];x1=j;q1=true;
                        }
                    }
                    if(q1==false)
                        i=dln+5;
                    else 
                    {
                        min2=1000000;
                        dt=min3;
                        i=0;
                        q=false;
                    }
                }
            
            
        }
        else if(matr[x1][i]+dt<krp[i]&&is[i]==true&&i!=x1)
        {
            q=true;
            krp[i]=matr[x1][i]+dt;
            if(matr[x1][i]<min2){
                min2=matr[x1][i];
                min1=i;
                
            }
            
        }   
    }
 
f2:;f1:;
    return krp;}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru