算法设计与分析书中程序(第07章).docVIP

  • 3
  • 0
  • 约7.65千字
  • 约 9页
  • 2015-08-23 发布于安徽
  • 举报
【程序7-1】 多段图的向前递推算法 templateclass T T GraphT::FMultiGraph(int k, int *p) {//采用程序6-8的邻接表存储图G Tc,*cost=new float[n]; int q, *d=new int[n]; cost[n-1]=0, d[n-1]= -1; //设置向前递推的初值 for (int j=n-2; j=0; j--){ //按n-2, …, 0的次序计算cost和d float min=INFTY; //按式(7-1)计算最小值为cost[j] for (ENodeT *r=a[j]; r; r=r-nextArc) { int v=r-adjVex; if (r-w+cost[v]min) { min=r-w+cost[v]; q=v; } } cost[j]=min; d[j]=q; //q是j在最短子路径上的后继结点 } p[0]=0; p[k-1]=n-1; c=cost[0]; //p[0]和p[n-1]是源点和汇点 for(j=1; j=k-2; j++) p[j]=d[p[j-1]]; //p[i]是最短路径上第i阶段的结点 delete []cost; delete []d;

文档评论(0)

1亿VIP精品文档

相关文档