Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
onlwork
1 / 1 / 0
Регистрация: 10.11.2013
Сообщений: 53
#1

Не рекурсивный обход графа в глубину - C++

26.03.2014, 18:47. Просмотров 821. Ответов 0
Метки нет (Все метки)

доброго времени суток. Запутался, помогите разобраться и исправить ошибку (

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void OrGraph::dfs(int v){
    int n = GetCount(); // получаем количество вершин
    int *a = new int[n];
    for (int i = 0; i < n; i++){
        *(a + i) = 1;
    }
    int k = numberTop(v);// кладем в к номер вершины v
    int u = 0 ,b = 0,it;
    Stack s;
    *(a + k) = 0;
    s.Push(v); //в стек записываем произвольную вершину
    while(!s.Emty()){//проверяем, пока не пуст стек
        b = 1;
        it = s.Pop();//просматриваем вершину из стека
        for (Org *current = first; current && b && u<n;){
        if((HasArc(it,recoverTopForTop(u)) && (*(a + u)))) b = 0; //HasArc - существует ли дуга из А в В
//recoverTopForTop - берем вершину с номером u
        else{
            u++;
            current = current -> next;
        }
        if(!b){
            s.Push(recoverTopForTop(u));
            std::cout<<recoverTopForTop(u)<<" ";
            *(a + u) = 0;
        }
        else
            s.Pop();
        }
        
    }
 
}
Граф представлен вот так

C++
1
2
3
4
5
6
7
8
9
10
struct Org {
        int begin, end;
        Org *next;
        Org(char b, char e, Org *n = NULL){
            begin = b; end = e;
            next = n;
        }
    };
 
    Org *first, *last;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2014, 18:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не рекурсивный обход графа в глубину (C++):

Обход графа в глубину - C++
Помогите, пожалуйста! Необходимо написать программу, которая показывала бы вершины, получаемые при обходе графа в глубину.

Обход графа в глубину - C++
Как сделать обход этого графа в глубину ?

Обход графа в глубину - C++
Покажите кто-нибудь как работает &quot;обход графа&quot; в графе в консоле А именно вывод глубины графа,сколько ребер обошел ,где был уже... ...

Обход неориентированного графа в глубину - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;vector&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; using namespace std; int...

Многопоточный обход графа в глубину - C++
Доброго времени суток. Подскажите многопоточный алгоритм обхода графа в глубину (нужно распараллелить алгоритм поиска компонент связности)....

Обход вершин графа в глубину стеком - C++
Применить стек для обхода вершин графа, заданного с помощью матрицы смежности, в глубину. Есть код.. Но он не совсем правильно...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2014, 18:47
Привет! Вот еще темы с ответами:

Рекурсивный поиск в глубину - C++
Нужно найти путь по простому лабиринту от точки к точке, используя в программе рекурсивный поиск в глубину. Фотографию примера лабиринта...

Рекурсивный и нерекурсивный поиск в глубину - C++
Не уверен в правильности работы даной функции. Если начинать с вершины 2, то рекурсивный и нерекурсивный поиски дадут одинаковые...

Организовать обход в глубину - C++
Искал код, не смог найти подходящий. Цель следующая - первым обходом ищем все шарниры, а вторым нужно найти для каждого шарнира, на...

Хитрый обход дерева в глубину - C++
По условию необходимо обойти дерево так чтобы найти путь max длины не имеющий кратных вершин, приэтом советуют пользоваться алгоритмом с...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru