break else: clique.add(v) q.append(v) self.cliques.add(frozenset(clique)) def count(self): return len(self.cliques) def get_cliques(self): return self.cliques if __name__ == "__main__": g = UnweightedGraph() g.add_vertex(1) g.add_vertex(2) g.add_vertex(3) g.add_vertex(4) g.add_vertex(5) g.add_vertex(6) g.add_vertex(7) g.add_vertex(8) g.add_vertex(9) g.add_vertex(10) g.add_vertex(11) # 4 cliques in total, of size, 3, 2, 4, and 3 g.add_edge(1, 2) g.add_edge(2, 1) g.add_edge(1, 3)
v.id = self.component q.append(v) def count(self): return self.component def id(self, node): return self.G.get_vertex(node).id def connected(self, node_a, node_b): return self.id(node_a) == self.id(node_b) if __name__ == "__main__": g = UnweightedGraph() g.add_vertex(0) g.add_vertex(1) g.add_vertex(2) g.add_vertex(3) g.add_vertex(4) g.add_vertex(5) g.add_vertex(6) g.add_vertex(7) g.add_vertex(8) g.add_vertex(9) g.add_vertex(10) g.add_vertex(11) g.add_vertex(12) # 5 strongly connected components g.add_edge(0, 1)
q.append(v) def count(self): return self.component def id(self, node): return self.G.get_vertex(node).id def connected(self, node_a, node_b): return self.id(node_a) == self.id(node_b) if __name__ == '__main__': g = UnweightedGraph() g.add_vertex(1) g.add_vertex(2) g.add_vertex(3) g.add_vertex(4) g.add_vertex(5) g.add_vertex(6) g.add_vertex(7) g.add_edge(1,2, both=True) g.add_edge(2,4, both=True) g.add_edge(2,6, both=True) g.add_edge(3,5, both=True) cc = CC(g)
q.append(v) def count(self): return self.component def id(self, node): return self.G.get_vertex(node).id def connected(self, node_a, node_b): return self.id(node_a) == self.id(node_b) if __name__ == '__main__': g = UnweightedGraph() g.add_vertex(0) g.add_vertex(1) g.add_vertex(2) g.add_vertex(3) g.add_vertex(4) g.add_vertex(5) g.add_vertex(6) g.add_vertex(7) g.add_vertex(8) g.add_vertex(9) g.add_vertex(10) g.add_vertex(11) g.add_vertex(12) # 5 strongly connected components g.add_edge(0,1)