Я изучаю структуры данных. Графы столкнулись с проблемой Дейкстры. Я не получаю желаемый результат - PullRequest
0 голосов
/ 06 сентября 2018

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

#include<stdio.h>
int main()
{
    int cost[10][10], path[10][10], distance[10];
    int i, j, n, visit_node, paths, row, column, min, Index;
    printf("Enter number of nodes!\n");
    scanf("%d", &n);
    printf("Enter cost matrix!\n");
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=n; j++)
        {
            scanf("%d", &cost[i][j]);
        }
    }
    //reading path matrix
    printf("\nEnter the node you want to visit: ");
    scanf("%d", &visit_node);
    printf("\nEnter paths for entered node: ");
    scanf("%d", &paths);
    printf("\nEnter path matrix");
    for(i=1; i<=paths; i++)
    {
        for(j=1; j<=n; j++)
        {
            scanf("%d",&path[i][j]);
        }
    }
    for(i=1; i<=paths; i++)
    {
        distance[i] = 0;
        row = 1;
        for(j<1; j<=n; j++) 
        {
            if(row!=visit_node)
            {
                column = path[i][j+1];  
                distance[i] = distance[i] + cost[row][column];
            }
            row = column;    
        }
    }
    min = distance[1];
    for(i=1; i<=paths; i++)
     {
        if(distance[i]<=min)
        {
            min = distance[i];
            Index = i;
        }
    }
     printf("\nThe minimum distance value of %d", min);
     printf("\nminimum distance path is: ");
     for(i=1; i<=paths; i++)
     {
        if((path[Index][i])!=0)
        {
            printf("%d---->", path[Index][i]);
        }
     }  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...