Мой график реализован следующим образом:
struct node{
string ID;
vector<string> neighbors;
}
struct graph{
vector<string> nodes;
}
nodes — вектор узлов. Каждый узел содержит свой идентификатор и вектор идентификаторов всех его соседей (узлов, на которые он указывает).
Есть ли способ применить алгоритм Дейкстры или Беллмана-Форда, чтобы найти кратчайший путь между двумя узлами? Найти повторяющийся цикл? Как бы я это сделал?
РЕДАКТИРОВАТЬ: sturcts были случайно названы одинаково.
node
или что-то подобное? Почему бы вам не использоватьvector<node*>
вместоvector<string>
для соседей? - person   schedule 28.01.2014vector<node*>
, как предложил @Nabla. - person Anirudh Ramanathan   schedule 28.01.2014node
и почему вы ссылаетесь на узлы строкой, а не адресом/указателем узла? - person   schedule 28.01.2014