Componentes conectados Python
Estoy escribiendo una funcionget_connected_components
para una claseGraph
:
<code>def get_connected_components(self): path=[] for i in self.graph.keys(): q=self.graph[i] while q: print(q) v=q.pop(0) if not v in path: path=path+[v] return path </code>
Mi gráfica es:
<code>{0: [(0, 1), (0, 2), (0, 3)], 1: [], 2: [(2, 1)], 3: [(3, 4), (3, 5)], \ 4: [(4, 3), (4, 5)], 5: [(5, 3), (5, 4), (5, 7)], 6: [(6, 8)], 7: [], \ 8: [(8, 9)], 9: []} </code>
donde las claves son los nodos y los valores son el borde. Mi función me da este componente conectado:
<code>[(0, 1), (0, 2), (0, 3), (2, 1), (3, 4), (3, 5), (4, 3), (4, 5), (5, 3), \ (5, 4), (5, 7), (6, 8), (8, 9)] </code>
Pero tendría dos componentes conectados diferentes, como:
<code>[[(0, 1), (0, 2), (0, 3), (2, 1), (3, 4), (3, 5), (4, 3), (4, 5), \ (5, 3), (5, 4), (5, 7)],[(6, 8), (8, 9)]] </code>
No entiendo donde cometí el error. ¿Alguien puede ayudarme?