Module rs_graph::graph [] [src]

Traits for graph data structures.

The traits for graph data structures provide an additional level of information about the (edges of) the graph. There are three levels:

  1. Graph: an undirected graph, edges have no defined source or sink.
  2. Digraph: a directed graph, each edge has a designated source and a designated sink node. Furthermore there is the concept of "outgoing" and "incoming" edges. A Digraph is also a Graph, which basically means ignoring the direction information of the edges.
  3. Network: a network is a directed graph, but each edge is actually a pair of edges: the normal directed edge and its reverse edge. Edge and reverse edge are considered equal for all purposes of a digraph (e.g. source and sink node are always source and sink of the forward edge), but the additional "reverse" information can be obtained by the methods of Network. Furthermore, if the network is an IndexNetwork, a BiEdgeVec can be used to store different values for edges and the reverse edges (in contrast, an EdgeVec always contains the same value for an edge and its reverse edge).

Traits

Digraph

Trait for a general directed graph.

Edge

An edge in a graph.

Graph

Trait for a general undirected graph.

IndexGraph

Associates nodes and edges with unique ids.

IndexNetwork

Associates edges with unique ids for forward and backward edge.

Network

A network.

Node

A node in a graph.