您好我试图找到2个城市之间的最短路径,我需要使用UCS算法。我在实施图表时遇到了麻烦,我不知道我是否做得对。到目前为止,我有:
public class City {
final private String id;
public City(String id) {
this.id = id;
}
public String getId() {
return id;
}
@Override
public String toString() {
return id;
}
}
public class Route {
private final City node;
private final int cost;
public Route(City node, int cost) {
this.node = node;
this.cost = cost;
}
public City getCity() {
return node;
}
public int getCost() {
return cost;
}
@Override
public String toString() {
return "{" + node + ", " + cost + "}";
}
}
答案 0 :(得分:1)
这听起来像是一个家庭作业问题,所以我不打算告诉你如何解决这个问题。相反,让我建议一种方法来查看可能让您自己找到答案的问题。
退一步检查算法。问自己这些问题:
您已经确定了城市(顶点),这些城市(边缘)之间的路线以及整个地图(图表),作为您需要表达的概念。到目前为止,非常好。
接下来,检查算法并确定您需要做什么表示(类)以及需要对它们执行的操作。您需要坚持的需求很简单:您需要能够确定通过道路立即连接到特定城市的城市。看看你的代码并问自己:
一旦您回答了这些问题,请问自己第三个问题:是否有更好的方法来满足这一需求?我可以更改我的数据结构和/或算法以更好的方式解决此问题吗?如果答案是肯定的,请回到问题1和2. This list可能会为您提供一些想法。
我认为你应该拿一支铅笔和一张纸来解决问题。根据我的经验,这是一种解决新问题并获得理解的好方法,可以提出一个可以提供解决方案的程序。