
- Graph Theory - Home
- Graph Theory - Introduction
- Graph Theory - History
- Graph Theory - Fundamentals
- Graph Theory - Applications
- Types of Graphs
- Graph Theory - Types of Graphs
- Graph Theory - Simple Graphs
- Graph Theory - Multi-graphs
- Graph Theory - Directed Graphs
- Graph Theory - Weighted Graphs
- Graph Theory - Bipartite Graphs
- Graph Theory - Complete Graphs
- Graph Theory - Subgraphs
- Graph Theory - Trees
- Graph Theory - Forests
- Graph Theory - Planar Graphs
- Graph Theory - Hypergraphs
- Graph Theory - Infinite Graphs
- Graph Theory - Random Graphs
- Graph Representation
- Graph Theory - Graph Representation
- Graph Theory - Adjacency Matrix
- Graph Theory - Adjacency List
- Graph Theory - Incidence Matrix
- Graph Theory - Edge List
- Graph Theory - Compact Representation
- Graph Theory - Incidence Structure
- Graph Theory - Matrix-Tree Theorem
- Graph Properties
- Graph Theory - Basic Properties
- Graph Theory - Coverings
- Graph Theory - Matchings
- Graph Theory - Independent Sets
- Graph Theory - Traversability
- Graph Theory Connectivity
- Graph Theory - Connectivity
- Graph Theory - Vertex Connectivity
- Graph Theory - Edge Connectivity
- Graph Theory - k-Connected Graphs
- Graph Theory - 2-Vertex-Connected Graphs
- Graph Theory - 2-Edge-Connected Graphs
- Graph Theory - Strongly Connected Graphs
- Graph Theory - Weakly Connected Graphs
- Graph Theory - Connectivity in Planar Graphs
- Graph Theory - Connectivity in Dynamic Graphs
- Special Graphs
- Graph Theory - Regular Graphs
- Graph Theory - Complete Bipartite Graphs
- Graph Theory - Chordal Graphs
- Graph Theory - Line Graphs
- Graph Theory - Complement Graphs
- Graph Theory - Graph Products
- Graph Theory - Petersen Graph
- Graph Theory - Cayley Graphs
- Graph Theory - De Bruijn Graphs
- Graph Algorithms
- Graph Theory - Graph Algorithms
- Graph Theory - Breadth-First Search
- Graph Theory - Depth-First Search (DFS)
- Graph Theory - Dijkstra's Algorithm
- Graph Theory - Bellman-Ford Algorithm
- Graph Theory - Floyd-Warshall Algorithm
- Graph Theory - Johnson's Algorithm
- Graph Theory - A* Search Algorithm
- Graph Theory - Kruskal's Algorithm
- Graph Theory - Prim's Algorithm
- Graph Theory - Borůvka's Algorithm
- Graph Theory - Ford-Fulkerson Algorithm
- Graph Theory - Edmonds-Karp Algorithm
- Graph Theory - Push-Relabel Algorithm
- Graph Theory - Dinic's Algorithm
- Graph Theory - Hopcroft-Karp Algorithm
- Graph Theory - Tarjan's Algorithm
- Graph Theory - Kosaraju's Algorithm
- Graph Theory - Karger's Algorithm
- Graph Coloring
- Graph Theory - Coloring
- Graph Theory - Edge Coloring
- Graph Theory - Total Coloring
- Graph Theory - Greedy Coloring
- Graph Theory - Four Color Theorem
- Graph Theory - Coloring Bipartite Graphs
- Graph Theory - List Coloring
- Advanced Topics of Graph Theory
- Graph Theory - Chromatic Number
- Graph Theory - Chromatic Polynomial
- Graph Theory - Graph Labeling
- Graph Theory - Planarity & Kuratowski's Theorem
- Graph Theory - Planarity Testing Algorithms
- Graph Theory - Graph Embedding
- Graph Theory - Graph Minors
- Graph Theory - Isomorphism
- Spectral Graph Theory
- Graph Theory - Graph Laplacians
- Graph Theory - Cheeger's Inequality
- Graph Theory - Graph Clustering
- Graph Theory - Graph Partitioning
- Graph Theory - Tree Decomposition
- Graph Theory - Treewidth
- Graph Theory - Branchwidth
- Graph Theory - Graph Drawings
- Graph Theory - Force-Directed Methods
- Graph Theory - Layered Graph Drawing
- Graph Theory - Orthogonal Graph Drawing
- Graph Theory - Examples
- Computational Complexity of Graph
- Graph Theory - Time Complexity
- Graph Theory - Space Complexity
- Graph Theory - NP-Complete Problems
- Graph Theory - Approximation Algorithms
- Graph Theory - Parallel & Distributed Algorithms
- Graph Theory - Algorithm Optimization
- Graphs in Computer Science
- Graph Theory - Data Structures for Graphs
- Graph Theory - Graph Implementations
- Graph Theory - Graph Databases
- Graph Theory - Query Languages
- Graph Algorithms in Machine Learning
- Graph Neural Networks
- Graph Theory - Link Prediction
- Graph-Based Clustering
- Graph Theory - PageRank Algorithm
- Graph Theory - HITS Algorithm
- Graph Theory - Social Network Analysis
- Graph Theory - Centrality Measures
- Graph Theory - Community Detection
- Graph Theory - Influence Maximization
- Graph Theory - Graph Compression
- Graph Theory Real-World Applications
- Graph Theory - Network Routing
- Graph Theory - Traffic Flow
- Graph Theory - Web Crawling Data Structures
- Graph Theory - Computer Vision
- Graph Theory - Recommendation Systems
- Graph Theory - Biological Networks
- Graph Theory - Social Networks
- Graph Theory - Smart Grids
- Graph Theory - Telecommunications
- Graph Theory - Knowledge Graphs
- Graph Theory - Game Theory
- Graph Theory - Urban Planning
- Graph Theory Useful Resources
- Graph Theory - Quick Guide
- Graph Theory - Useful Resources
- Graph Theory - Discussion
Graph Theory - Strongly Connected Graphs
Strongly Connected Graphs
A strongly connected graph is a directed graph in which there is a directed path from any vertex to every other vertex in the graph. In other words, for any pair of vertices u and v in the graph, there exists a directed path from u to v and a directed path from v to u.
Properties of Strongly Connected Graphs
Strongly connected graphs have several important properties, such as −
- Bidirectional Paths: For any two vertices u and v, there are directed paths from u to v and from v to u. This property makes the graph strongly connected.
- Single Component: A strongly connected graph is a single strongly connected component. Any pair of vertices is reachable from each other.
- Closure: The graph forms a "closed" structure in the sense that no matter which vertex you start from, you can reach all other vertices and return to the starting point through directed paths.
- Recurrence: In a strongly connected graph, there are recurring cycles that allow traversal between vertices in any direction, ensuring the graph remains interconnected.
Strongly Connected Components (SCCs)
In any directed graph, it is useful to break the graph into smaller subgraphs called strongly connected components (SCCs). An SCC is a maximal subgraph where each vertex is reachable from every other vertex in the same component.
The following image shows a graph broken into strongly connected components −

