Solution: Check If a Graph is Strongly Connected
This review provides a detailed analysis of the solution to check whether a graph is strongly connected or not.
We'll cover the following...
Solution: #
def is_strongly_connected(graph):"""Finds if the graph is strongly connected or not:param graph: The graph:return: returns True if the graph is strongly connected, otherwise False"""# Step 1: Do DFS traversal starting from the first vertex.result = dfs(graph, 0)# If DFS traversal doesn't visit all vertices, then return falseif graph.V != len(result):return False# Step 2: Create a reversed graphgraph2 = transpose(graph)# Step 3: Do DFS for reversed graph starting from the first vertex.# Staring Vertex must be same starting point of first DFSresult = dfs(graph2, 0)# If all vertices are not visited in second DFS, then# return falseif graph2.V != len(result):return Falsereturn True# Main program to test the above codeif __name__ == "__main__":V = 5g1 = Graph(V)g1.add_edge(0, 1)g1.add_edge(1, 2)g1.add_edge(2, 3)g1.add_edge(2, 4)g1.add_edge(3, 0)g1.add_edge(4, 2)print("Yes" if is_strongly_connected(g1) else "No")g2 = Graph(V)g2.add_edge(0, 1)g2.add_edge(1, 2)g2.add_edge(2, 3)g2.add_edge(2, 4)print ("Yes" if is_strongly_connected(g2) else "No")
Explanation
The ...