下面算法是用Dijkstra算法求有向网G的v0顶点到其余顶点v的最短路径P[v]及其带权长度 D[v]。若P[v][w]为 TRUE,则 w是从v0到v当前求得最短路径上的顶点。final[v]为TRUE当且仅当v∈S(S为已求得最短路径的终点的集合),即已经求得从v0到v的最短路径。请在 处填上适当内容,使其成为一个完整算法。
typedef struct
ArcCell{ VRType adj;
InfoType*info;//该弧相关信息的指针
}ArcCell, AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
tpyedef struct {
VertexType vexs[MAX_VERTEX_NUM]; //顶点向量
AdjMatrix arcs; //邻接矩阵
int vexnum, arcnum; //图的当前顶点数和弧数
GraphKind kind; //图的种类标志
}MGraph;
void ShortestPath_ _DIJ( MGraph G, int v0, PathMatrix &P, ShortPathTable &D)
{
for (v = 0; v<G.vexnum;++v)
{
final[v] = FALSE;
D[v] = (5) ;
for (w = 0; (6) ;++w) P[v][w] = FALSE;
if (D[v] < INFINITY)
{
P[v][v0] = TRUE;
P[v][v] = TRUE;
}
D[v0] = 0;
(7) ;
for (i = 1; i<Gvexnum;++i)
{
min = INFINITY;
for (w = 0; w<Gvexnum;++w)
if(!final[w]) if( (8) )
{
V = W;
min = D[w];
}
final[v] = TRUE;
for (w = 0; w<G.vexnum;++w)
if( (9) )
D[w] = (10) ;
for(j = 0; j<G.vexnum;j++)P[w][j] = P[v][i];//第v行赋值于第 w行
P[w][w] = TRUE;
}//if
}
}
查看答案和解析【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。
启航教育热门私房课
MORE