我正在尝试使用DFS使用最少数量的颜色为图形的顶点着色。我被困在一个特定的地方,无法从一个起始点完全访问图表。一旦我为顶点指定了颜色,我会改变它吗?是否涉及回溯?
如果存在回溯,如何使用DFS为如下图形着色:
A B
\ |
\|
C--D
答案 0 :(得分:1)
对于图形,您可以检查节点是否已着色(已访问过)以跟踪DFS已访问过哪些节点。
当节点的DFS无法向前移动时,您必须从其他未访问的节点启动DFS,直到每个节点都被访问/着色。
此外,一旦遇到访问/彩色节点,就会终止每个DFS路径。
这是一种贪婪的着色算法。但是,在选择最小颜色数时可能不是最佳选择。 请点击http://en.wikipedia.org/wiki/Graph_coloring#Algorithms
了解更多信息