如何生成一个连通的有向图作为邻接矩阵?

时间:2019-12-07 02:34:13

标签: c++ math matrix graph

我需要创建一个没有循环的连接的有向图作为邻接矩阵。我想不出一种算法来填充矩阵以得到一个连通的图。 顶点数随机数从20到30。 边缘数由公式(v *(v-1))/ 2;

OrGraph::OrGraph()
{
    v = random(20, 30);
    e = (v*v - v) / 2;
    mADJ = vector<vector<int>>(v, vector<int>(v));
    for (int i = 0; i < v; i++) {
        for (int j = 0; j < v; j++) {
            if (i != j) {
                for (int edge = 0; edge < e; edge++) {
                    int random_num = random();
                    if (random_num % 2 == 0) {
                        mADJ[i][j] = 1;
                        mADJ[j][i] = 0;
                    }
                    else {
                        mADJ[j][i] = 1;
                        mADJ[i][j] = 0;
                    }
                }
            }
        }
    }
}

0 个答案:

没有答案