мне нужна помощь всякий раз, когда я пытаюсь сделать adj_matrix [и] [v] == adj_matrix [v] [и] для того же веса, он не применяется, и может кто-нибудь сказать мне, если я нахожусь на правильный путь?генерации случайных граф неориентированный
и есть способ, чтобы установить матрицу без краев к Й вместо 0?
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;
}
yo ур гений он исправил мое ВЕС v = u !!!!!!!!! вы можете помочь мне с моей проблемой? Как я могу вернуть (M, L) такое, что M = матрица L = список .... только будет возвращать (adj_matrix, и мы просто использовать список в список весь список ADJ? – Darkflame
@Darkflame Я не уверен, что делать вам означает «список для списка всех списков adj», но просто используйте struct с вашей матрицей и массивом списков. – Giebut