1 / 1 / 0
Регистрация: 03.09.2021
Сообщений: 46
|
|||||||||||
1 | |||||||||||
Алгоритм поиска количества всех возможных путей между двумя вершинами графа на основе графа матрицы смежности16.03.2023, 12:37. Показов 3262. Ответов 6
Метки нет (Все метки)
Добрый всем день! помогите с заданием! Нужно найти количество всех возможных путей в графе, используя обход графа в глубину. Прошу помощи, поправьте код, что я делаю не так?
Предисловие к заданию: Для решения задачи нужно модифицировать алгоритм обхода в глубину. Идея в том, что алгоритм запускается из какой-то из двух вершин, для которых ищется количество путей. После посещения очередной вершины, нужно проверить, не попал ли алгоритм в конечную вершину. В случае, если попал, нужно завершить обход для текущей рекурсивной ветви и увеличить количество найденных путей на единицу. Также нужно контролировать счетчик посещенных вершин visited. На каждой итерации он должен содержать набор вершин, которые присутствуют в пути на данной итерации. Имеется ввиду, что, например, когда алгоритм зашёл в тупик (у текущей вершины нет смежных непосещенных вершин), то при возвращении к предыдущей вершине текущую нужно обозначать как непосещеннуюvisited[current] = false. Таким образом в visited будут содержаться только те вершины, которые участвуют в текущем пути. В конце алгоритм должен пройти по всем возможным путям в графе. graph.h
0
|
16.03.2023, 12:37 | |
Ответы с готовыми решениями:
6
Алгоритм для поиска всех путей между 2 вершинами графа Алгоритм для поиска всех путей между 2 вершинами графа Поиск всех возможных путей между вершинами графа Написать программу которая находит количество всех путей между двумя вершинами графа Количество путей между двумя вершинами графа |
3696 / 2646 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
|
||||||||||||||||
16.03.2023, 14:18 | 2 | |||||||||||||||
Сообщение было отмечено anastasyi как решение
Решение
Модификация с выводом этих путей :
1
|
1 / 1 / 0
Регистрация: 03.09.2021
Сообщений: 46
|
|
17.03.2023, 06:43 [ТС] | 3 |
SmallEvil, Огромное вам спасибо! Очень сильно помогли!
0
|
3696 / 2646 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
|
||||||
17.03.2023, 12:45 | 4 | |||||
Сообщение было отмечено anastasyi как решение
Решение
Тут есть еще один нюанс.
В вашем описании задания, как то упоминается массив посещенных вершин. И то что путь стоит брать оттуда. В конце пути, когда мы дошли к вершине назначения - в нем будут отмечены вершины по которым этот путь пройден. Однако, порядок обхода этих вершин мы не будем знать. Самый простой пример для иллюстрации :
Код
Pathes : 1 -> 2 -> 3 -> 4 -> 1 -> 2 -> 4 -> 1 -> 3 -> 2 -> 4 -> 1 -> 3 -> 4 -> Total : 4 Это два разных пути. Поэтому я добавил вектор, в котором мы сохраняем вершины пути. Добавлено через 4 минуты Теперь если вас спросят почему вы не брали вершины из таблицы посещений - у вас будет четкий ответ.
1
|
1 / 1 / 0
Регистрация: 03.09.2021
Сообщений: 46
|
|
17.03.2023, 12:56 [ТС] | 5 |
SmallEvil, спасибо, я себе законспектирую прям)Неожиданно быстрый и четкий ответ). Но спросят врядли. там бот проверяет задания.
0
|
3696 / 2646 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
|
|
17.03.2023, 13:02 | 6 |
Тогда будет лично для вас, для понимания.
Если проверяет бот, то добавлять/удалять/изменять сигнатуру методов графа нельзя же (только тело метода), наверное ? Но можно добавить нужные переменные и контейнеры как поля класса.
0
|
1 / 1 / 0
Регистрация: 03.09.2021
Сообщений: 46
|
|
17.03.2023, 13:11 [ТС] | 7 |
SmallEvil, можно.Там только тесты у него скрыты. Остальные файлы можно перекроить, ну по идее можно и тестируемые данные вывести вначале из майна. но это и не важно. главное чтобы алгоритм сам работал. Что-то тяжело алгоритмы мне даются..
0
|
17.03.2023, 13:11 | |
17.03.2023, 13:11 | |
Помогаю со студенческими работами здесь
7
Поиск кратчайших путей между двумя вершинами графа методом Шимбела. Алгоритм поиска все путей между двумя вершинами в графе Написать предикат поиска всех путей в ориентированном графе между двумя заданными вершинами Количество различных путей между всеми вершинами графа Реализовать поиск кратчайших путей между вершинами графа Постройте матрицу кратчайших путей между вершинами графа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |