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 33 34 35 36 37 38 39 40 41 42 43 44 45
| void ajouter(list *liste, char new_mot[100])
{
int test=test_liste_null(liste);
int i;
Elem *new = (Element*)malloc(sizeof(struct Element));
Element *act;
int result=0;
for(i_compt=0;i_compt<100;i_compt++)
{
new->chaine_caractere[i] = new_mot[i];//parcours le tableau (chaine de caractere) et copie caractere par caractere dans le tabeau du nouvel element
}
//si c'est le premiere élément
if(test==0)
{
new->suivant = NULL;
liste->premier=new;
}
else
{
//fonction qui renvoit un entier positif si l'element lue est avant (ordre alphabétique) le nouvel element
//sinon elle renvoit un entier negatif
result=comparer_chaine(liste->premier->chaine_caractere,new->chaine_caractere);
//comparaison avec le premier element de la pile
if(result<0)
{
new->suivant=liste->premier;
liste->premier=new;
}
else
{
act = liste->premier;
while (act!= NULL && result>0)
{
result=comparer_chaine(act->chaine_caractere,new->chaine_caractere);
act=act->suivant;
}
new->suivant=act->suivant;
act->suivant=new;
}
}
} |
Partager