- Maximal: An SCC is the largest subgraph where all vertices are mutually reachable.
- Independence: Each SCC is strongly connected, and no vertex in one SCC is reachable from a vertex in another SCC.
- Partition: The entire graph can be partitioned into SCCs.
Conditions for Strong Connectivity
A directed graph is strongly connected if and only if it satisfies the following condition −
- There is a directed path between any pair of vertices u and v in the graph. That is, for every pair of vertices u and v, there is a path from u to v and a path from v to u.
Example: Strongly Connected Graph
In the below graph, for any pair of vertices, there are directed paths in both directions. Therefore, the graph is strongly connected.

Applications of Strongly Connected Graphs
Strongly connected graphs have many practical applications in areas where traversal between nodes in both directions is essential −
- Web Crawling: In web crawling, strongly connected components represent groups of web pages that can be reached from each other. Understanding SCCs can help identify closely linked web pages or websites.
- Social Networks: Strongly connected graphs model networks where users can interact with each other in both directions. If a network is strongly connected, users can connect with each other regardless of their starting points.
- Dependency Management: In software development and project management, strongly connected graphs represent dependencies between tasks or components that must be handled in both directions. SCCs ensure that dependencies are correctly handled.
- Communication Systems: Strongly connected graphs are used in communication systems to ensure that any message can be passed between nodes, even in the case of node failures, by using alternate paths.
Testing Strong Connectivity
There are various ways to test if a directed graph is strongly connected, such as −
- DFS-Based Algorithm: A depth-first search (DFS) can be used to check for reachability between all vertices. If a DFS traversal from any vertex visits all other vertices, and the reverse DFS traversal also visits all vertices, the graph is strongly connected.
- Kosaraju's Algorithm: Kosaraju's algorithm finds strongly connected components (SCCs) in a graph. If the graph contains only one SCC, it is strongly connected.
- Tarjan's Algorithm: Tarjan's algorithm also finds SCCs in a directed graph. Like Kosaraju's, if there is only one SCC in the graph, it is strongly connected.
Strong Connectivity in Various Graphs
Following are the lists of various types of directed graphs and their strong connectivity status −
Graph Type | Strongly Connected | Notes |
---|---|---|
Simple Path | No | There is no directed path between all pairs of vertices. |
Cycle Graph | Yes | Every vertex can reach all other vertices in both directions. |
Complete Directed Graph (Kn) | Yes | Every vertex has a directed edge to every other vertex, making the graph strongly connected. |
Tree | No | A tree is a directed acyclic graph (DAG), so it cannot be strongly connected. |
Directed Acyclic Graph (DAG) | No | DAGs do not have cycles, so they cannot be strongly connected. |
Wheel Graph | Yes | The center vertex connects to all outer vertices, making the graph strongly connected. |
Star Graph (Directed) | No | There is no path from leaf vertices back to the center vertex. |
Random Directed Graph | Depends | Strong connectivity depends on the graph structure. |