Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.93 KB | None | 0 0
  1. void bfs( Graf G, int nodSursa )
  2. {
  3.     int* vizitate; /* pentru marcarea nodurilor vizitate */
  4.     vizitate = calloc(G.n, sizeof(int));
  5.     if (vizitate == NULL) printErr();
  6.  
  7.     coada Q; /* coada nodurilor - intregi */
  8.  
  9.     int i, v, w; /* noduri */
  10.  
  11.     initializeza( &Q );
  12.     for ( i = 0; i < G.n; i++ ) /* marcam toate nodurile ca nevizitate */
  13.         vizitate[ i ] = NEVIZITAT;
  14.     vizitate[ nodSursa ] = VIZITAT; /* marcam nodul sursa ca vizitat */
  15.     //(procesam informatia pt nodSursa;
  16.     printf("%d",nodSursa);
  17.     enqueue(&Q,nodSursa );
  18.     // nodSursa va fi primul nod scos din coada
  19.     while( ! goala( &Q ))
  20.     {
  21.         v = dequeue( &Q );
  22.         while(G.t[v]!=NULL)
  23.         {
  24.             w=G.t[v]->v;
  25.             if ( vizitate[ w ] == NEVIZITAT )
  26.                 {
  27.                     vizitate[ w ] = VIZITAT;
  28.                     printf("%d",w);
  29.                     enqueue(&Q,w);
  30.                 }
  31.             G.t[v]=G.t[v]->next;
  32.         }
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement