指令:找到离v最远的顶点。如果有多个这样的顶点,则返回索引最小的顶点。 假设输入图已连接。 返回由最远的顶点及其距离v
组成的对请给我一些建议如何修改BFS以便我可以解决此任务。 感谢。
pair<int, int> Graph::findFarthestVertex(int v)
{
int farthest = v;
int maxdist = 0;
int n = this->getVerticesCount();
if(n==1)
{
farthest=0;
maxdist=0;
return pair<int, int>(farthest, maxdist);
}
int* visited = new int[n];
queue<int> q;
for(int i=0; i<n; ++i)
visited[i]=0;
q.push(v);
visited[v]=1;
while(q.empty()==false)
{
int elem = q.front();
q.pop();
for(int i=0; i<getNeighbors(elem).size(); ++i)
{
if(visited[elem]==0)
{
q.push(elem);
visited[elem]=1;
}
}
}
return pair<int, int>(farthest, maxdist);
}