www.pudn.com > ShortRoad.rar > ShortRoad.cpp
//作者:周亮 Jackson #include#include const int maxint = 1000000; bool s[maxint]; // maxint是个非常大的数 void Dijkstra(int n,int v,int dist[],int prev[],int * * c){ // 其中n指n个节点,v指起点,dist[i]记录源点到i点的最短特殊路径, // prev[i]记录在特殊路径当中i点的前一个点,c[][]就是有向图的邻接矩阵 int i,j; for (i=1;i<=n;i++) { dist[i] = c[v][i]; s[i] = false; if (dist[i] == maxint) prev[i] = 0; // 将该点的前一个点赋为0,因为它不与v点直接相连 else prev[i] = v; } dist[v] = 0; s[v] = true; // 初始时从源点出发 for (i=1;i =2;t=prev[t]){ cout<<" <- " < =2;t=prev[t]){ cout<<" <- " < =2;t=prev[t]){ cout<<" <- " < =2;t=prev[t]){ cout<<" <- " <