@dorifish11

Не выводится результат программы. Что может быть?

#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

class Graph {
public:
    // Конструктор класу Graph
    Graph(int n) : num_vertices(n) {
        // Ініціалізація списку суміжності
        adj.resize(n);
    }

    // Додавання ребра в граф
    void addEdge(int u, int v) {
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    // Перевірка зв'язності графа
    bool isConnected() {
        // Масив відвіданих вершин
        vector<bool> visited(num_vertices, false);

        // Очередь для BFS
        queue<int> q;

        // Додаємо першу вершину до черги
        q.push(0);

        // Позначаємо першу вершину як відвідану
        visited[0] = true;

        while (!q.empty()) {
            // Беремо першу вершину з очереді
            int u = q.front();
            q.pop();

            // Перебираємо всі суміжні з u вершини
            for (int v : adj[u]) {
                // Якщо вершина v ще не була відвідана, додаємо її до черги
                // і позначаємо як відвідану
                if (!visited[v]) {
                    q.push(v);
                    visited[v] = true;
                }
            }
        }

        // Перевіряємо, чи всі вершини були відвідані
        for (int i = 0; i < num_vertices; i++) {
            if (!visited[i]) {
                return false;
            }
        }
        return true;
    }

private:
    // Кількість вершин в графі
    int num_vertices;
    // Список суміжності для графа
    vector<vector<int>> adj;
};

int main() {

    // Відкриваємо файл з графом
   ifstream input_file("graph.txt");

// Зчитуємо кількість вершин у графі
   int num_vertices;
   input_file >> num_vertices;
   cout << "The numder of vertices: " << num_vertices << endl;

// Створюємо граф з num_vertices вершинами
   Graph g(num_vertices);

// Зчитуємо ребра з файлу та додаємо їх до графа
int u, v;
while (input_file >> u >> v) {
    g.addEdge(u, v);
}
// Перевіряємо зв'язність графа та виводимо результат
if (g.isConnected()) {
    cout << "Graph is connected" << endl;
} else {
    cout << "Graph isn't connected" << endl;
}
return 0;
}
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы