# File lib/rgl/connected_components.rb, line 23 23: def each_connected_component 24: raise NotUndirectedError, 25: "each_connected_component only works " + 26: "for undirected graphs." if directed? 27: comp = [] 28: vis = DFSVisitor.new(self) 29: vis.set_finish_vertex_event_handler { |v| comp << v } 30: vis.set_start_vertex_event_handler { |v| 31: yield comp unless comp.empty? 32: comp = [] 33: } 34: depth_first_search(vis) { |v| } 35: yield comp unless comp.empty? 36: end