С математической точки зрения неориентированный граф должен быть эквивалентен ориентированному, если вы заменяете каждое неориентированное ребро парой направленных ребер с противоположными направлениями.
Насколько я понимаю, вы пытаетесь реализовать алгоритм Беллмана-Форда. Некоторые замечания относительно вашей реализации. Как я вижу, ваша глобальная переменная v
не инициализирована должным образом. Это намеренно предполагать, что источником является вершина с индексом 0? Беллман-Форд находит кратчайшие пути от источника ко всем остальным вершинам; вы выводите длину пути к вершине с максимальным индексом, это то, что вы ожидаете?
Одна важная проблема: что произойдет, если у вас будет отрицательный цикл (это возможно, если вы используете подписанный int для хранения весов)? Преимущество алгоритма Беллмана-Форда заключается в том, что он работает правильно, если некоторые ребра графа имеют отрицательные веса. Более того, он позволяет обнаружить наличие отрицательных циклов, но в вашем случае алгоритм попадет в бесконечный цикл. Решение состоит в том, чтобы ограничить число итераций n
; если на n-й итерации вы обнаружите, что вы все еще не вышли из цикла, в вашем графике есть отрицательный цикл.