如何控制BFS访客的终止条件



例如,我只想对k个步骤进行bfs,或者称为k级别。我该怎么做?现在我对如何终止它只知道一点,从"是否可以更改BGL中的广度优先搜索终止条件?"?。

我使用boost::record_distance解决了这个问题,但我认为这不是一个完美的答案。

保持级别计数,当级别等于k步时,可以终止bfs。

在try中包装第一个调用BFS。。捕获结构

try {
... call the BFS routine ...
}
catch 
{
std::cout << "max level reachedn";
{

在访问者构造器中,初始化一个级别计数器。

在访问者中,增加级别并在达到最大值时抛出异常。

最新更新