What's the good of using 3 states for a vertex in DFS?

前端 未结 2 650
北海茫月
北海茫月 2020-12-18 00:39

In the explanation of depth-first search (DFS) in Algorithms in a Nutshell (2nd edition), the author used 3 states for a vertex, say white(not visi

2条回答
  •  天命终不由人
    2020-12-18 00:54

    You are correct.

    Instead of coloring a vertex gray, you can color it black, and the algorithm still works.

    It is easy to see that because nowhere in the code the colors gray and black are being checked. The only check is whether a vertex is white or not (the line marked as 2). This means all the colors which aren't white are equivalent.

    I'm guessing the point of using a third color here is for verbosity and/or visualization purposes. If you were to display the graph while traversing it, the third color makes it much clearer what the status of the traversal process is, i.e. which nodes are currently "being visited".

提交回复
热议问题