From 10428e6d971b86f851ca45ac4404dae22ba69a15 Mon Sep 17 00:00:00 2001 From: Sanchez Alexandre <alexandre.sanchez@insa-rennes.fr> Date: Wed, 4 May 2016 11:23:24 +0200 Subject: [PATCH] =?UTF-8?q?[Comp=C3=A9tences]=20Aide=20=C3=A0=20R.=20Jegat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/competence.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/competence.c b/src/competence.c index 5e52a36..4903f40 100644 --- a/src/competence.c +++ b/src/competence.c @@ -60,6 +60,16 @@ int estVide(Competence *c) return(c->enfant==NULL); } +/*! + * \fn int aUnFrere(Competence *c) + * \brief La fonction indique si une competence a un frère. + * + * \return vrai ou faux. + */ +int aUnFrere(Competence *c) +{ + return(c->frere!=NULL); +} /* -------------------------------------------------------*/ /* Fonctions de set des competences */ @@ -74,25 +84,22 @@ int set_comp_enfant(Competence *parent, Competence *nouvel_enfant) /* Ne foncti } else // Solution cracra mais ça ne marche pas autrement (avec un while) // { - if(estVide(parent->enfant)) - { - parent->enfant->frere = nouvel_enfant; - } - else if(estVide(parent->enfant->frere)) - { - parent->enfant->frere->frere = nouvel_enfant; - } - else if(estVide(parent->enfant->frere->frere)) - { - parent->enfant->frere->frere->frere = nouvel_enfant; - } + set_comp_frere(parent->enfant, nouvel_enfant); } return 0; } int set_comp_frere(Competence *noeud, Competence *nouveau_frere) { - noeud->frere = nouveau_frere; + if(aUnFrere(noeud)) + { + set_comp_frere(noeud->frere, nouveau_frere); + } + else + { + init_Competence(noeud->frere); + noeud->frere = nouveau_frere; + } return 0; } -- GitLab