Так что это алгоритм, который я использую, я хочу знать, на каком уровне глубины я использую BFS
void bfs(int n)
{
vis[n]=1; //marks n visited
d=0;
while(!adj[n].empty()) //adj is the array containing the adjacency lists
{if( !(vis[adj[n].front()]))
{
q.push(adj[n].front()); //q is the queue
}
adj[n].pop_front();
}
if(!q.empty()){
n=q.front();
cout<<n<< "->";
q.pop();
bfs(n);
}
}
Что я могу сделать?
Чтобы узнать, какой вы сейчас глубины, вы должны добавить в рассмотрение дополнительный массив глубина.
глубина Размер равен числу вершин в графе и содержит глубины каждой вершины, считая от вершины, с которой вы начинаете свою BFS. При прохождении через детей родителя вы должны поставить
глубина[ребенок] = глубина[родитель] + 1
Других решений пока нет …