在kruskals算法中着色

时间:2018-04-14 20:17:18

标签: java kruskals-algorithm

我在Java中实现Kruskals算法,我无法弄清楚跟踪访问顶点的最佳/最智能方法。我应该给它们上色还是只设置顶点属性来访问或类似的东西?

1 个答案:

答案 0 :(得分:0)

  

我在Java中实现Kruskals算法,我无法弄清楚跟踪访问顶点的最佳/最智能方法。我应该给它们上色还是只设置顶点属性来访问或类似的东西?

将它们着色并将它们设置为访问是两回事。如果要将节点设置为已访问,则使用标志数组(布尔数组):

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

如果您已为节点创建了一个类,只需更新属性:

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

您的后端算法不应该依赖于您的表示层(例如颜色更改),而是如果您想要直观地显示受访节点,您可以根据节点的访问状态设置颜色(而不是相反的方式) )。