Dans ce code je veux juste visiter le noeud et compter les bords. Pour la 1ère fois ça semble bien mais quand je passe de nouveaux nœuds et de nouveaux bords ça donne 0 compte. Je découvre que sa condition n'est pas vraie pour les nœuds et les arêtes suivants. C'est ma première implémentation de BFS.J'essaie d'implémenter BFS et de compter tous les nœuds visités à travers les bords. Mais mon code me donne 0 compte excepté le 1er
#include<bits/stdc++.h>
using namespace std;
vector<int>v[1000];
int level[1000];
bool vis[1000];
void bfs(int s,int E)
{
int count=0;
queue<int>q;
q.push(s);
level[s]=0;
vis[s]=true;
while(!q.empty())
{
int p=q.front();
q.pop();
for(int i=0;i<v[p].size();i++)
{
if(vis[v[p][i]] == false)
{
level[v[p][i]] = level[p]+1;
q.push(v[p][i]);
vis[v[p][i]] = true;
count++;
}
}
}
cout<<count<<endl;
}
int main()
{
int N,E,x,y,size;
while(scanf("%d %d",&N,&E)==2)
{
for(int i=1;i<=E;i++)
{
scanf("%d %d",&x,&y);
v[x].push_back(y);
v[y].push_back(x);
}
int s=0;
bfs(s);
}
return 0;
}