所以这是我正在使用的算法,我想知道我在使用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

关于c++ - 我如何知道我在使用BFS(宽度优先搜索)的搜索级别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38591921/

10-12 14:56