0 / 0 / 0
Регистрация: 24.11.2020
Сообщений: 14
|
|
1 | |
Описать класс, реализующий стек. Написать программу, использующую этот класс для отыскания прохода по лабиринту01.12.2020, 19:15. Показов 2801. Ответов 8
Вот такое задание . Не понимаю принцип стека и как его реализовать. Хотелось бы увидеть код попроще
Описать класс, реализующий стек. Написать программу, использующую этот класс для отыскания прохода по лабиринту. Лабиринт представляется в виде матрицы, состоящей из квадратов. Каждый квадрат либо открыт, либо закрыт. Вход в закрытый квадрат запрещен. Если квадрат открыт, то вход в него возможен со стороны, но не с угла. Каждый квадрат определяется его координатами в матрице. После отыскания прохода программа печатает найденный путь в виде координат квадратов. Матрица вот такого типа { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 0, 0, 0, 0, 1, 1, 1, 0, 0 }, { 0, 0, 1, 1, 0, 1, 1, 1, 0, 1 }, { 1, 1, 1, 1, 0, 0, 0, 0, 0, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } где нули - это проход, а единицы границы или стенки
0
|
01.12.2020, 19:15 | |
Ответы с готовыми решениями:
8
Описать класс,реализующий бинарное дерево,Написать прогу, использующую этот класс Описать класс, реализующий стек. Использовать его для отыскания пути в лабиринте Написать программу для отыскания прохода по лабиринту Написать программу, использующую этот класс для представления англо-русского словаря |
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|
01.12.2020, 19:30 | 2 |
Первый вошел, последним вышел. Классический пример: мытье стопки посуды.
Надо создать два класса: сам стек и элемент стека. Элемент стека имеет два свойства: значение элемента, ссылка на следующий элемент. При добавлении элемента в стек: создаем новый элемент стека, который ссылается на существующий. Существующий заменяется новым. При удалении элемента из стека: существующий элемент стека заменяется на следующий элемент. Обычно, используется какой-нибудь A*. Но так как там у кое-кого беды с головой, то подразумевается алгоритм обхода графа в ширину или в глубину. Без разницы.
1
|
0 / 0 / 0
Регистрация: 24.11.2020
Сообщений: 14
|
|
01.12.2020, 19:34 [ТС] | 3 |
I2um1, увидеть бы всё то, что ты написал. Принцип понял, а как это на практике реализовать , вопрос интересный. Если есть возможность помочь с этим вопросом, то был бы благодарен )
0
|
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
|
|
01.12.2020, 19:57 | 4 |
PLOHOYPAREN_, Стек плохо подходит под эту задачу. Можно, но надо реверс делать Создать программу, отыскивающую проход по лабиринту.
1
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
||||||
01.12.2020, 20:00 | 5 | |||||
Сообщение было отмечено PLOHOYPAREN_ как решение
Решение
PLOHOYPAREN_, стек так:
1
|
0 / 0 / 0
Регистрация: 24.11.2020
Сообщений: 14
|
|
01.12.2020, 20:02 [ТС] | 6 |
Enifan, просто мне в задании сказано делать через стек
0
|
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
|
|
01.12.2020, 20:03 | 7 |
0
|
0 / 0 / 0
Регистрация: 24.11.2020
Сообщений: 14
|
|
01.12.2020, 20:09 [ТС] | 8 |
Enifan, да, я понял, что там через стек .Вы просто писали, что стек плохо подходит под эту задачу. А в задании суть в том, чтобы как раз через стек сделать . вот)
0
|
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
|
|
01.12.2020, 20:15 | 9 |
Ну задание - есть задание, не мы его выбираем. Просто говорю, когда вы нашли "путь" , и начинаете выводить элементы из стека, у вас получается путь от выхода ко входу будет. Просто нужно делать дополнительный "переворот" элементов, а это затраты по памяти. В остальном случаи стек от очереди ничем не отличаются.
1
|
01.12.2020, 20:15 | |
01.12.2020, 20:15 | |
Помогаю со студенческими работами здесь
9
Отыскания прохода по лабиринту Описать класс LIFO, реализующий стек произвольного размера для хранения целых чисел Описать класс, реализующий стек Описать класс, реализующий стек Описать класс, реализующий стек Описать класс, реализующий стек Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |