Кратчайший путь в графе

Мой график реализован следующим образом:

struct node{
string ID;
vector<string> neighbors;

}

struct graph{
vector<string> nodes;
}

узлы — это вектор узлов. Каждый узел содержит свой идентификатор и вектор всех идентификаторов своего соседа (на которые он указывает)

Есть ли способ, которым я могу применить алгоритм Дейкстры или Беллмана-Форда, чтобы найти кратчайший путь между двумя узлами? Найти повторяющийся цикл? Как бы я это сделал?

РЕДАКТИРОВАТЬ: sturcts были случайно названы так же.

0

Решение

Вы ничего не упомянули о крае веса.

Алгоритм Дейкстры работает, если у вас нет отрицательного веса ребра.

Алгоритм Беллмана-Форда работает, если у вас нет отрицательного цикла. Но вы также можете использовать алгоритм Беллмана-Форда, чтобы проверить, есть ли у вас отрицательный цикл.

Если это невесомый граничный граф, вы можете просто использовать BFS.

1

Другие решения

Других решений пока нет …