Mit Python verbundene Komponenten
Ich schreibe eine Funktionget_connected_components
für eine KlasseGraph
:
<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>
Mein Diagramm ist:
<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>
Dabei sind die Schlüssel die Knoten und die Werte die Kante. Meine Funktion gibt mir diese verbundene Komponente:
<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>
Aber ich hätte zwei verschiedene verbundene Komponenten, wie:
<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>
Ich verstehe nicht, wo ich den Fehler gemacht habe. Kann mir jemand helfen?