书中伪代码如上图所示。


实际写的时候 只需要一个list保存节点是否被访问过就可以了


在演算法中节点只存在三种状态(1)在BFS过程中还没有搜索过的-&>白色(2)BFS过程中已经搜索过,但是其指向的节点没有被完全搜索完的-&>灰色,这个节点还有继续进行BFS的价值。(3)节点已经被搜索,并且其所有指向的节点都已经被搜索过的。-&>黑色,说明这个节点的情况我们已经完全知道了,之后再遇见这个节点就可以不管了。


原书第三版344最底下
用dfs判断有向图是否存在环是用到这个结论
好像是方便后面的证明,比如证明BFS的正确性时用颜色来分类讨论。


只是为了帮助理解,实际并不用


推荐阅读:
相关文章