ch6_5.txt
上传用户:lgb298
上传日期:2013-03-22
资源大小:1025k
文件大小:1k
源码类别:

软件工程

开发平台:

C/C++

  1. void shortpath_DIJ(int ad[][M],int k,int pre[],
  2.                    int dist[],int n)
  3. {  int i,j,p,wm;
  4.    k=k-1;
  5.    for(i=0;i<n;i++)
  6.    {  dist[i]=ad[k][i];
  7.       if(dist[i]<MAX)  pre[i]=k+1;
  8.       else             pre[i]=0;
  9.    }
  10.    pre[k]=0; dist[k]=0; ad[k][k]=1;
  11.    for(j=0;j<(n-1);j++)
  12.    {  wm=MAX;  p=-1;
  13.       for(i=0;i<n;i++)
  14.          if((ad[i][i]==0)&&(dist[i]<wm))
  15.          {   p=i;
  16.              wm=dist[i];
  17.          }
  18.       if(p==-1)  break;
  19.       else{  ad[p][p]=1;
  20.              for(i=0;i<n;i++)
  21.                 if(ad[i][i]==0)
  22.                    if(dist[p]+ad[p][i]<dist[i])
  23.                    {  dist[i]=dist[p]+ad[p][i];
  24.                       pre[i]=p+1;
  25.                    }
  26.           }
  27.    }
  28. }