Class: UndirectedGraph

Inherits:
Graph
  • Object
show all
Defined in:
lib/honey_mushroom/undirected_graph.rb

Instance Attribute Summary

Attributes inherited from Graph

#nodes

Instance Method Summary collapse

Methods inherited from Graph

#adjacent?, #get_id_from_value, #get_node_value, #initialize, #neighbors, #set_node_value, #to_s

Methods included from BreadthFirstSearch

#breadth_first_search_include?

Methods included from DepthFirstSearch

#depth_first_search_include?

Constructor Details

This class inherits a constructor from Graph

Instance Method Details

#add_edge(node_id, edge) ⇒ Object



18
19
20
21
# File 'lib/honey_mushroom/undirected_graph.rb', line 18

def add_edge(node_id, edge)
  super
  @nodes[edge].edges << node_id
end

#add_node(value, edges = []) ⇒ Object



5
6
7
8
9
10
# File 'lib/honey_mushroom/undirected_graph.rb', line 5

def add_node(value, edges=[])
  node = Node.new({value: value, edges: edges})
  @nodes[node.id] = node
  edges.each { |edge| add_edge(edge, node.id) }
  self
end

#delete_edge(node_id, edge_id) ⇒ Object



23
24
25
26
# File 'lib/honey_mushroom/undirected_graph.rb', line 23

def delete_edge(node_id, edge_id)
  @nodes[edge_id].edges.delete(node_id)
  super
end

#delete_node(node_id) ⇒ Object



12
13
14
15
16
# File 'lib/honey_mushroom/undirected_graph.rb', line 12

def delete_node(node_id)
  all_edges = @nodes[node_id].edges.dup
  all_edges.each { |edge| delete_edge(node_id, edge); p edge}
  super
end