資源簡介
迪杰斯特拉算法(Dijkstra.cpp)
代碼片段和文件信息
#include
using?namespace?std;
#define?maxSize?10
#define?INF?10000??//用INF表示無窮大,即當邊的權(quán)值為INF時,表示兩點間無邊。?
typedef?struct?{
int?edges[maxSize][maxSize];
int?ne;//定點數(shù),邊數(shù)
}MGraph;
void?Dijkstra(MGraph?gint?vint?dist[]int?path[]){
int?set[maxSize];//標記數(shù)組,為1表示已在路徑中,為0表示不在路徑中。?
int?miniju;
/*初始化*/?
for(i=0;i dist[i]=g.edges[v][i];
set[i]=0;
if(g.edges[v][i] path[i]=v;
else
path[i]=-1;
}?
set[v]=1;
path[v]=-1;
/*Init?end*/
for(i=0;i min=INF;
for(j=0;j if(set[j]==0&&dist[j] u=j;
min=dist[j];
}
}
set[u]=1;
for
評論
共有 條評論