我必须在c ++中实现一个矩阵,并在其上预先形成Dijkstra的最短路径算法。我通过添加图的顶点和边缘使用邻接矩阵制作了图形,但我不知道如何向边缘添加成本。
这是我到目前为止的代码:
graph::graph(int vertexCount){
this->vertexCount = vertexCount;
adjacencyMatrix = new bool*[vertexCount];
for (int i = 0; i < vertexCount; i++) {
adjacencyMatrix[i] = new bool[vertexCount];
for (int j = 0; j < vertexCount; j++)
adjacencyMatrix[i][j] = false;
}
}
void graph::addEdge(int i, int j) {
if (i >= 0 && i < vertexCount && j > 0 && j < vertexCount) {
adjacencyMatrix[i][j] = true;
adjacencyMatrix[j][i] = true;
}
}
是否有人能够指出我在正确的方向上添加什么来增加成本?
答案 0 :(得分:2)
您可以将adjacencyMatrix类型更改为除bool之外的其他类型(例如uint),然后添加一个值。 就像维基上的例子一样:https://en.wikipedia.org/wiki/Adjacency_matrix