java - 如何在产生汉密尔顿循环的java中实现邻接矩阵

标签 java adjacency-matrix hamiltonian-cycle

我正在尝试在 java 中实现一个邻接矩阵,它会为哈密顿循环生成一个输出,然后可以使用不同的算法(例如 kruskurals、djikstras 和 2opt 方法)对其进行求解。我知道我需要一个二维数组,但我不知道从哪里开始。我需要能够存储矩阵并将其应用于我拥有的图形,该图形目前是一个带有“n”个节点的圆(取决于矩阵)。欢迎所有帮助,谢谢

最佳答案

这是您可以使用的骨架:

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];
    }
}

可以改进的地方:

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

关于java - 如何在产生汉密尔顿循环的java中实现邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515593/

相关文章:

algorithm - 生成只有 1 个有效哈密顿循环的图

c++ - 给定一些单词,找到一个序列,使得该序列的任何相邻单词都不能具有相同的字符

java - KeyPairGenerator 不适用于 RSA 的 java

java - Apache poi - 在现有 .xlsx 文件中添加新页面

Java/ Selenium : Class containing methods for each Browser

java - 操作相邻矩阵

java - Apache Kafka 客户端(Java): List topics and check whether topic is log compacted

java - 将一棵树分解为森林

c# - 为加权图生成邻接矩阵

graph-theory - 哈密​​顿路径与 ST 的区别