Cómo calcular los componentes conectados, sin usar la función nx.connected_components (g) en NetworkX

El método más simple es probablemente seleccionar un nodo aleatorio, luego hacer algún algoritmo para atravesar gráficos, por ejemplo, BFS o DFS, cada vez que ingresa a un nodo no visitado, lo elimina de su gráfico existente y lo agrega a algún conjunto de datos descubiertos. Después de haber descubierto todos los nodos posibles, simplemente seleccione un nuevo nodo aleatorio en un gráfico reducido y repita el proceso. Estás repitiendo esto hasta que tu gráfico esté vacío.

Para escribirlo un poco más claramente:

  1. Seleccionar nodo aleatorio del gráfico
  2. Haga DFS / BFS comenzando en un nodo aleatorio, elimine todos los nodos visitados y agréguelos a algún conjunto
  3. Si ha llegado al final de su recorrido, guarde el juego y verifique si su gráfico está vacío. Si está vacío, ha encontrado todos los CC, de lo contrario, repita este proceso.