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