**fig9_67.txt** /* 1*/ // Counter is global and initialized to 1. /* 2*/ // Low, Num, Visited, and Parent are all global arrays. /* 3*/ void /* 4*/ Find_Art( Vertex V ) /* 5*/ { /* 6*/ Visited[ V ] = TRUE; /* 7*/ Low[ V ] = Num[ V ] = Count++; // Rule 1. /* 8*/ for Each Vertex W Adjacent To V /* 9*/ if( ! Visited[ W ] ) // Forward edge. /*10*/ { /*11*/ Parent[ W ] = V; /*12*/ Find_Art( W ); /*13*/ if( Low[ W ] >= Num[ V ] ) /*14*/ cout << V << " is an articulation point" << endl; /*15*/ Low[ V ] = Min( Low[ V ], Low[ W ] ); // Rule 3. /*16*/ } /*17*/ else /*18*/ if( Parent[ V ] != W ) // Back edge. /*19*/ Low[ V ] = Min( Low[ V ], Num[ W ] ); // Rule 2. /*20*/ }