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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2010, 11:23   #1
GBTA
Гость
 
Сообщений: n/a
По умолчанию Лабиринт

Здравствуйте! Помогите с программой: имеется лабиринт заданный в виде матрицы.
Надо найти по нему проходы. У меня есть реализация этой задачи волновым алгоритмом. Необходимо реализовать через деревья. Соответственно, как реализовать через деревья не знаю.

Например входной файл
1 0 1 1 1
1 1 1 0 0
0 0 1 0 0
1 1 1 1 1
1 0 0 0 1

1 это проход.
0 это стена.
Ответить с цитированием
Старый 08.07.2010, 11:38   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Цитата:
Например входной файл
1 0 1 1 1
1 1 1 0 0
0 0 1 0 0
1 1 1 1 1
1 0 0 0 1

1 это проход.
0 это стена.
Обычно сразу и выходной файл пишут на примере.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 08.07.2010, 12:03   #3
dxdy
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 78
По умолчанию

Как я понял, эта задача решается через рекурсию, но вам предложили решить эту задачу через обход дерева? Вам нужно показать все пути или только те пути считаются "счастливые", т.е. если по ним идти и можно выйти за границы матрицы? Допустим такое условие:
Цитата:
Например входной файл
1 0 1 1 1
1 1 1 0 0
0 0 1 0 0
1 1 1 1 1
1 0 0 0 1

1 это проход.
0 это стена.
Здесь у нас всего 4 вершины, (нумерация с 0). Пусть нам дана матрица смежности. Если на пересечении Array[i][j] = 1, то значит между i, j -вершиной есть ребро и таким образом строим все дерево и затем делаем обход дерева в глубину на поиск все путей из каждой вершины. Это если по условию задачи вам требуется найти все пути, а если еще те которые "счастливые", то мы после обхода должны сравнить длину каждого обхода, чтобы выйти за границы массива. Вот такие идеи по поводу решения задачи, если условие задачи понял не верно, то прошу меня исправить.
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶
dxdy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабиринт на Java S@n@ Помощь студентам 0 04.07.2009 14:49
Лабиринт с матрицей N0foR Помощь студентам 1 03.05.2009 22:55
Лабиринт Claster Помощь студентам 1 02.03.2009 11:41
игра лабиринт beregok Общие вопросы C/C++ 3 23.01.2009 10:36
Лабиринт)) Whiplash Паскаль, Turbo Pascal, PascalABC.NET 2 04.12.2008 17:12