示例#1
0
 def __init__(self, G):
     self.orders = []
     cyclefinder = DirectedCycle(G)
     if not cyclefinder.hasCycle():
         dfs = DepthFirstOrder(G)
         self.orders = dfs.reversePost()
     else:
         print("G hasCycle:", end=' ')
         print(cyclefinder.cycle())
示例#2
0
 def __init__(self, G):
     self.orders = []
     cyclefinder = DirectedCycle(G)
     if not cyclefinder.hasCycle():
         dfs = DepthFirstOrder(G)
         self.orders = dfs.reversePost()
     else:
         print("G hasCycle:", end=' ')
         print(cyclefinder.cycle())
示例#3
0
 def __init__(self, G):
     self.counts = 0
     self.markeds = [False] * G.V()
     self.ids = [0] * G.V()
     order = DepthFirstOrder(G.reverse())
     for s in order.reversePost():
         if not self.markeds[s]:
             self.dfs(G, s)
             self.counts += 1
示例#4
0
 def __init__(self, G):
     self.counts = 0
     self.markeds = [False]*G.V()
     self.ids = [0]*G.V()
     order = DepthFirstOrder(G.reverse())
     for s in order.reversePost():
         if not self.markeds[s]:
             self.dfs(G, s)
             self.counts += 1