class RGL::BipartiteBFSIterator
Attributes
bipartite_sets_map[R]
found_odd_cycle[R]
Public Instance Methods
handle_back_edge(u, v)
click to toggle source
# File lib/rgl/bipartite.rb 70 def handle_back_edge(u, v) 71 verify_odd_cycle(u, v) 72 end
handle_forward_edge(u, v)
click to toggle source
# File lib/rgl/bipartite.rb 74 def handle_forward_edge(u, v) 75 verify_odd_cycle(u, v) 76 end
handle_tree_edge(u, v)
click to toggle source
# File lib/rgl/bipartite.rb 66 def handle_tree_edge(u, v) 67 @bipartite_sets_map[v] = (@bipartite_sets_map[u] + 1) % 2 unless u.nil? # put v into the other set 68 end
reset()
click to toggle source
Calls superclass method
# File lib/rgl/bipartite.rb 48 def reset 49 super 50 51 @bipartite_sets_map = {} 52 @found_odd_cycle = false 53 end
reset_start(new_start)
click to toggle source
# File lib/rgl/bipartite.rb 61 def reset_start(new_start) 62 @start_vertex = new_start 63 set_to_begin 64 end
set_to_begin()
click to toggle source
Calls superclass method
# File lib/rgl/bipartite.rb 55 def set_to_begin 56 super 57 58 @bipartite_sets_map[@start_vertex] = 0 59 end
Private Instance Methods
verify_odd_cycle(u, v)
click to toggle source
# File lib/rgl/bipartite.rb 80 def verify_odd_cycle(u, v) 81 u_set = @bipartite_sets_map[u] 82 @found_odd_cycle = true if u_set && u_set == @bipartite_sets_map[v] 83 end