私はadj_matrix [u] [v] == adj_matrix [v] [u]を適用しようとすると助けが必要です。正しいパス?無作為グラフを生成する
エッジがない行列を0ではなくXに設定する方法はありますか?
int gen_random_graph(int n)
{
srand(time(0));
int adj_matrix[n][n];
for(int u = 0; u < n; u++)
{
for (int v = u; v < n; v++) //generating a N x N matrix based on the # of vertex input
{
bool edgeOrNot = rand() % 2; //decide whether it has an edge or not
adj_matrix[u][v] = adj_matrix[v][u] = edgeOrNot;
cout << u << " " << v << " " << adj_matrix[u][v] << endl;
if(adj_matrix[u][v] == true)
{
adj_matrix[v][u] = true;
if(u == v) //We can't have i = j in an undirected graph
{
adj_matrix[u][v] = -1;
}
cout << u << " " << v << " " << adj_matrix[u][v] << endl;
}
else
{
adj_matrix[v][u] = -1;
cout << u << " " << v << " " << adj_matrix[u][v] << "else" << endl;
}
}
}
for(int i = 0; i < n; i++)
{
for(int j = i; j < n; j++) //create the N x N with edges and sets the weight between the edge randomly
{
if(adj_matrix[i][j] == true)
{
int weight1 = rand()%10 + 1;
adj_matrix[i][j] = adj_matrix[j][i] = weight1;
cout << " (" << i << "," << j << ") " << "weight: " << adj_matrix[i][j] << endl;
}
}
}
}
int main()
{
int N;
cout << "Enter number of vertices" << endl;
cin >> N;
gen_random_graph(N);
return 0;
}
あなたは天才それを私のことを固定しましたv = u !!!!!!!!!私の問題を手伝ってくれますか?私はどのようにM =行列L =リスト....を返すことができるのですか?(adj_matrix、私たちはすべてのadjリストをリストするためにリストを使用しますか? – Darkflame
@Darkflameどうしますか? "すべてのadjリストを一覧表示する"という意味ですが、単純に構造体をマトリックスとリストの配列で使用します。 – Giebut