# File lib/rgl/connected_components.rb, line 65 65: def handle_finish_vertex (v) 66: # Search adjacent vertex w with earliest discover time 67: root_v = @root_map[v] 68: graph.each_adjacent(v) do |w| 69: if @comp_map[w] == -1 70: root_v = min_discover_time(root_v, @root_map[w]) 71: end 72: end 73: @root_map[v] = root_v 74: if root_v == v # v is topmost vertex of a SCC 75: begin # pop off all vertices until v 76: w = @stack.pop 77: @comp_map[w] = @c_index 78: end until w == v 79: @c_index += 1 80: end 81: end