如何在java生成hamilton循环中实现邻接矩阵

alc*_*y89 5 java hamiltonian-cycle adjacency-matrix

我试图在java中实现一个邻接矩阵,它将产生哈密顿循环的输出,然后可以用不同的算法解决,例如kruskurals,djikstras和2opt方法.我知道我需要一个2d阵列,但我不知道从哪里开始.我需要能够存储矩阵并将其应用于我拥有的图形,该图形目前是具有"n"个节点的圆(取决于矩阵).欢迎所有的帮助,谢谢

pol*_*nts 5

这是你可以使用的骨架:

public class Graph {
    public final int V;
    private boolean[][] hasEdge;

    public Graph(int V) {
        this.V = V;
        hasEdge = new boolean[V][V];
    }

    public void addEdge(int v1, int v2) {
        hasEdge[v1][v2] = hasEdge[v2][v1] = true;
    }
    public boolean hasEdge(int v1, int v2) {
        return hasEdge[v1][v2];
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以改进的事情:

  • 也许在节点之间允许多条边?
  • 也许允许加权边缘?
  • 也许使用Node类型而不是int顶点的索引?
  • 等等...