Class: UndirectedGraph
- Inherits:
-
Graph
- Object
- Graph
- UndirectedGraph
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
#breadth_first_search_include?
#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
|