Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2019, 14:44   #1
20Sova240
Новичок
Джуниор
 
Регистрация: 26.11.2019
Сообщений: 1
По умолчанию Создание и обход графа в глубину через файл txt

Здравствуйте, возникла у меня одна проблема, мне нужно написать консольное приложение которое создаёт граф ненаправленный с помощью матрицы смежности, которая находится в файле txt, там же в виде списка лежит название вершин. Нужно, чтобы консольное приложение открыла файл, построило граф, сделала обход в глубину, на выходе должен создаться текстовый файл пример такого:
Москва : 1
Тверь : 2
Тула : 5
Ржев: 3
Торжок : 4

Начало у меня есть, как это всё объединить затрудняюсь.
Код:
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    ifstream file("D:\\Граф 3\\файл.txt");
 
    if (!file)
    {
        cout << "Файл не открыт\n\n";
        return -1;
    }
    else
    {
        cout << "Все ОК! Файл открыт!\n\n";
        return 1;
    }
}
Код:
std::cout << "Youre entered matrix:" << std::endl;
    for (const auto &v:adj_matrix)
    {
        for(const auto &ve:v)
            std::cout << ve << " ";
        std::cout << std::endl;
    }
 
    std::vector<VertexState> nodes(matrix_size, VertexState::Undetected);
 
    queue.push(0);
    while(!queue.empty())
    {
        size_t node = queue.front();
 
        queue.pop();
        nodes[node] = VertexState::Visited;
 
        for(size_t j = 0; j < matrix_size; ++j)
        {
            if (adj_matrix.at(node).at(j) == 1 && nodes.at(j) == VertexState::Undetected)
            {
                queue.push(j);
                nodes[j] = VertexState::Detected;
            }
        }
        std::cout << "vert " << node + 1 << std::endl;
    }
 
    return 0;
}
Данные из файла txt.

Матрица смежности:
01001
10110
01000
01000
10000

Название вершин:
1 Москва
2 Тверь
3 Тула
4 Ржев
5 Торжок
20Sova240 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обход матрицы инцидентности в глубину Karych Общие вопросы C/C++ 0 22.09.2017 11:24
Обход графа: в глубину, ширину. Алгоритм Прима Fantom.as Общие вопросы C/C++ 0 18.05.2012 17:09
Метод обхода графа в глубину (Java) manechka Помощь студентам 0 02.06.2009 14:44
Обход дерева в глубину patriarch Общие вопросы C/C++ 1 07.05.2009 12:31
Обход графа в глубину coptor Общие вопросы Delphi 0 09.12.2008 22:50