int dist[w] = s到w的最短距离
int path[w] = s到w的路径经过的结点
memset(dist,-1,sizeof(dist));
memset(path,-1,sizeof(path));
dist[s] = 0; //调用s之前
void unweight(vertex s)
{
inqueue(q ,s); //将结点加入队列
while( !empty(q) )
{
v = dequeue(q); //从队列删除顶点
for( v的所有邻接点w)
{
if(dist[w] == -1)
{
dist[w] = dist[v] + 1;
path[w] = v;
inqueue(q ,w);
}
}
}
}