Class: Ogr::Digraph

Inherits:
Graph
  • Object
show all
Defined in:
lib/ogr/graphs/digraph.rb

Overview

Class implements directed graph

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Graph

#add, #add_edge, #add_edges, #degree, #each_edge, #each_vertex, #edge?, #edges, #get_edge, #index, #neighbors, #remove, #vc, #vertex_size, #vertexes

Constructor Details

#initialize(edges, store = :list) ⇒ Digraph

Returns a new instance of Digraph.



4
5
6
7
8
9
10
11
12
13
# File 'lib/ogr/graphs/digraph.rb', line 4

def initialize(edges, store = :list)
  @map = IndexedSet.new
  case store
  when :list
    @g = GraphAsList.new
  when :matrix
    @g = GraphAsMatrix.new
  end
  add_edges(edges)
end

Class Method Details

.new_dense(args) ⇒ Object

Creates new graph implemented as matrix.



16
17
18
# File 'lib/ogr/graphs/digraph.rb', line 16

def self.new_dense(args)
  new(args, :matrix)
end

Instance Method Details

#in_degree(x) ⇒ Object

Returns number of incoming edges to given vertex.



21
22
23
# File 'lib/ogr/graphs/digraph.rb', line 21

def in_degree(x)
  @g.degree index(x), :in
end

#out_degree(x) ⇒ Object

Returns number of outcoming edges to given vertex.



26
27
28
# File 'lib/ogr/graphs/digraph.rb', line 26

def out_degree(x)
  @g.degree index(x), :out
end