Как вывести матрицу смежности из матрицы инцидентности
int main()
{
int mass[50][50], x, y, i, j;
int max = 0;
do {
cout << "Enter the number of vertices and the number of edges: \n";
cin >> x >> y;
} while (x <= 1 || x >= 50 && y <= 1 || y >= 500);
cout << "Enter the matrix : \n";
for (i = 0; i < x; i++)
{
for (j = 0; j < y; j++)
{
cin >> mass[i][j];
}
}
cout << "\n";
// тут должен быть вывод
cout << "\n";
system("pause");
return 0;
}
Как из введённых данных построить матрицу инцидентности
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Переберите столбцы матрицы инцидентности.
Каждый столбец содержит две единицы в строках p и q - значит в матрице смежности нужно поставить единицы в ячейках A[p][q] и A[q][p]
int ones[2], cnt;
for (i = 0; i < x; i++)
{
cnt = 0;
for (j = 0; j < y; j++)
{
if mass[i][j] == 1
ones[cnt++] = j;
}
A[ones[0]][ones[1]] = 1;
A[ones[1]][ones[0]] = 1;
}