私は、ノードの数を返す無向グラフの隣接行列にBFSを実装しようとしています。私はこれまでこれまで考え出してきましたが、トップ/訪問先のノードをプリントアウトしたときと同じではないと思います。ソートされていないだけでなく、いくつかのノードが複数回出現しています。私はどこかでBFSがトポロジカルな並べ替えであり、私が得た順序はソートされていないと読んだ。隣接行列のBFS
int BFS(std::vector<std::vector<int> > &matrix, int start)
{
std::vector<bool> visited(matrix.size(), false);
std::queue<int> Q;
Q.push(start);
int count = 0;
while(! Q.empty())
{
int top = Q.front(); Q.pop();
visited[top] = true; count++;
for (int i = 0; i < matrix.size(); ++i)
{
if(matrix[top][i] != 0 && (! visited[i]))
{
Q.push(i);
}
}
}
return count;
}
あなたはそれが正しいと思いませんか? – erip
私はちょうどそれを追加する質問を編集していた、あなたはdownvoted。 – TJain
私はdownvoteしませんでした。 :) – erip