当前位置:启航官网 > 考研报考 > 试题

下面算法是用Dijkstra算法求有向网G的v0顶点到其余顶点v的最短路径P[v

下面算法是用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小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。

免责声明:本平台部分帖子来源于网络整理,不对事件的真实性负责,具体考研相关内容请以各院校的官网通知为准。 如果本站文章侵犯到您的权利,请联系我们(400-108-7500)进行删帖处理。

启航教育热门私房课

MORE
  • 26考研VIP领学计划

    全程跟进
    形式:线上+线下
     

    查看详情

    在线咨询

  • 25考研专属VIP班

    联报优惠
    形式:线上
     

    查看详情

    在线咨询

  • 25在职考研课程

    专为在职人定制
    形式:线上
     

    查看详情

    在线咨询

2025考研

小班面授 名额有限 抢先体验

点击预约 

为你推荐