考虑以下 C++代码段,它实现了广度优先搜索(BFS)。给定一个图,其邻接表表示为adj,起始节点为 0,请问访问顺序是什么?
using namespace std;
void BFS(int s, vector>& adj) {
vector visited(adj.size(), false);
queue q;
visited[s] = true;
q.push(s);
while (!q.empty()) {
int v = q.front();
q.pop();
cout << v << " ";
for (int u : adj[v]) {
if (!visited[u]) {
visited[u] = true;
q.push(u);
}
}
}
}
int main() {
vector> adj = {{1, 2}, {0, 3, 4}, {0, 4}, {1}, {1, 2}};
BFS(0, adj);
return 0;
}