我在Java中实现Kruskals算法,我无法弄清楚跟踪访问顶点的最佳/最智能方法。我应该给它们上色还是只设置顶点属性来访问或类似的东西?
答案 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);
您的后端算法不应该依赖于您的表示层(例如颜色更改),而是如果您想要直观地显示受访节点,您可以根据节点的访问状态设置颜色(而不是相反的方式) )。