Exercice : Après vous !
Dans cette fonction, les lignes 1, 9 et 10 ont des positions imposées.
L'ordre des lignes restantes n'est pas absolu, mais un fonctionnement correct nécessite le respect des contraintes de préséance.
Exprimez ces préséances de la façon suivante : i<j-k<l qui signifie ligne i avant la j et la k avant la l.
Vous respecterez un ordre numérique comme l'exemple suivant : n<n+3-n<n+5-n+1<n+2.
1
1 TlisteD insertioncir(TlisteD ptMail, int i){
2
2 TlisteD aux=(TlisteD )malloc(sizeof(TmaillonD)) ;
3
3 TlisteD pere=ptMail->precedent;
4
4 ptMail->precedent=aux;
5
5 aux->suivant=ptMail;
6
6 aux->precedent=pere;
7
7 pere->suivant=aux;
8
8 aux->val=i;
9
9 return aux;
10
10 }
1 TlisteD insertioncir(TlisteD ptMail, int i){ 2 TlisteD aux=(TlisteD )malloc(sizeof(TmaillonD)) ; 3 TlisteD pere=ptMail->precedent; 4 ptMail->precedent=aux; 5 aux->suivant=ptMail; 6 aux->precedent=pere; 7 pere->suivant=aux; 8 aux->val=i; 9 return aux; 10 }
Il est bien sûr nécessaire de déclarer la variable aux avant d'affecter ses champs.
L'insertion de aux avant ptMail nécessite de modifier le lien precedent de ce dernier. Cependant, il faut auparavant conserver l'accès au pere de ptMail pour le relier à son nouveau successeur aux.