Biconnected Components

Biconnected Components

DFS(v)

StartTime := StartTime + 1;

d[v] := StartTime; {Init to 0}

back[v] := d[v];

for every w adjacent to x do

if d[w] < d[v] then

push (v,w) on EdgeStack

endif

if d[w] = 0 then

DFS(w);

if back[w] ³ d[v] then

Pop Edgestack until

(v,w) is popped

else

back[v] := min(back[v],

back(w));

endif

else

back[v] := min(back[v],d(w));

endif

endfor

end DFS

begin

for i:= 1 to n do d[i] := 0;

StartTime := 0;

DFS(1);

end

Previous slide Next slide Back to the first slide View Graphic Version