Explanation of Algorithm for finding articulation points or cut vertices of a graph

Finding articulation vertices is an application of DFS.

In a nutshell,

  1. Apply DFS on a graph. Get the DFS tree.
  2. A node which is visited earlier is a “parent” of those nodes which are reached by it and visited later.
  3. 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.
  4. There is an exception: the root of the tree. If it has more than one child, then it is an articulation point, otherwise not.

Point 3 essentially means that this node is an articulation point.

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.

All this is explained beautifully in this PDF.

Leave a Comment