En fait ça donnerait ça
void reverseString( struct elem* parFirst);
{
elem *tmp1,*tmp2;
char c;
tmp1 = reverString( parFirst->suivant); // même fonction ms avec retour
tmp2 = tmp1->suivant;
tmp1->suivant = NULL;
parFirst->suivant -> suivant = tmp1;
parFirst->suivant = tmp2;
c = parFirst->caractere;
parFirst->caractere = tmp1->caractere;
tmp1->caractere = c;
}
on part de parFirst->s->a->l->u->t->NULL
et on obtient
result->t->u->l->a->NULL
et tjs parFirst->s
on dit que la première cellule devient la dernière de facon à avoir
u->l->a->t->NULL
ensuite on dit que parFirst->suivant->suivant (s pointe tjs sur a) est égale à u et on se retrouve avec
parFirst->s->u->l->a->t->NULL
et il suffit d'inverser les valeurs des deux cellules aux extremités.
et en fin parFirst->t->u->l->a->s->NULL
Et la chaine est inversée
Partager