/********************************************************************************
* 单源最短路径问题(图的邻接矩阵) *
*某一地区的一个公路网,给定了该网内的n个城市以及这些城市之间的相通公路的距离,能*
*否找到城市A到城市B之间的一条距离最近的通路呢? *
*将城市用顶点表示,城市间的公路用边表示,公路的长度作为边的权值。 *
*在网图中,求点A到点B的所有路径中,边的权值之和最短的那一条路径,即最短路径。 *
********************************************************************************/
#include<iostream>
#define MaxVertexNum 30
#define INFINITY 200
using namespace std;
typedef int VertexType;
typedef struct{
VertexType vertexs[MaxVertexNum];
int arcs[MaxVertexNum][MaxVertexNum];
int vertexNum,edgeNum,weight;
}MGraph;
int P[MaxVertexNum];
int D[MaxVertexNum];
void Create_MGraph(MGraph * G); /*创建图*/
void ShortestPath_DiJ(MGraph * G,int v0,int P[],int D[]); /*迪杰斯特拉算法*/
void Print_ShortestPath(MGraph * G,int v0,int P[],int D[]); /*显示从顶点u到其余顶点的最短路径及距离*/
int main(){
MGraph * G=(MGraph *)malloc(si
单源最短路径(图的邻接矩阵)
最新推荐文章于 2022-12-29 08:30:00 发布