1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
typedef struct noeud
{
int val;
struct noeud * fils_gauche;
struct noeud * fils_droit;
} Noeud, * Arbre;
void insertionABR(Arbre a, int valeur)
{
if (!a) return; // noeud NULL condition d'arret de la recurrence
if (valeur<=a->val) /* proprieté des ABR, toutes val < racine se trouvent dans le sous arbre gauche */
{
if (a->fils_gauche==NULL)
{
Arbre new_noeud=creerNoeud(valeur);
a->fils_gauche=new_noeud;
}
else
insertionABR(a->fils_gauche,valeur);
}
else { /* proprieté des ABR, toutes val > racine se trouvent dans le sous arbre droit */
if (a->fils_droit==NULL)
{
Arbre new_noeud=creerNoeud(valeur);
a->fils_droit=new_noeud;
}
else
insertionABR(a->fils_droit,valeur);
}
} |
Partager