書中偽代碼如上圖所示。


實際寫的時候 只需要一個list保存節點是否被訪問過就可以了


在演算法中節點只存在三種狀態(1)在BFS過程中還沒有搜索過的-&>白色(2)BFS過程中已經搜索過,但是其指向的節點沒有被完全搜索完的-&>灰色,這個節點還有繼續進行BFS的價值。(3)節點已經被搜索,並且其所有指向的節點都已經被搜索過的。-&>黑色,說明這個節點的情況我們已經完全知道了,之後再遇見這個節點就可以不管了。


原書第三版344最底下
用dfs判斷有向圖是否存在環是用到這個結論
好像是方便後面的證明,比如證明BFS的正確性時用顏色來分類討論。


只是為了幫助理解,實際並不用


推薦閱讀:
相關文章