// graphs.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
//

#include <iostream>
#include <string>
#include "graph.h"

using namespace std;

void check();

int main()
{
    Graph gr;
    gr.read_file("testgraph.txt");
    gr.find_independent_graphs();
    cout << "END \n";
}





void check() {
    string a = "a", b = "b", c = "c", d = "d", e = "e";
    Node A(a), B(b), C(c), D(d), E(e), E2(e);
    cout << A.get_name() << " " << B.get_name() << " " << C.get_name() << endl;
    Graph gr;
    gr.add_node(&A);
    gr.add_node(&B);
    gr.add_node(&C);
    gr.add_node(&D);
    gr.add_node(&E);

    try {
        gr.add_node(&E2);
    }
    catch (Graph_exception& ex) {
        cout << "Name is already taken\n";
    }


    gr.add_edge(&A, &B);
    gr.add_edge(&A, &C);
    gr.add_edge(&B, &C);
    gr.remove_edge(&B, &C);
    gr.add_edge(&D, &C);
    DFS fs(gr);

    cout << fs.connected(&B, &D) << " " << fs.connected(&D, &E) << " " << "END\n";
}

// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"

// Советы по началу работы 
//   1. В окне обозревателя решений можно добавлять файлы и управлять ими.
//   2. В окне Team Explorer можно подключиться к системе управления версиями.
//   3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
//   4. В окне "Список ошибок" можно просматривать ошибки.
//   5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
//   6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.