Dijkstra在C中的邻接矩阵

我需要在C中使用Dijkstra算法的一些帮助。

我已经生成了我的邻接矩阵,看起来像:

int mat[NB][NB] = {{0, 171, MAX, 132, [...]}, {171, 0, 30, 39, [...]}, , [...]}; 

我发现了这个实现: http : //www.answers.com/topic/dijkstra-s-algorithm-1但路径是一维数组,我的矩阵是一个二维数组。

有没有办法将一个变换到另一个? 或者也许有人有办法处理这种矩阵。

在此先感谢您的帮助

如果将mat[0]传递给期望int * (和大小)的函数,则该函数可以轻松地将2维矩阵视为1维矩阵。

 #include  int foobar(int *arr, int siz) { int sum = 0; for (int i = 0; i < siz; i++) sum += arr[i]; return sum; } int main(void) { int mat[10][10] = {{4, -3, 7}, {5}}; printf("%d\n", foobar(mat[0], 10*10)); return 0; } 

编辑: ideone( http://ideone.com/2mLi7 )运行上面的程序没有抱怨:-)

在您提供的链接中, path是一个写入算法输出的数组。 该示例中的邻接矩阵显然是dist 2Darrays。