/* Fichero :conexo.c */
#include "particion.h"
#include "grafo.h"
int numComponentesConexas(grafo G)
{
arista arist;
vertice vert,vert1;
Particiones componentesConexas;
componentesConexas=CrearParticiones(sizeof(vertice),numVertices(G),compararVertices);
/*Ponemos a cada vertice en una componente conexa inicialmente*/
forTodosVertices(vert,G)
CrearParticion(vert,componentesConexas);
/*Ponemos en la misma componente conexa a los vertices conectados*/
forTodosVertices(vert,G)
forAristasAdy(arist,vert,G){
vert1=destinoArista(arist,G);
UnirParticiones(vert,vert1,componentesConexas);
}
}
return numeroParticiones(componentesConexas);
}
/*Fin fichero: conexo.c */