module RGL::Graph

In BGL terminology the module Graph defines the graph concept (see Graph Concepts). We however do not distinguish between the IncidenceGraph, EdgeListGraph and VertexListGraph concepts, which would complicate the interface too much. These concepts are defined in BGL to differentiate between efficient access to edges and vertices.

The RGL Graph concept contains only a few requirements that are common to all the graph concepts. These include, especially, the iterators defining the sets of vertices and edges (see {#each_vertex} and {#each_adjacent}). Most other functions are derived from these fundamental iterators, i.e. {#each_edge}, {#num_vertices} or {#num_edges}.

Each graph is an enumerable of vertices.