5 """determine whether a digraph has a cycle"""
8 self.
onStack = [
False for i
in range(G.V)]
9 self.
marked = [
False for i
in range(G.V)]
10 self.
edgeTo = [-1
for i
in range(G.V)]
19 return len(self.
cycle_) > 0
46 """Carry out a depth first traversal of a graph, noting the order
47 nodes are processed."""
50 self.
marked = [
False for v
in range(G.V)]
67 def pre(self):
return self.pre_
68 def post(self):
return self.post_
84 """order the nodes of a digraph in topological (i.e. execution) order."""
87 self.
marked = [
False for i
in range(G.V)]
90 if not cycleFinder.has_cycle():
101 return len(self.
order_) != 0
__init__(self, G, roots=[])
__init__(self, G, roots=[])