最短路径—Dijkstra算法

#include
#define MAXV 50
#define INF 10000
using namespace std ;
typedef struct{
	int edges[MAXV][MAXV] ; //邻接矩阵的边数组
	int n ;     //定点数 
	int e ;     //边数
}MGraph; 
int dist[MAXV] ;
int path[MAXV] ;
int S[MAXV] ;
void Dispath(MGraph g,int dist[],int path[],int v) 
{
	for(int i=0;i=0;j--)
			printf("->%d",path1[j]) ;
		printf("\n") ;
		printf("从 %d 到 %d 的最短距离为:%d\n",v,i,dist[i]) ; 
		printf("\n") ;
	} 
}
void Dijkstra(MGraph g,int v)
{
	int mindis ;
	int u ;
	for(int i=0;i

测试数据

最短路径—Dijkstra算法_第1张图片

5
8
0 1 1
0 4 5
0 3 6
0 2 2
1 4 3
1 3 7
2 3 3
3 4 3
0

测试结果:

最短路径—Dijkstra算法_第2张图片

 

你可能感兴趣的:(基础算法,数据结构)