最短路径算法

时间:2012-11-02 06:25:59

标签: c++

早上好。 .. 我制作了一个解决dijkstra最短算法的程序。 。 代码如下: -

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#define INFINITY 2000
#define MAXNODES 4
#define MEMBER 1
#define NONMEMBER 0
    }

我将输入字符串设为0 2 3 7 2 0 6 0 3 6 0 1 7 0 1 0

但是当我选择起始节点和最终节点时,它会输出错误的输出。 。我不知道它在哪里。 。请帮助。 。

1 个答案:

答案 0 :(得分:2)

最明显的错误是,在C ++中,您可以从计算数组。

所以

int weight[MAXNODES][MAXNODES],precede[MAXNODES],pd;
cout<<"Enter Weight Matrix :- \n ";
for(i=1;i<=MAXNODES;i++)
{
    for(j=1;j<=MAXNODES;j++)
    {
        cout<<"["<<i<<"]["<<j<<"] :- ";
        cin>>weight[i][j];
    }
}

应该是

int weight[MAXNODES][MAXNODES],precede[MAXNODES],pd;
cout<<"Enter Weight Matrix :- \n ";
for(i=0;i<MAXNODES;i++)
{
    for(j=0;j<MAXNODES;j++)
    {
        cout<<"["<<i<<"]["<<j<<"] :- ";
        cin>>weight[i][j];
    }
}

所有其他循环都相同。