aidul23

From BFS traversal find out the Parent of a vertex

Aug 30th, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. #include<stdio.h>
  2. int a[20][20], q[20], visited[20], n, i, j, f = 0, r = -1;
  3.  
  4. void bfs(int v)
  5. {
  6.     for(i = 1; i <= n; i++)
  7.         if(a[i][v] && !visited[i])
  8.             q[++r] = i;
  9.     if(f <= r)
  10.     {
  11.         visited[q[f]] = 1;
  12.         bfs(q[f++]);
  13.     }
  14. }
  15.  
  16. void main()
  17. {
  18.     int v;
  19.     printf("\n Enter the number of vertices:");
  20.     scanf("%d", &n);
  21.  
  22.     for(i=1; i <= n; i++)
  23.     {
  24.         q[i] = 0;
  25.         visited[i] = 0;
  26.     }
  27.  
  28.     printf("\n Enter graph data in matrix form:\n");
  29.     for(i=1; i<=n; i++)
  30.     {
  31.         for(j=1; j<=n; j++)
  32.         {
  33.             scanf("%d", &a[i][j]);
  34.         }
  35.     }
  36.  
  37.     printf("\n Enter the child vertex:");
  38.     scanf("%d", &v);
  39.     bfs(v);
  40.     printf("\n The node's parents matrix are:\n");
  41.  
  42.     for(i=1; i <= n; i++)
  43.     {
  44.         if(visited[i] && v == a[i][v])
  45.             for(j = 1; j<=n ; j++)
  46.             {
  47.                 printf("%d\t", a[i][j]);
  48.             }
  49.         else
  50.         {
  51.             printf("\n Bfs is not possible. Not all nodes are reachable");
  52.             break;
  53.         }
  54.     }
  55. }
Add Comment
Please, Sign In to add comment