diff --git a/Algorithms/C++/BFS graph.cpp b/Algorithms/C++/BFS graph.cpp new file mode 100644 index 00000000..7b51035e --- /dev/null +++ b/Algorithms/C++/BFS graph.cpp @@ -0,0 +1,51 @@ +#include +using namespace std; +int a[20][20], q[20],v,n,visited[20],f=0,r=-1,level[20],x,y,z,e; +void bfs(int v){ + for(int i=1;i<=n;i++){ + if(a[v][i] && !visited[i]){ + q[++r]=i; + } + if(a[v][i] && !visited[i] && !level[i]){ + level[i]=level[v]+1; + } + } + if(f<=r){ + visited[q[f]]=1; + bfs(q[f++]); + + } +} +int main(){ + printf("enter no of vertices: "); + scanf("%d",&n); + printf("enter no of edges: "); + scanf("%d",&e); + printf("enter adjacency matrix: \n"); + for(int i=1;i<=n;i++){ + for(int j=1;j<=n;j++){ + a[x][y]=0; + } + visited[i]=0; + q[i]=0; + level[i]=0; + } + for(int i=1;i<=e;i++){ + scanf("%d",&x); + scanf("%d",&y); + a[x][y]=1; + //a[y][x]=1; + } + v=3; + level[v]=1; + visited[2]=1; + bfs(v); + level[v]=1; + printf("\n"); + for(int i=1;i<=n;i++){ + if(visited[i]){ + printf("level of %d: %d",i,level[i]); + printf("vertex: %d\n",i); + } + } +} diff --git a/Algorithms/C++/graph implementation.cpp b/Algorithms/C++/graph implementation.cpp new file mode 100644 index 00000000..5df0faed --- /dev/null +++ b/Algorithms/C++/graph implementation.cpp @@ -0,0 +1,28 @@ +#include +using namespace std; +bool A[][]; +void initialize(){ + for(int i=0;i<10;i++){ + for(int j=0;j<10;j++){ + A[i][j]=false; + } + } +} +int main(){ + int nodes,edges,x,y,Q,a,b; + initialize(); + cin>>nodes; + cin>>edges; + for(int i=0;i>x>>y; + A[x][y]=true; + A[y][x]=true; + } + cin>>Q; + while(Q--){ + cin>>a>>b; + if(A[a][b]) cout<<"YES"; + else cout<<"NO"; + cout<