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:
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.
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); }
voici la définition de la struture P_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
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;
(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 !!
Partager