JUNGグラフから隣接行列を作成します
-
25-09-2019 - |
質問
Graph < Integer, Integer> g = new SparseMultigraph<Integer, Integer>();
g.addVertex(1);g.addVertex(2);g.addVertex(3);
g.addEdge(0,1,2 ,EdgeType.DIRECTED);g.addEdge(1,2,3 ,EdgeType.DIRECTED);g.addEdge(2,3,1 ,EdgeType.DIRECTED);g.addEdge(3,1,3 ,EdgeType.DIRECTED);
どのように私は、このグラフは、それが有向グラフであることを考慮して、隣接行列に変換することができます。
解決
この記事では、隣接行列を見つけることができます
それを実装するには?
// Adjacency matrix
int map[21][21] = {
/* A B C D E F G H I L M N O P R S T U V Z */
{0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1}, // Arad
{2,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0}, // Bucharest
{3,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0}, // Craiova
{4,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0}, // Dobreta
{5,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0}, // Eforie
{6,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0}, // Fagaras
{7,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, // Girgiu
{8,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0}, // Hirsova
{9,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0}, // Iasi
{0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0}, // Lugoj
{1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0}, // Mehadia
{2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0}, // Neamt
{3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1}, // Oradea
{4,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0}, // Pitesti
{5,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0}, // Rimnicu Vilcea
{6,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0}, // Sibiu
{7,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0}, // Timisoara
{8,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0}, // Urziceni
{9,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0}, // Vaslui
{0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0} // Zerind
};
最初のコメント行は、各都市の名前の頭文字を表していることに注意してください。それは理解しやすいですように、隣接行列で行われたマッピングは、これらの文字を指します。例えば、アラドを指し、隣接行列の最初のエントリを取得:我々はアラドは、したがって、私たちはこのような場合には、これらの都市を表す列に1の値をシビウ、ティミショアラとZerindに私たちを導くパスを入れていることを持っています、マッピングがどのように行われるかの手紙S、TおよびZ.の下の列。私たちは、これらの都市にリードたちをそのパスがない状態に他の列に0の値を入れます。
あなたのグラフを考えると、その辺を反復して、隣接行列を作成します。
所属していません StackOverflow