根据无向图的边邻接矩阵求任意一点到其他所有点之间的最短路径。

根据无向图的边邻接矩阵求任意一点到其他所有点之间的最短路径。

直接上代码:

#include  
#include 
using namespace std;
#define INFINITY 1000000000 //存储无向图中无边两点之间的距离
#define MAX 500 			//存储该无向图最多的点数为500
long arr[MAX][MAX]; 


void ShortestPath_DIJ(int n,int v0, int p[MAX][MAX], int D[MAX],long arr[MAX][MAX]) {  //计算v0到其他所有点之间的最短路径。
    int v, w, i, j, min;
    bool final[MAX];
    for(v=0; v"<>n>>k;
		for(int m=0;m>i>>j>>d;
			arr[i][j]=d;
			arr[j][i]=arr[i][j];
		}
		int p[MAX][MAX];
		int D[MAX];
		int v0;
		cout<<"请输入起始点:";
		cin>>v0;
		cout<

  运行结果如下:

 

 

根据无向图的边邻接矩阵求任意一点到其他所有点之间的最短路径。_第1张图片

 

提示:如果想要求任意两点之间的最短路径,可以修改  ShortestPath_DIJ 函数的参数,增加一个目标点参数,在输出时只输出对应的最短距离即可。

你可能感兴趣的:(根据无向图的边邻接矩阵求任意一点到其他所有点之间的最短路径。)