Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void bfs_visit(graph** vertex,int s,int*p,int* dist){
- graph* v;
- int u,i,ant = s;
- p[s] = 1;
- dist[s] = 0;//source
- fila* front = (fila*)malloc(sizeof(fila));
- front->next = NULL;
- fila* rear;
- rear = front;
- rear = Enqueue(front,rear,s);
- retorna sa;
- while(front!=rear){
- sa = Dequeue(front,rear);
- if (front->next==NULL){
- rear=front;
- }
- front = sa.aux;
- u = sa.valor;
- //previsit
- dist[u] = dist[ant] + 1;///nao sei quem é o anterior
- v = vertex[u];
- while(v != NULL){
- if(!p[v->value]){
- p[v->value] = 1;
- dist[v->value] = dist[u] + 1;
- rear = Enqueue(front,rear,v->value);
- }
- v = v->next;
- }
- ant = u;
- //post visit
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement