Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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
创建grah for java应用程序_Java_Graph - Fatal编程技术网

创建grah for java应用程序

创建grah for java应用程序,java,graph,Java,Graph,在此处输入code我正在构建一个应用程序,该应用程序实现A*算法来计算两个房间之间的路线。我正在尝试创建一个算法可以操作的图形,我不确定这是否是正确的方法。以下是我迄今为止所做的工作: Vect2.java: package myalgorithm; public class Vect2 { private int x; private int y; public Vect2(int x,int y ){ this.x = x;

在此处输入code
我正在构建一个应用程序,该应用程序实现A*算法来计算两个房间之间的路线。我正在尝试创建一个算法可以操作的图形,我不确定这是否是正确的方法。以下是我迄今为止所做的工作:

Vect2.java:

package myalgorithm;

public class Vect2 {

    private int x;
    private int y;


    public Vect2(int x,int y ){

        this.x = x;
        this.y = y;

        }

} 
Node.java

    package myalgorithm;




    public class Node {

        Node parent;
        Vect2 vector;
        public int x;
        public int y;

        public double f;
        public double g;
        public double h;


        public Node( int x,int y,Node parent, double g,double h){

            this.x = x;
            this.y = y;
            this.parent= parent;
            this.g = g;
            this.h = h;
            this.f= this.g + this.h;

        }
    }

NodeGraph.java




 package myalgorithm;
    import java.util.Arrays;

    public class NodeGraph {

        Node a = new Node(88,623,null,0,0);
        Node b = new Node(727,627,null,0,0);
        Node c = new Node(723,93,null,0,0);
        Node d = new Node(90,92,null,0,0);
        Node e = new Node(94,349,null,0,0);
        Node f = new Node(397,358,null,0,0);
        Node g = new Node(722,339,null,0,0);
        Node[] arr = new Node[7];


    public NodeGraph init(){


        arr[0]= a;
        arr[0]= b;
        arr[0]= c;
        arr[0]= d;
        arr[0]= e;
        arr[0]= f;
        arr[0]= g;

        return this;
    }
    public void createMatrx(){
    boolean[][] matrix = new boolean[7][];
    for (int i=0; i<matrix.length; i++) matrix[i] = new boolean[7];

    int nodeA = Arrays.binarySearch(arr, a);
    int nodeB = Arrays.binarySearch(arr, b);
    int nodeC = Arrays.binarySearch(arr, c);
    int nodeD = Arrays.binarySearch(arr, d);
    int nodeE = Arrays.binarySearch(arr, e);
    int nodeF = Arrays.binarySearch(arr, f);
    int nodeG = Arrays.binarySearch(arr, g);

    matrix[nodeA][nodeB] = true;
    matrix[nodeA][nodeE] = true;
    matrix[nodeB][nodeA] = true;
    matrix[nodeB][nodeG] = true;
    // A is connected to D
    matrix[nodeC][nodeG] = true;
    matrix[nodeC][nodeD] = true;
    // B is connected to D
    matrix[nodeD][nodeC] = true;
    matrix[nodeD][nodeE] = true;
    matrix[nodeE][nodeD] = true;
    // C is connected to D
    matrix[nodeE][nodeF] = true;
    matrix[nodeE][nodeA] = true;
    matrix[nodeF][nodeE] = true;
    matrix[nodeE][nodeG] = true;

    matrix[nodeG][nodeF] = true;
    matrix[nodeE][nodeB] = true;
    matrix[nodeE][nodeC] = true;

    matrix[nodeD][nodeC] = true;
    }
    }
package算法;
公共类节点{
节点父节点;
Vect2载体;
公共int x;
公共智力;
公共双f;
公共双g;
公共双h;
公共节点(整数x,整数y,节点父节点,双g,双h){
这个.x=x;
这个。y=y;
这个。父=父;
这个.g=g;
这个,h=h;
this.f=this.g+this.h;
}
}
NodeGraph.java
包算法;
导入java.util.array;
公共类节点图{
节点a=新节点(88623,null,0,0);
节点b=新节点(727627,null,0,0);
节点c=新节点(723,93,null,0,0);
节点d=新节点(90,92,null,0,0);
节点e=新节点(94349,null,0,0);
节点f=新节点(397358,null,0,0);
Node g=新节点(722339,null,0,0);
节点[]arr=新节点[7];
public NodeGraph init(){
arr[0]=a;
arr[0]=b;
arr[0]=c;
arr[0]=d;
arr[0]=e;
arr[0]=f;
arr[0]=g;
归还这个;
}
public void createMatrx(){
布尔[][]矩阵=新布尔[7][];

因为(int i=0;i我不完全理解你在那里做什么,但有几件事让我印象深刻:

arr[0]=a; arr[0]=b; arr[0]=c; arr[0]=d; arr[0]=e; arr[0]=f; arr[0]=g

所有被分配给arr[0]。
您可能希望将创建
arr
替换为:

Node[] arr = new Node[]{a,b,c,d,e,f,g};
这还包括:


@克里斯蒂安·塞维斯库谢谢你
boolean[][] matrix = new boolean[7][];
for (int i=0; i<matrix.length; i++) matrix[i] = new boolean[7];
    boolean[][] matrix = new boolean[7][7];