0
点赞
收藏
分享

微信扫一扫

Data Structures and Algorithms (English) - 6-11 Shortest Path [1](25 分)


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:为何此题不需要更新最小值呢?因为是有向图,而且默认相邻两点路径一定为1,那么如图中的 6->5 和 4->5 可以看出来,一定是先加入队列的,一定是最小的结果了,所以不需要再判断更新最小值。

AC 代码

void ShortestDist(LGraph Graph, int dist[], Vertex S)
{
int front=0, rear=0;
PtrToAdjVNode p=NULL;
Vertex *que=(Vertex*)malloc(MaxVertexNum*sizeof(Vertex));
for(int i=0;i<MaxVertexNum;i++)
que[i]=dist[i]=-1;
dist[S]=0;
que[0]=S;

while(front<=rear)
{
Vertex s=que[front];
p=Graph->G[s].FirstEdge;
while(p)
{
Vertex v=p->AdjV;
if(dist[v]==-1)
{
dist[v]=1+dist[s];
que[++rear]=v;
}
p=p->Next;
}
front++;
}
}


举报

相关推荐

0 条评论