**fig9_66.txt** /* 1*/ // Assign Low. Also check for articulation points. /* 2*/ void /* 3*/ Assign_Low( Vertex V ) /* 4*/ { /* 5*/ Low[ V ] = Num[ V ]; // Rule 1. /* 6*/ for Each Vertex W Adjacent To V /* 7*/ if( Num[ W ] > Num[ V ] ) // Forward edge. /* 8*/ { /* 9*/ Assign_Low( W ); /*10*/ if( Low[ W ] >= Num[ V ] ) /*11*/ cout << V << " is an articulation point" << endl; /*12*/ Low[ V ] = Min( Low[ V ], Low[ W ] ); // Rule 3. /*13*/ } /*14*/ else /*15*/ if( Parent[ V ] != W ) // Back edge. /*16*/ Low[ V ] = Min( Low[ V ], Num[ W ] ); // Rule 2. /*17*/ }