0
我正在尝试编写一个使用STL在C++中实现BFS的程序。我使用嵌套向量表示邻接列表,其中向量中的每个单元格都包含连接到特定顶点的节点列表。使用STL中的邻接列表的BFS
while(myQ.size()!=0)
{
int j=myQ.front();
myQ.pop();
int len=((sizeof(adjList[j]))/(sizeof(*adjList[j])));
for (int i=0;i<len;i++)
{
if (arr[adjList[j][i]]==0)
{
myQ.push(adjList[j][i]);
arr[adjList[j][i]]=1;
dist(v)=dist(w)+1;
}
}
}
myQ是我正在使用的队列来保留其边缘我将探索图的节点。在符号中,adjList [j]表示指向列表的向量,adjList [j] [i]表示该列表中的特定节点。我正在存储是否通过在数组arr中输入1来探索特定节点。此外DIST(V)= DIST(W)+1是不是代码的一部分,但我想知道我可以在正确的语法写在我的v是新的顶点和w是旧的,其发现v即W = myQ.front()。