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<<" <- " <