Given a directed graph. The task is to check if the given graph is connected or not.
- Take two bool arrays vis1 and vis2 of size N (number of nodes of a graph) and keep false in all indexes.
- Start at a random vertex v of the graph G, and run a DFS(G, v).
- Make all visited vertices v as vis1[v] = true.
- Now reverse the direction of all the edges.
- Start DFS at the vertex which was chosen at step 2.
- Make all visited vertices v as vis2[v] = true.
- If any vertex v has vis1[v] = false and vis2[v] = false then the graph is not connected.
Below is the implementation of the above approach:
- Check if a given directed graph is strongly connected | Set 2 (Kosaraju using BFS)
- Check if a graph is strongly connected | Set 1 (Kosaraju using DFS)
- Convert the undirected graph into directed graph such that there is no path of length greater than 1
- Connected Components in an undirected graph
- Detect Cycle in a Directed Graph using BFS
- Euler Circuit in a Directed Graph
- Hierholzer's Algorithm for directed graph
- Clone a Directed Acyclic Graph
- Detect Cycle in a Directed Graph
- Cycles of length n in an undirected and connected graph
- All vertex pairs connected with exactly k edges in a graph
- Find if there is a path between two vertices in a directed graph
- Shortest Path in Directed Acyclic Graph
- Longest Path in a Directed Acyclic Graph | Set 2
- Detect Cycle in a directed graph using colors
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.