题目链接:点击打开链接
题目大意:略。
解题思路:为何此题不需要更新最小值呢?因为是有向图,而且默认相邻两点路径一定为1,那么如图中的 6->5 和 4->5 可以看出来,一定是先加入队列的,一定是最小的结果了,所以不需要再判断更新最小值。
AC 代码
voidShortestDist(LGraphGraph, intdist[], VertexS) { intfront=0, rear=0; PtrToAdjVNodep=NULL; Vertex*que=(Vertex*)malloc(MaxVertexNum*sizeof(Vertex)); for(inti=0;i<MaxVertexNum;i++) que[i]=dist[i]=-1; dist[S]=0; que[0]=S; while(front<=rear) { Vertexs=que[front]; p=Graph->G[s].FirstEdge; while(p) { Vertexv=p->AdjV; if(dist[v]==-1) { dist[v]=1+dist[s]; que[++rear]=v; } p=p->Next; } front++; } }