Dijkstra最短路径算法 (5)

    scanf("%d %d",&n,&m);

    //初始化

    for(i=1;i<=n;i++)

        for(j=1;j<=n;j++)

            if(i==j) e[i][j]=0;

              else e[i][j]=inf;

    //读入边

    for(i=1;i<=m;i++)

    {

        scanf("%d %d %d",&t1,&t2,&t3);

        e[t1][t2]=t3;

    }

    //初始化dis数组,这里是1号顶点到其余各个顶点的初始路程

    for(i=1;i<=n;i++)

        dis[i]=e[1][i];

    //book数组初始化

    for(i=1;i<=n;i++)

        book[i]=0;

    book[1]=1;

    //Dijkstra算法核心语句

    for(i=1;i<=n-1;i++)

    {

        //找到离1号顶点最近的顶点

        min=inf;

        for(j=1;j<=n;j++)

        {

            if(book[j]==0 && dis[j]<min)

            {

                min=dis[j];

                u=j;

            }

        }

        book[u]=1;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdggd.html