Class: GraphMatching::DirectedEdgeSet
- Inherits:
-
Object
- Object
- GraphMatching::DirectedEdgeSet
- Defined in:
- lib/graph_matching/directed_edge_set.rb
Overview
A DirectedEdgeSet is simply a set of directed edges in a graph. Whether the graph is actually directed or not is irrelevant, we can still discuss directed edges in an undirected graph.
The naive implementation would be to use ruby’s Set and RGL’s DirectedEdge. This class is optimized to use a 2D array instead. The sub-array at index i represents a set (or subset) of vertexes adjacent to i.
Instance Method Summary collapse
- #add(v, w) ⇒ Object
- #adjacent_vertices(v) ⇒ Object
-
#initialize(graph_size) ⇒ DirectedEdgeSet
constructor
A new instance of DirectedEdgeSet.
Constructor Details
#initialize(graph_size) ⇒ DirectedEdgeSet
Returns a new instance of DirectedEdgeSet.
15 16 17 |
# File 'lib/graph_matching/directed_edge_set.rb', line 15 def initialize(graph_size) @edges = Array.new(graph_size + 1) { [] } end |
Instance Method Details
#add(v, w) ⇒ Object
19 20 21 |
# File 'lib/graph_matching/directed_edge_set.rb', line 19 def add(v, w) edges[v] << w end |
#adjacent_vertices(v) ⇒ Object
23 24 25 |
# File 'lib/graph_matching/directed_edge_set.rb', line 23 def adjacent_vertices(v) edges[v] end |