1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    mai 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2017
    Messages : 1
    Points : 2
    Points
    2

    Par défaut Définir et utiliser une structure

    Bonjour, est ce quelqu'un sait faire l'implémentation de l'algorithme de DINIC en C svp?

    Je dois construire le graphe d'ecart, trouver le plus court chemin en nombre d'arcs , trouver l'arc avec la capacité minimale et mettre à jour le graphe et le graphe d'écart.

    JE suis parvenue à créer cette structure mais je sais pas comment l'utiliser.

    voila le fichier.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    #if ! defined (DINIC_H)
     
    #defineDINIC_H 1
     
    /* IMPLANTATION */
     
    struct maillon_arc
     
    {   int cap;
     
        int flow;
     
        int ecart;
     
    struct maillon_arc* next;
     
    };
     
    struct struc_sommet
     
    {   int nbsucc;
     
    struct maillon_arc* tete;
     
    };
     
    struct struct_reseau
     
    {   int nbsommet;
     
        int nbarcs;
     
        int source;
     
        int puit;
     
        struct_sommet* sommet
     
    };
     
    /* PROTOTYPES DES FONCTIONS (TYPE ABSTRAIT)*/
     
      extern void init_struct_reseau ();
     
      extern void clear_struct_reseau ();
     
      extern void buildGRAPH();
     
      extern void buildRG();
     
      extern void shortestPath();
     
      extern void minCap();
     
      extern void updateFlowInNet();
     
      extern void updateFlowInRG();
     
      #endif

  2. #2
    Membre actif Avatar de zaza576
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2013
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : août 2013
    Messages : 154
    Points : 258
    Points
    258

    Par défaut

    Bonjour,

    malheureusement pour toi (et heureusement pour nous :-) ), personne ne fera le travail à ta place.
    Ici, il s'agit d'un forum d'aide, pas d'esclavagisme toléré !

    Du coup, un maximum d'efforts de ta part est requis si tu souhaites qu'on t'accompagne dans ton développement.

    Pour le moment, tu as la structure d'exploitation de tes données, mais tu n'as pas encore le corps de ton algorithme (le principal en fait).

    Moi, j'utilise la démarche suivante quand on me demande de réaliser un travail :
    - je lis les exigences du client (plusieurs fois si besoin)
    - je pose des questions au client si je n'ai pas compris son énoncé
    - je prépare l'ensemble des fichiers à rédiger (.java, .c, .h ...)
    - j'écris les structures de données nécessaires
    - j'écris les prototypes de classes / méthodes / fonctions ... attendues
    - pour chaque classe / méthode / fonction ... , je vais rédiger les exigences attendues du client en tant que COMMENTAIRE. Telle méthode doit faire ceci puis cela ... (Cela me permet de visualiser au bon endroit dans mon code ce que je dois produire)
    - enfin, ... je développe mon code par petits bouts (une fonction, fonction par fonction, une classe ...)
    - je teste !!!!!! Unitairement, puis globalement ! (Pour les tests et la validation, à chacun sa méthode, TDD ...)

    La question que je me pose est :
    - sais-tu utiliser les structures de données en C ? Que dis ton cours à ce sujet ?

    Petit indice algorithmique (j'ai bien dis algorithmique, pas en langage C) :
    struct MaStruct{
    TypeAttribut1 NomAttribut1,
    ...
    }

    Du coup, théoriquement, si tu souhaites exploiter cette structure :

    MaStruct.NomAttribut1 => te retournes la valeur de ton attribut de type TypeAttribut1
    MaStruct.NomAttribut1 = "nouvelle valeur" => affecte une nouvelle valeur respectant le type TypeAttribut1 de ton attribut

    Après, que ce soit en C, en JAVA ou en BrainFuck, la manière de le rédiger / l'exploiter n'est que du sucre syntaxique ! Le principe est le même !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function googleIsYourF*ck*ngFriend(String url, String maQuestion){
        goTo(url);
        reponse = find(maQuestion);
        if(isAcceptable(reponse)){
            clickOn(By.xpath("//button[@id='resolvedButton']"));
        }
        sendMessage("Merci");
    }
    
    googleIsYourF*ck*ingFriend("http://www.google.fr", "ma question");

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    5 788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 5 788
    Points : 15 873
    Points
    15 873
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par lilly59 Voir le message
    JE suis parvenue à créer cette structure mais je sais pas comment l'utiliser.
    Bonjour
    Ca m'étonnerait fort que ce soit toi qui ait créé cette structure. Parce que jamais tu n'aurais écrit (par exemple) extern void minCap() sans savoir à quoi cette fonction va servir. Et si tu sais à quoi elle va servir alors jamais tu n'aurais dit que tu ne savais pas utiliser ta (en réalité "tes" parce qu'il y en a 3) structure(s).

    Pour le reste, voir l'excellent post de zaza576
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

Discussions similaires

  1. utiliser une structure dans une bibliothèque
    Par michel4_1 dans le forum C
    Réponses: 7
    Dernier message: 15/05/2012, 13h03
  2. Réponses: 2
    Dernier message: 10/11/2009, 08h43
  3. Utiliser une structure comme argument d'une fonction
    Par guilermo dans le forum Débuter
    Réponses: 7
    Dernier message: 15/10/2009, 10h05
  4. [XSLT] Comment utiliser une structure de type if-then-ELSE ?
    Par ribrok dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/11/2006, 12h39
  5. [C#]Pourquoi utiliser une structure plutôt qu'une classe?
    Par egoom dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/10/2006, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo