#include "arbre.h"
#define FAUX 0
#define VRAI 1

//recursif
void ajout_element (ptr_arbre *racine, long val)
{
    if (*racine==NULL)
    {
        *racine=(ptr_arbre)malloc(sizeof(arbre));
        (*racine)->info=val;
        (*racine)->sag=NULL;
        (*racine)->sad=NULL;
    }
    else
    {
        if ((*racine)->info <=val)
        {
           ajout_element (&(*racine)->sad,val);
        }
        else
        {
           ajout_element (&(*racine)->sag,val);
        }
    }           
}
//itteratif

void ajoutElementIteratif (ptr_arbre *racine, long val)
{
    ptr_arbre courant,temp;
    int cree=FAUX;
    
    temp=(ptr_arbre)malloc(sizeof(arbre));
    temp->sag=NULL;
    temp->sad=NULL;
    temp->info=val;
    
    if(*racine!=NULL)
    {
        courant=*racine;
        
        while (cree==FAUX)
        {
            if (courant->info>val)
            {
                if (courant->sag!=NULL)
                {
                    courant=courant->sag;
                }
                else
                {
                   courant->sag=temp;
                   cree=VRAI;
                }
            }    
            else
            {
                if  (courant->sad!=NULL)
                {
                      courant=courant->sad;
                }
                else
                {
                      courant->sad=temp;
                      cree=VRAI;
                }
            }             
        } 
    }
    else
    {
      *racine=temp;  
    }           
}  


