1#ifndef XXDiscreteMathsAlgorithmH
2#define XXDiscreteMathsAlgorithmH
31 using Map = QMap<int, Path>;
43 using List = QList<VertexData>;
81 using Row = QVector<EdgeData>;
82 using Matrix = QVector<Row>;
86 int findEdgeIndex(
const int vertexIndexA,
const int vertexIndexB)
const;
88 IndexList compileAdjacencyList(
const int vertexIndex)
const;
92 EdgeData::Matrix edgeMatrix;
#define XXMATH_DECLSPEC
Definition XXMathExportDef.h:17
Algorithm(const Graph *graph)
IndexList topologicalSort() const
TreeEdges compileTreeEdges(const Tree &tree) const
Path::Map pathDijkstra(const Vertex *vertexStart) const
QList< int > IndexList
list of vertex or edge indexes
Definition XXGraphAlgorithm.h:21
Tree breadthFirst(const Vertex *vertexStart) const
Tree depthFirst(const Vertex *vertexStart) const
static const double invalidWeight
Definition XXGraphEdge.h:19
a vertex in a graph
Definition XXGraphVertex.h:16
int vertexIndex(const Vertex *vertex) const
int findEdgeIndex(const Vertex *vertexA, const Vertex *vertexB) const
Definition XXPopulatedAbstract.h:11
path from one vertex to another
Definition XXGraphAlgorithm.h:25
IndexList verticies
Definition XXGraphAlgorithm.h:29
static const double invalidDistance
Definition XXGraphAlgorithm.h:26
QMap< int, Path > Map
Definition XXGraphAlgorithm.h:31
double distance
Definition XXGraphAlgorithm.h:28
Definition XXGraphAlgorithm.h:38
int parentVertexIndex
Definition XXGraphAlgorithm.h:40
QList< VertexData > List
Definition XXGraphAlgorithm.h:43
int depth
Definition XXGraphAlgorithm.h:41
int vertexIndex
Definition XXGraphAlgorithm.h:39
graph algorithms
Definition XXGraphAlgorithm.h:56
IndexList backEdges
Definition XXGraphAlgorithm.h:59
IndexList forwardEdges
Definition XXGraphAlgorithm.h:58
IndexList treeEdges
Definition XXGraphAlgorithm.h:57
result tree of graph traversal
Definition XXGraphAlgorithm.h:36
VertexData findData(const int vertexIndex) const
int compileDepth(const int vertexIndex) const
Path compilePath(const int vertexIndex) const
VertexData::List verticies
Definition XXGraphAlgorithm.h:46