0 / 0 / 1
Регистрация: 03.04.2016
Сообщений: 71
1

Рекурсивный поиск в глубину

17.09.2016, 16:00. Показов 2070. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно найти путь по простому лабиринту от точки к точке, используя в программе рекурсивный поиск в глубину.
Фотографию примера лабиринта прикреплю.
Миниатюры
Рекурсивный поиск в глубину  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2016, 16:00
Ответы с готовыми решениями:

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

Нужны небольшие пояснения по маленькому фрагменту кода, реализующего рекурсивный поиск в глубину по графу
Здравствуйте, не могу разобраться в этой функции. Ниже есть ссылка на сам алгоритм. Заранее...

Поиск в глубину
"В рождественскую ночь Санта-Клаус спускается по каминной трубе и раскладывает детям подарки....

Поиск в глубину
Здравствуйте. Как реализовать поиск кратчайшего пути в невзвешенном графе через поиск в глубину? ...

3
4817 / 2278 / 287
Регистрация: 01.03.2013
Сообщений: 5,947
Записей в блоге: 28
17.09.2016, 17:30 2
Шо? Опять!? (С)
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
#include <iostream>
using namespace std;
 
char a[50][50];
int xm, ym;
bool solved = false;
 
void f(int i, int j) {
    if (i<0 || j<0 || i>=xm || j>=ym || solved) return;
    char c = a[i][j];
    if (c=='#' || c=='*' || c=='B') {solved = c=='B'; return;}
 
    if (c==' ') a[i][j]='*';
    f(i+1, j);
    f(i, j-1);
    f(i-1, j);
    f(i, j+1);
    if (!solved) a[i][j]=' ';
}
int main() {
    int i=0, j=0, xs, ys;
    char c;
    while (cin.get(c)) {
        if (c=='\n') {xm=i-1; i=0; j++; continue;}
        if (c=='A') {xs=i; ys=j;}
        a[i++][j]=c;
    }
    ym=j;
    f(xs, ys);
    for(int j=0; j<ym; j++) {for(int i=0; i<xm; i++) cout<<a[i][j]; cout<<'\n';}
}
http://rextester.com/YUGG19735
Код
############
#  #   # *B#
##   #   *##
#  ######**#
#  #    ##*#
# ## ##****#
#  # # *# ##
#  #  A*#  #
##   ##### #
#    #   # #
#  #   #   #
############
1
0 / 0 / 1
Регистрация: 03.04.2016
Сообщений: 71
17.09.2016, 17:46  [ТС] 3
Оо супер, огромное тебе спасибо, если будет у тебя возможность, напиши пару комментариев, что бы я сам постарался вникнуть в код.
0
4817 / 2278 / 287
Регистрация: 01.03.2013
Сообщений: 5,947
Записей в блоге: 28
17.09.2016, 17:50 4
А что там непонятного то? Обходим графа в глубину до первого успеха (не обязательно оптимального в каком-либо смысле, например минимального по длине), и в случае успеха трубим всем полкам отход со стека без дальнейших погружений
0
17.09.2016, 17:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2016, 17:50
Помогаю со студенческими работами здесь

Поиск в глубину
Объясните плз поиск в глубину с примером. Сам много реалихаций нашел, но до конца не могу...

Поиск в глубину
Помогите с заданием пожалуйста. Число 1 можно записать как сумму n чисел вида 1 / i, где i -...

поиск в глубину
Дали задание реализовать поиск в глубину.Пробую релизовать по e-maxx http://e-maxx.ru/algo/dfsно не...

Итеративный поиск в глубину
Здравствуйте! Вопрос связан с поиском в графе. Меня интересуют идеи решения или ссылка на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru