for ( Knoten x in V ) { besucht[x] = false; } int counter = 0; while ( exists x : not besucht[x] ) { dfs (x); } dfs (x) { // zu x existiert Weg aus Baumkanten besucht[x] = true; b[x] = ++counter; for ( y in Nachbarn von x ) { if ( not besucht[y] ) { dfs (y); // xy heißt Baum-Kante } } }