Тема: Побудувати список зв’язків доповнення графа.
Буду дуже вдячний за допомогу в цьому завдання.
Дано матрицю суміжності неорієнтованого графа, визначити вершини на заданій відстані від вказаної вершини.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Алгоритми та структури даних, технології → Побудувати список зв’язків доповнення графа.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Буду дуже вдячний за допомогу в цьому завдання.
Дано матрицю суміжності неорієнтованого графа, визначити вершини на заданій відстані від вказаної вершини.
Що саме лишилося незрозумілим після того, як ви знайшли в Вікі визначення всіх незнайомих вам термінів?
Що саме лишилося незрозумілим після того, як ви знайшли в Вікі визначення всіх незнайомих вам термінів?
Маю такий код, але він має баги, з певними даними працює правильно а з іншими ні.
#include <iostream>
#include <queue>
using namespace std;
const int n = 6;
int i, j;
int GM[n][n] =
{
{0,1,1,0,0,0},
{1,0,1,1,0,0},
{1,1,0,1,1,1},
{0,1,1,0,1,0},
{0,0,1,1,0,1},
{0,0,1,0,1,0}
};
int main()
{
setlocale(LC_ALL, "ukr");
int len[n];
int start,length;
cout << "Старт >> ";
cin >> start;
cout << "Відстань >> ";
cin >> length;
cout << "Матриця суміжності графа: " << endl;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
cout << " " << GM[i][j];
cout << endl;
}
for (auto &it : len)
{
it = -1;
}
len[start] = 0;
queue<unsigned> q;
q.push(start);
while (!q.empty())
{
unsigned cur = q.front();
q.pop();
for (unsigned i = 0; i < n; i++)
{
if ((GM[cur][i] == 1) && (len[i] == -1))
{
len[i] = len[cur] + 1;
q.push(i);
}
}
}
cout << endl;
for (int i = 0; i < n; i++)
{
cout << len[i] << " ";
}
cout << endl;
for (unsigned i = 1; i <= n; i++)
{
if (len[i] == length)
{
cout << i << " ";
}
}
cout << endl;
return 0;
}
Ви натякаєте, що той, хто зголоситься вам допомогти, має самостійно встановити, з якими даними код працює, а з якими - ні? Чи телепатично у вас у голові це прочитати?
Ви абсолютно були праві при новому тесті виявив помилки.
Гаразд, натяків ви не розумієте... Якщо ви маєте конкретний приклад, де програма працює некоректно, наводьте його. Мало людей стане шукати помилки, які ви знайшли, виключно тому, що ви не захотіли ними поділитися; і ще менше захоче вам допомагати, якщо з'ясується, що ви помилилися і насправді код працює як слід.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися