From 6413469ddd500d0fb974f7a96338c056f9143857 Mon Sep 17 00:00:00 2001 From: Romain Jegat <romain.jegat@insa-rennes.fr> Date: Thu, 21 Apr 2016 18:13:06 +0200 Subject: [PATCH] Ajout de fonctions relatives aux arbres de competence --- src/competence.c | 61 +++++++++++++++++++++++++++++++++++++++++++++--- src/competence.h | 10 ++++---- 2 files changed, 63 insertions(+), 8 deletions(-) diff --git a/src/competence.c b/src/competence.c index 9ad8e8c..071ecb1 100644 --- a/src/competence.c +++ b/src/competence.c @@ -22,8 +22,65 @@ typedef struct Competence{ */ +int taille(Competence *noeud) +{ + Competence *enfant; + int compteur = 1; + for (enfant = noeud->enfant; enfant != NULL; enfant = enfant->frere) + compteur += taille(enfant); + return compteur; +} + +unsigned int hauteur(Competence *noeud) +{ + if (!estVide(noeud)) + { + int compteur = 1; + Competence *enfant; + for (enfant = noeud->enfant; enfant != NULL; enfant = enfant->frere) + { + if (hauteur(enfant) > compteur) + compteur = 1 + hauteur(enfant); + } + return compteur; + }else{ + return 0; + } +} + +int estVide(Competence *c) +{ + if (c->enfant == NULL) + return 0; + else + return 1; +} + +boolean est_connue(Competence *c) +{ + return (c->connu); +} +unsigned int NbEnfants(Competence *noeud) +{ + unsigned int nb; + if (estVide(noeud)) + { + nb = 0; + } + else + { + Competence *enfant; + for(noeud->enfant; enfant!= NULL; enfant=enfant->frere); + + nb++; + } + return nb; +} + + +/* -------------------------------------------------------------------------------------- */ Competence* construire_arbre_competence(Competence* a){ return NULL; @@ -35,9 +92,7 @@ int rafraichir_competences(Competence * a){ } -boolean est_connue(Competence *c){ - return (c->connu); -} + boolean est_complet(Competence *a){ return 0; diff --git a/src/competence.h b/src/competence.h index e16a365..54bbe42 100644 --- a/src/competence.h +++ b/src/competence.h @@ -6,14 +6,14 @@ #ifndef DEPLACEMENTS_H_INCLUDED #define DEPLACEMENTS_H_INCLUDED -/* Definition des structures */ +/* Fonctions */ -/* A definir dans structure.h */ -typedef struct Arbre_Competence{ /* Arbre de compétence */ -}Arbre_Competence; +int taille(Competence *noeud); +unsigned int NbEnfants(Competence *noeud); + +unsigned int hauteur(Competence *noeud); -/* Fonctions */ Competence* construire_arbre_competence(Competence* a); -- GitLab