Class: Doodl::ConnectedComponents

Inherits:
Object
  • Object
show all
Defined in:
lib/connected_components.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(graph, start_node = nil) ⇒ ConnectedComponents

Returns a new instance of ConnectedComponents.



10
11
12
13
14
# File 'lib/connected_components.rb', line 10

def initialize(graph, start_node = nil)
  @component = {}
  @component_count = 0
  @dfs = DepthFirstSearch.new(graph, start_node, self)
end

Instance Attribute Details

#componentObject (readonly)

Returns the value of attribute component.



8
9
10
# File 'lib/connected_components.rb', line 8

def component
  @component
end

Instance Method Details

#discover(graph, node) ⇒ Object



24
25
26
# File 'lib/connected_components.rb', line 24

def discover(graph, node)
  @component[node] = @component_count
end

#num_connected_componentsObject



16
17
18
# File 'lib/connected_components.rb', line 16

def num_connected_components
    @component_count
end

#start_node(graph, node) ⇒ Object



20
21
22
# File 'lib/connected_components.rb', line 20

def start_node(graph, node)
  @component_count += 1
end