【发布时间】:2014-08-29 14:57:31
【问题描述】:
我正在尝试编写一个使用 STL 在 C++ 中实现 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().
【问题讨论】: