【发布时间】:2016-07-30 22:32:38
【问题描述】:
我正在使用 BFS 来查找连接的组件。我决定使用一组来跟踪访问的节点来实现它。这种方法的问题是一个顶点可能会被添加到队列中两次。所以我只是将队列更改为设置。我不关心访问顺序,所有节点都被访问一次并且算法工作正常。当然,这不再是经典的 BFS:顺序被打破了。
伪代码:
Set visited;
Set to_visit;
visited.insert(start)
to_visit.insert(start)
while (to_visit is not empty){
current = to_visit.first
to_visit.delete(current)
for each neighbour of current {
isNew = visited.insert(neighbour)
if (isNew) {
to_visit.insert(neighbour)
}
}
}
我很确定我不是第一个“发明”它的人。我想知道:这个 I-dont-care-first 搜索是如何调用的?
【问题讨论】:
标签: graph breadth-first-search