kruskals 算法中的着色

Coloring in kruskals algorithm

我正在 Java 中实现 Kruskals 算法,但我无法弄清楚 best/smartest 跟踪访问顶点的方法是什么。我应该给它们上色还是只将顶点 属性 设置为 visited 或类似的东西?

I am implementing Kruskals algorithm in Java and i cannot figure out what would be the best/smartest way to track visited vertexes. Should i color them or just set vertex property to visited or something like that?

给它们着色和将它们设置为已访问是两件不同的事情。如果要将节点设置为已访问,可以使用标志数组(布尔数组):

boolean[] visited = new boolean[numNodes];
visited[currNodeIdx] = true;

如果您已经为节点创建了 class,只需更新属性:

class Node{
    private boolean visited;
    public void visited(boolean flag){
        visited = flag;
    }
}
//when updating the node
node.visited(true); 

你的后端算法不应该依赖于你的表现层(例如颜色变化),而是,如果你想直观地显示访问过的节点,你可以根据节点的访问状态(而不是其他)设置颜色轮回)。