Skip to content
Snippets Groups Projects
Graph.java 1.82 KiB
Newer Older
  • Learn to ignore specific revisions
  • Luigi Santocanale's avatar
    Luigi Santocanale committed
    
    import java.util.ArrayList;
    import java.util.LinkedList;
    
    
    public class Graph {
        // classe de graphe non orientés permettant de manipuler
        // en même temps des arcs (orientés)
        // pour pouvoir stocker un arbre couvrant, en plus du graphe
    
        public int order;
    
        public int upperBound;
    
    Luigi Santocanale's avatar
    Luigi Santocanale committed
        int edgeCardinality;
    
    
        ArrayList<LinkedList<Edge>> incidency;
        ArrayList<LinkedList<Arc>> inIncidency;
        ArrayList<LinkedList<Arc>> outIncidency;
    
    Luigi Santocanale's avatar
    Luigi Santocanale committed
    
        public Graph(int upperBound) {
    
            // Au début, upperBound==order
            // Ensuite, on pourrait retirer des sommets du graphe.
            // Ainsi, on pourrait avoir upperBound > order
            // Cette modification de la classe devient nécessaire
    
    Luigi Santocanale's avatar
    Luigi Santocanale committed
            // si vous implémentez
            // ou l'algorithme de génération d'arbre couvrant
            // par suppression de sommet, ou l'opération de contraction d’arête.
    
            // Autrement, on pourra asssumer que upperBound==order.
    
            // à compléter
    
        public boolean isVertex(int vertex) {
    
    Luigi Santocanale's avatar
    Luigi Santocanale committed
            // Après avori supprimé certains sommets
            // pas tous le sommets numerotés 0,...,n-1 sont 'vivant'.
    
    
    Luigi Santocanale's avatar
    Luigi Santocanale committed
            return true;
        }
    
    
        public void addVertex(int vertex) {
            // à compléter
        }
    
        public void deleteVertex(int vertex){
            // à compléter
    
        public void ensureVertex(int vertex) {
    
    Luigi Santocanale's avatar
    Luigi Santocanale committed
            // Synonime de addVertex ?
    
    
    Luigi Santocanale's avatar
    Luigi Santocanale committed
        }
    
        public void addArc(Arc arc) {
    
        public void addEdge(Edge edge) {
            // à compléter
    
        public Arc[] outEdges(int vertex) {
            // à modifier, si nécessaire
    
            // Pour la prochaine ligne voir
            // https://www.baeldung.com/java-collection-toarray-methods
            return outIncidency.get(vertex).toArray(new Arc[0]);