在C ++中增加邻接矩阵边缘的成本

时间:2016-05-18 12:43:41

标签: c++ graph

我必须在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;
    }
} 

是否有人能够指出我在正确的方向上添加什么来增加成本?

1 个答案:

答案 0 :(得分:2)

您可以将adjacencyMatrix类型更改为除bool之外的其他类型(例如uint),然后添加一个值。 就像维基上的例子一样:https://en.wikipedia.org/wiki/Adjacency_matrix