Identifying Cut-Vertices
Learn about cut-vertices of a graph and how to find them by modifying depth-first search.
Introducing cut-vertices
A cut-vertex of a connected graph is a vertex whose removal results in disconnecting the graph.
For example, the labeled vertex in each of the following examples is a cut-vertex because removing it creates two, three, and five components, respectively.
Removing a cut-vertex from a connected graph breaks it into components because all paths of the original graph from vertices of one of these components to vertices of another component pass through that cut-vertex.
In the context of a communication network, failure at a cut-vertex would imply that certain parts of the network become isolated from other parts. Identification of cut-vertices can help in identifying the vulnerabilities as well as communication bottlenecks in a network.
When is the root a cut-vertex?
Let’s say a graph has a depth-first tree with the root vertex having two or more children. Consider the subtrees rooted at the children of the root vertex.
As there are no cross-edges in an undirected graph, all paths of between any two vertices belonging to these different subtrees must pass through the root. So, a root with two or more children is a cut-vertex. On the other hand, a root with at most one child is not a cut-vertex since removing it would not disconnect the graph.
Conclusion I: The root of a depth-first tree of a graph is a cut-vertex of if and only if it has at least two children.
We just saw how to tell if a root vertex is a cut-vertex. But what about the other vertices of the graph?
When is a non-root vertex a cut-vertex?
Let’s think about this. Suppose is not a root of a depth-first tree. If there is no back-edge from a descendant of to an ancestor of , then all paths in the graph between and must go through the vertex . Removal of from the graph would end up with and landing in different components, making a cut-vertex.
We just proved the following:
For a non-root vertex , if there is no back-edge from a descendant of to an ancestor of , then is a cut-vertex.
Example: The vertex ...