Advertisement
hok00age

Contoh program untuk BFS

Oct 7th, 2012
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.83 KB | None | 0 0
  1. /*
  2. * Taken from: http://www.c-program-example.com/2011/10/c-program-to-implement-breadth-first.html
  3. */
  4. #include<stdio.h>
  5. #include<conio.h>
  6. int a[20][20],q[20],visited[20],n,i,j,f=0,r=-1;
  7. void bfs(int v)
  8. {
  9.  for(i=1;i<=n;i++)
  10.   if(a[v][i] && !visited[i])
  11.    q[++r]=i;
  12.  if(f<=r)
  13.  {
  14.   visited[q[f]]=1;
  15.   bfs(q[f++]);
  16.  }
  17. }
  18. void main()
  19. {
  20.  int v;
  21.  clrscr();
  22.  printf("\n Masukkan jumlah vertex:");
  23.  scanf("%d",&n);
  24.  for(i=1;i<=n;i++)
  25.  {
  26.   q[i]=0;
  27.   visited[i]=0;
  28.  }
  29.  printf("\n Masukkan data graf dalam bentuk matriks:\n");
  30.  for(i=1;i<=n;i++)
  31.   for(j=1;j<=n;j++)
  32.    scanf("%d",&a[i][j]);
  33.  printf("\n Mulai pada vertex ke:");
  34.  scanf("%d",&v);
  35.  bfs(v);
  36.  printf("\n Node yang dapat dicapai adalah:\n");
  37.  for(i=1;i<=n;i++)
  38.   if(visited[i])
  39.    printf("%d\t",i);
  40.   else
  41.    printf("\n Tidak dapat melakukan BFS");
  42.  getch();
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement