...

/

Identifying Cut-Vertices

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.

Press + to interact
Cut-vertices u, v, and w
Cut-vertices u, v, and w

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.

Press + to interact

When is the root a cut-vertex?

Let’s say a graph GG 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.

Press + to interact
The root vertex is a cut-vertex with at least two children
The root vertex is a cut-vertex with at least two children

As there are no cross-edges in an undirected graph, all paths of GG 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 GG is a cut-vertex of GG 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 vv is not a root of a depth-first tree. If there is no back-edge from a descendant uu of vv to an ancestor ww of vv, then all paths in the graph between uu and ww must go through the vertex vv. Removal of vv from the graph would end up with uu and ww landing in different components, making vv a cut-vertex.

We just proved the following:

For a non-root vertex vv, if there is no back-edge from a descendant of vv to an ancestor of vv, then vv is a cut-vertex.

Example: The vertex ...