@kudinov-prog

Как хранить (записать) неориентированный граф?

Есть задача в которой надо проверить возможен ли путь между двумя вершинами графа. Граф записан как двумерный массив:
[[a1,a2], [a2, a3], [a2, a4], [a1, a4], [a4, a5], [b1, b2], [b2, b3], [b1, b3], [a3, b1]]
Далее по алгоритму поиска в ширину ищем путь, но проблема в том, что находит путь только в одну сторону (например a1 b3 True, а b3 a1 False). Отсюда следует вопрос, запись графа двумерным массивом соответствует ориентированному графу? Если да , то как записать данный граф неоринтированным? Или же алгоритм другой...
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
tsarevfs
@tsarevfs
C++ developer
У вас просто список ребер. По всей видимости алгоритм интерпретирует их как ориентированые. Вы можете попробовать добавить в список ребра направленные в противоположную сторону.

Обычно для обхода удобнее использовать немного другое представление: список смежности или матрица смежности (легко гуглится). Возможно ваш алгоритм конвертирует изначальный список в одну из этих структур. Можно подсунуть обратные ребра при этой конвертации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы