Advertisement
Guest User

Untitled

a guest
May 25th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. void bfs_visit(graph** vertex,int s,int*p,int* dist){
  2. graph* v;
  3. int u,i,ant = s;
  4. p[s] = 1;
  5.  
  6. dist[s] = 0;//source
  7. fila* front = (fila*)malloc(sizeof(fila));
  8. front->next = NULL;
  9. fila* rear;
  10. rear = front;
  11. rear = Enqueue(front,rear,s);
  12. retorna sa;
  13. while(front!=rear){
  14. sa = Dequeue(front,rear);
  15. if (front->next==NULL){
  16. rear=front;
  17. }
  18. front = sa.aux;
  19. u = sa.valor;
  20. //previsit
  21. dist[u] = dist[ant] + 1;///nao sei quem é o anterior
  22. v = vertex[u];
  23. while(v != NULL){
  24. if(!p[v->value]){
  25. p[v->value] = 1;
  26. dist[v->value] = dist[u] + 1;
  27. rear = Enqueue(front,rear,v->value);
  28. }
  29. v = v->next;
  30. }
  31. ant = u;
  32. //post visit
  33. }
  34.  
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement