我需要创建一个没有循环的连接的有向图作为邻接矩阵。我想不出一种算法来填充矩阵以得到一个连通的图。 顶点数随机数从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;
}
}
}
}
}
}