5

ハミルトニアンサイクルの出力を生成する隣接行列をJavaで実装しようとしています。これは、クラスラル、ジクストラ、2optアプローチなどのさまざまなアルゴリズムで解決できます。2 次元配列が必要であることはわかっていますが、どこから始めればよいかわかりません。マトリックスを保存して、現在持っているグラフに適用できるようにする必要があります。これは、現在「n」個のノードを持つ円です(マトリックスに依存)。すべての助けを歓迎します、ありがとう

4

1 に答える 1

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

改善できる点:

  • ノード間に複数のエッジを許可することはできますか?
  • 加重エッジを許可するかもしれませんか?
  • たぶん、頂点Nodeのインデックスの代わりにタイプを使用しますか?int
  • 等...
于 2010-03-25T13:55:25.667 に答える