******** fig9.67 ********** void find_art( vertex v ) { vertex w; /*1*/ visited[v] = TRUE; /*2*/ low[v] = num[v] = counter++; /* Rule 1 */ /*3*/ for each w adjacent to v { /*4*/ if( !visited[w] ) /* forward edge */ { /*5*/ parent[w] = v; /*6*/ find_art( w ); /*7*/ if( low[w] >= num[v] ) /*8*/ printf("%v is an articulation point\n", v ); /*9*/ low[v] = min( low[v], low[w] ); /* Rule 3 */ } else /*10*/ if( parent[v] != w ) /* back edge */ /*11*/ low[v] = min( low[v], num[w] ); /* Rule 2 */ } }