dijkstra

来源:互联网 发布:软件研发合作协议 编辑:程序博客网 时间:2024/04/29 23:00

//Dijkstra模板
#define maxint 2<<30
void Dijsktra(int **c,int v)
{
        int i,j,min;
        for(i=0;i<n;++i)
        {
            distance[i] = c[v][i];
            visited[i] = false;
            if(distance[i] == maxint) prev[i] = 0;
            else prev[i] = v;
        }
        distance[v] = 0;
        visited[v] = true;
        for(i=0;i<n;++i)
            {
                    int min = maxint;
                    int u = v;
                    for(j=0;j<n;++j)
                        if(!visited[j] && distance[j]<min)
                            {
                                u = j;
                                min = distance[j];
                            }
                    visited[u] = true;
                    for(j=0;j<n;++j)
                        if(!visited[j] && distance[u] + c[u][j] < distance[j] && c[u][j]<maxint)
                        {
                                distance[j] = newdistance;
                                prev[j] = u;
                        }
            }
}

原创粉丝点击