根据无向图的边邻接矩阵求任意一点到其他所有点之间的最短路径。
直接上代码:
#include#include using namespace std;#define INFINITY 1000000000 //存储无向图中无边两点之间的距离#define MAX 500 //存储该无向图最多的点数为500long 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< <<"点到其他各个点之间的最短距离为:"<
运行结果如下:
提示:如果想要求任意两点之间的最短路径,可以修改 ShortestPath_DIJ 函数的参数,增加一个目标点参数,在输出时只输出对应的最短距离即可。