2010-03-08 21 views
2
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); 

Comment puis-je convertir ce graphe en une matrice d'adjacence en tenant compte qu'il s'agit d'un graphe orienté.Création d'une matrice d'adjacence à partir d'un graphe JUNG

Répondre

2

Dans ce post, vous pouvez trouver une matrice de contiguïté:

Breadth and depth first search - part 3

Comment mettre en œuvre?

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

Notez que la première ligne commentée représente la première lettre du nom de chaque ville. Le mappage effectué avec la matrice d'adjacence fait référence à ces lettres afin qu'elles soient plus faciles à comprendre. Par exemple, obtenir la première entrée de la matrice d'adjacence qui se réfère à Arad: nous avons que Arad a des chemins qui nous mènent à Sibiu, Timisoara et Zerind, ainsi nous mettons une valeur de 1 sur les colonnes qui représentent ces villes, dans ce cas , les colonnes sous les lettres S, T et Z. C'est ainsi que la cartographie est faite. Nous mettons une valeur de 0 sur les autres colonnes pour indiquer qu'il n'y a pas de chemin qui nous mène à ces villes. Etant donné votre graphique, parcourez ses bords et créez votre matrice d'adjacence.

+0

Merci pour l'aide que j'ai juste réussi à faire fonctionner .. – Ali

+0

De rien! –