CS 1501 Biconnected Components

Using the same original graph as in previous handout

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


DFS Spanning Tree with DFS numbers (in nodes) and min values (outside nodes) for each vertex.  When given a choice, lower alphabetical neighbor of the current node is chosen first.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


The articulation points on this graph are those vertices whose DFS numbers are <= the min values of ANY of their descendents in the DFS tree.  As we discussed in lecture, this indicates that the descendents cannot reach any nodes HIGHER in the DFS tree EXCEPT through the parent node – i.e. the only path to the rest of the tree is through the parent node, so the parent node is an articulation point.  In the graph above we can see 3 articulation points based on this definition: E (since G and H have min numbers of 7), F (since C and D have min numbers of 3), and D (since I has a min number of 5).  Note that A is also an articulation point, but by a different definition, as explained below.

 

Root Special Case:

If you think about it, you will realize that the DFS number of the root will always be 1 and that any descendent of the root will have a min reachable number >= 1.  By our previous definition, this would always make the root of the DFS tree an articulation point.  However, the root in fact is only an articulation point if it has 2 or more children in the DFS tree.  The only way the root will have 2 or more children is if the DFS algorithm had to backtrack to the root and proceed again to another of the root's children.  But if there were an alternate path to the other child, the backtracking would never reach the root – we would take a different path.  Thus, the root having 2 or more children means that the only way from one child to the other child is through the root, and the root is an articulation point.