IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

insertion de noeud dans un arbre binaire de recherche


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut insertion de noeud dans un arbre binaire de recherche
    Bonjour ! Je suis étudiant en info et en ce moment on travail sur ... vous l'avez deviné, les arbres binaires de recherche !

    je me casse les dents sur l'agorithme d'insertion d'un noeud, en TD on fait ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    P_un_noeud_abr inserer_noeud_abr(P_un_noeud_abr pabr, P_un_noeud_abr pn)
        {
        if(!pabr)
              return pn;
     
          if(comparer_val(pabr->val, pn->val)>0) // pabr->val> pn->val
              pabr->gauche= inserer_noeud_abr(pabr->gauche, pn);
          else
              pabr->droit= inserer_noeud_abr(pabr->droit, pn);
        }
    Ca marche très bien pour insérer un élément à la racine, mais dès que je veux atteindre une hauteur de 2 ca foire et ca remplace la valeur à la hauteur 1.

    voici la définition de la struture P_un_noeud_abr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        typedef struct _un_noeud_abr *P_un_noeud_abr;
     
        typedef struct _un_noeud_abr
            {
            Tval val;
            P_un_noeud_abr gauche;
            P_un_noeud_abr droit;
            } Un_noeud_abr;
    Si besoin voici un lien vers un tar contenant les fichiers sources ainsi que le Makefile de ce tme http://dl.free.fr/aqJeA4hVT
    (la fonction inserer_noeud est bourrée de printf parceque je voulais voir son déroulement pour comprendre ou ca buggait)
    Malgré les infos trouvé ici :http://www.developpez.net/forums/d33...ire-recherche/, je m'en sors toujours pas !
    Merci d'avance pour l'aide !!

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour et bienvenu,
    Où est le return dans le cas où pabr est différent de nul ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    ok ! en fait il suffit de rajouter un

    return pabr;

    tout à la fin.

    Merci bien !

Discussions similaires

  1. Suppression dans un arbre binaire de recherche
    Par allomona dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 06/12/2014, 08h51
  2. modifier une valeur dans un arbre binaire de recherche?
    Par paco_the_king dans le forum Langage
    Réponses: 2
    Dernier message: 04/02/2012, 20h26
  3. Algorithme de suppression d'un élément dans un arbre binaire de recherche
    Par mohsenuss91 dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 24/12/2011, 12h05
  4. Ajout dans les arbres binaires de recherche
    Par chouki dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 28/12/2008, 15h32
  5. Suppression dans un arbre binaire de recherche
    Par zeine77 dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2007, 20h40

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