本文整理汇总了C++中Dijkstra::shortestPath方法的典型用法代码示例。如果您正苦于以下问题:C++ Dijkstra::shortestPath方法的具体用法?C++ Dijkstra::shortestPath怎么用?C++ Dijkstra::shortestPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Dijkstra
的用法示例。
在下文中一共展示了Dijkstra::shortestPath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: limitNumberOfNodesInPath
/**
* Encontra dois caminhos disjuntos usando Dijkstra
* A partir deles calcula o limit para o número de hops
*/
int WorstBalancedPathEdge::limitNumberOfNodesInPath(Graph g, int source,int target)
{
Graph s = g;//grafo auxiliar
Dijkstra d;
d.execute(s,source,target);
vector<int> p1;
p1 = d.shortestPath(target);
if ((int)p1.size() <= 1)
{
return 0;
}
/**
* Remove arestas do grafo
*/
int sum = (int)p1.size();
vector<int> adjcents;
Node node;
int u = 0;
for ( u = 0; u < (int)p1.size()-1; u++)
{
s.removeNode(p1[u],p1[u+1]);
s.removeNode(p1[u+1],p1[u]);
}
p1.clear();
d.execute(s,source,target);
p1 = d.shortestPath(target);
if ((int)p1.size() <= 1 )
{
return 0;
}
sum = sum + (int) p1.size();
p1.clear();
return sum;
}