Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建一个图表,以便我可以对其应用统一成本搜索_Java_Search_Graph - Fatal编程技术网

Java 创建一个图表,以便我可以对其应用统一成本搜索

Java 创建一个图表,以便我可以对其应用统一成本搜索,java,search,graph,Java,Search,Graph,你好,我正在寻找两个城市之间的最短路径,我需要使用UCS算法。我在实现图表时遇到问题,我不知道我是否正确。到目前为止,我已经: public class City { final private String id; public City(String id) { this.id = id; } public String getId() { return id; } @Override

你好,我正在寻找两个城市之间的最短路径,我需要使用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 + "}";
  }

}

这听起来像是一个家庭作业问题,所以我不会直接告诉你如何解决这个问题。相反,让我建议一种看待这个问题的方法,它可以让你自己找到答案

退一步,检查算法。问自己以下问题:

  • 我需要表示哪些概念
  • 我需要对这些表示执行哪些操作
  • 哪些数据结构和编程结构支持我的需求
  • 您已经将城市(顶点)、这些城市之间的路线(边)以及整个地图(图形)标识为需要表示的概念。到目前为止,一切顺利

    接下来,检查算法并确定您需要表示(类)做什么以及需要对它们做什么。你的需求很简单:你需要能够确定哪些城市通过道路直接连接到某个城市。看看你的代码,问问自己:

  • 我是否以支持自己需求的方式组织数据
  • 我可以使用什么算法来确定哪些城市通过路线连接
  • 回答完这些问题后,问自己第三个问题:有没有更好的方法来满足这一需求?我可以改变我的数据结构和/或我的算法以更好的方式解决这个问题吗?如果答案是肯定的,回到问题1和2。可能会给你一些想法


    我想你应该拿一支铅笔和一张纸把问题画出来。根据我的经验,这是一种处理新问题的好方法,并获得我所需要的理解,从而提出一个能够提供解决方案的程序。

    你说得对,这是家庭作业。我不需要任何代码,只是需要一点帮助来指导我找到最终的解决方案。我很高兴你告诉我,到目前为止我所做的一切都还可以。我想我应该有一个HashMap来存储每个节点和它的邻居,但是我不知道怎么写。如果我在我的Graph类中这样写可以吗:private MapI我认为您使用HashMap的方法是正确的。你有了一个想法,试着写一些代码,看看事情是否变得太复杂或明显错误。不要害怕在不知道事情是否可行的情况下尝试——制定一个计划,实施它,检查发生了什么,并从经验中学习。我会尝试,如果我有任何问题,我会回来寻求帮助