diff --git a/src/competence.c b/src/competence.c
index 9ad8e8c1421875bba7c9bbca43052fe857c14633..071ecb1ea1f13713d3701de79a275eccb024e271 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 e16a365ee1cd774f328e8ddb92f5b01dae042af2..54bbe42e5e1a59e2e9a77e766d749f6a4800f41a 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);