阅读背景:

[最短路]使用优先队列优化的Dijkstra算法

来源:互联网 

用邻接矩阵的Dijkstra算法的代码:

int cost[RANGE][RANGE];  
int d[RANGE];  
bool used[RANGE];  
int n,m;   //顶点数,边数
    void Dijkstra( int s )  
    {  
        int i,v,u;  
        for( i=1; i<=n; ++i )  
        {  
            used[i]=false;  
            d[i]=cost[1][i];  
        }  
        d[s]=0;  
    while( true )  
    {  
        v=-1;  
        for( u=1; u<=n; ++u )  
            if( !used[u] && ( v==-1 || d[u]<d[v]) )  
                v=u;  
        if( v==-1 ) break;  
        used[v]=true;  

        for( u=1; u<=n; ++u )  
            d[u]= min( d[u],d[v]+cost[v][u] );  
    }  
}  
int cost[RANGE][RAN



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: