<pre name="code" class="cpp">
//BFSvoid BFS(Vertex S){visited[S]=true;Enqueue(S,Q);while(!Empty(Q)){V=Dequeue(Q);for(V的每个邻接点)if(!visited[W]){visited[W]=true;Enqueue(W,Q);}}}/**求无权图的单源最短路径*dist[w]=S到W的距离*dist[S]=0*path[W]=S到W的路上经过的某顶点*/void Unweighted(Vertex S){Enqueue(S,Q);while(!isEmpty(Q)){V=DeQueue(Q);for(V的每个邻接点W)if(dist[W]==-1){dist[W]=dist[V]+1;path[W]=V;Enqueue(W,Q);}}}//BFSvoid BFS(V