Exemplo n.º 1
0
 def __init__(self, G):
     super(Topological, self).__init__()
     cyclefinder = DirectedCycle(G)
     if not cyclefinder.has_cycle():
         dfo = DepthFirstOrder(G)
         self.order = dfo.get_reversePost()
     else:
         self.order = []
Exemplo n.º 2
0
 def __init__(self, G):
     super(KosarajuSCC, self).__init__()
     self.marked = [0 for i in xrange(G.Vcount())]
     self.id = [-1 for i in xrange(G.Vcount())]
     self.count = 0
     order = DepthFirstOrder(G.reverse())
     for s in order.get_reversePost()[::-1]:  # pop the reverse post stack
         if not self.marked[s]:
             self.dfs(G, s)
             self.count += 1