Find articulation points or cut vertices in a graph

A vertex in an undirected connected graph is an articulation point or cut vertex if and only if removing it, and the edges connected to it, splits the graph into multiple components.

Hint: Apply Depth First Search on a graph.

Construct the DFS tree.

A node which is visited earlier is a "parent" of those nodes which are reached by it and visited later.

If any child of a node does not have a path to any of the ancestors of its parent, it means that removing this node would make this child disjoint from the graph. This means that this node is an articulation point.

There is an exception: the root of the tree. If it has more than one child, then it is an articulation point, otherwise not.

Now for a child, this path to the ancestors of the node would be through a back-edge from it or from any of its children.

Applications

Cut vertices denote the vertices that are critical in keeping the graph connected. Removing the vertex results in splitting of the graph.

Think of a cut vertex as a person who keeps five communities connected. The person may be a motivational activist. If this person is taken off consideration, then the five different communities become separate and hence, is detrimental as it results in discrimination. Thus, the person (cut vertex) is very important and must be supported.