c语言实现求最短路径(迪杰斯特拉算法,《数据结构》算法7.15)

迪杰斯特拉算法从小到大的求出了从源点到其余各个点的最短路径,用到了邻接矩阵的储存结构。

代码如下:

#include
#define MAX_VERTEX_NUM 100
#define INFINITY 2000000000
typedef struct {
	int vexs[MAX_VERTEX_NUM];
	int arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
	int vexnum,arcnum;
}MGraph;
int LocateVex(MGraph G,int v){
	for(int i=0;i的对称弧 
	}    
}
bool P[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//p[v][w]==ture代表w是从v0到v的最短路径中的顶点 
bool final[MAX_VERTEX_NUM];//final[v]代表已经找到v0到v的最短路径 
int D[MAX_VERTEX_NUM];//最短路径的带权长度 
void ShortestPath_DLJ(MGraph G,int v0){
	int v,w,i,j;
	for(v=0;v%d:",v0,i);
		printf("%d\n",D[i]);
	}
}
int main(){
	MGraph G;
	CreateUDN(G);
	int v0;
	printf("输入起始顶点:\n"); 
	scanf("%d",&v0);//最短路径的起始点v0 
	ShortestPath_DLJ(G,v0);//求出从v0出发至各个点的最短路径 
	Print_ShortestPath(G,v0); //输出从v0出发至各个点的最短路径权值合 
	return 0;
}

你可能感兴趣的:(数据结构)