【问题标题】:How to implement an adjacency matrix in java producing hamilton cyclesjava - 如何在产生汉密尔顿循环的java中实现邻接矩阵
【发布时间】:2023-04-10 23:10:01
【问题描述】:

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

【问题讨论】:

    标签: java adjacency-matrix hamiltonian-cycle


    【解决方案1】:

    这是一个您可以使用的骨架:

    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 索引作为顶点?
    • 等等……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 2013-11-30
      • 2014-06-23
      • 2014-05-04
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      相关资源
      最近更新 更多