BaseGraph types

typedef unsigned int BaseGraph::VertexIndex

Integer that identifies a vertex.

struct VertexIterator

Iterator that allows range-based loops on a graph’s vertices.

typedef std::pair<VertexIndex, VertexIndex> BaseGraph::Edge

Pair of vertex indices that represents an edge connecting Edge::first to Edge::second.

using BaseGraph::LabeledEdge = std::tuple<VertexIndex, VertexIndex, EdgeLabel>

Contains an edge and its associated label in edge-labeled graphs.

typedef unsigned int BaseGraph::EdgeMultiplicity

Multiplicity of an edge (number of parallel edges) in a multigraph.

typedef double BaseGraph::EdgeWeight

Weight of an edge in a weighted graph.

struct NoLabel

Empty type used for unlabeled graphs.

typedef std::list<VertexIndex> BaseGraph::Successors

Contains the out neighbours of a vertex.

typedef std::vector<Successors> BaseGraph::AdjacencyLists

Contains the out neighbours of each vertex.

typedef std::vector<std::vector<size_t>> BaseGraph::AdjacencyMatrix

Matrix where element \( a_{ij} \) is the number of edges connecting vertex of index \( i \) to vertex of index \( j \) .

typedef std::vector<std::vector<EdgeWeight>> BaseGraph::WeightMatrix

Matrix where element \( a_{ij} \) is the weight of the edge connecting vertex of index \( i \) to vertex of index \( j \). The weight is 0 if the edge doesn’t exist.