void ShortestPath_1 ( Mgraph G,int v0,PathMatrix *p, ShortPathTable *D ) { /*用Dijkstra 算法求有向网G 的v0 顶点到其余顶点v 的最短路径P[v]及其路径长度D[v]*/ /*若P[v][w]为TRUE,则w 是从v0 到v 当前求得最短路径上的顶点*/ /*final[v] 为TRUE 当且仅当v∈S, ,即已经求得从v0 到v 的最短路径*/ /*常量INFINITY 为边上权值可能的最大值*/ for ( v=0; vG.vexnum; ++w ) /*更新当前最短路径*/ if ( !final[w]&& ( min+G.edges[v][w]