Форум программистов, компьютерный форум CyberForum.ru

Обход графа в глубину - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Ramos08
0 / 0 / 0
Регистрация: 25.04.2011
Сообщений: 5
28.04.2011, 19:57     Обход графа в глубину #1
Дана бинарная матрица (1-между вершинами есть ребро, 0-между вершинами нет ребра соответственно) и две вершины. Необходимо найти путь между этими вершинами с помощью обхода в глубину. Может кто-нибудь помочь или поделиться материалом? Проблема в том, что не знаю, как связать сам двоичный массив и функцию, в которой работа идет с вектором.

Вот, например, нашел алгоритм

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vector < vector<int> > g; // граф
int n; // число вершин
 
vector<int> color; // цвет вершины (0, 1, или 2)
 
vector<int> time_in, time_out; // "времена" захода и выхода из вершины
int dfs_timer = 0; // "таймер" для определения времён
 
void dfs (int v) {
    time_in[v] = dfs_timer++;
    color[v] = 1;
    for (vector<int>::iterator i=g[v].begin(); i!=g[v].end(); ++i)
        if (color[*i] == 0)
            dfs (*i);
    color[v] = 2;
    time_out[v] = dfs_timer++;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2011, 19:57     Обход графа в глубину
Посмотрите здесь:

Обход графа в глубину C++
C++ Хитрый обход дерева в глубину
C++ Организовать обход в глубину
Компоненты связности графа поиском в глубину C++
C++ Обход вершин графа в глубину стеком
Обход графа в ширину C++
C++ Матрица смежности графа - поиск в глубину
Обход неориентированного графа в глубину C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 18:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru