Exercice : Insertion en tête
Soit la fonction insertionTete destinée à insérer un entier dans une liste chaînée d'entiers.
Les déclarations de type et de profil fonction sont les suivantes :
typedef struct MailListeEnt{
int val ;
struct MailListeEnt *lien ;
} Tmaillon ;
Tmaillon *insertionTete(Tmaillon *liste, int i) ;
typedef struct MailListeEnt{ int val ; struct MailListeEnt *lien ; } Tmaillon ; Tmaillon *insertionTete(Tmaillon *liste, int i) ;
liste est l'adresse du 1er élément de liste,
i est l'entier à insérer dans la liste.
Organisez les lignes suivantes pour retrouver la définition de la fonction. Si 2 instructions peuvent être permutées, placez-les dans la même cible.
ptaux->val=i; } Tmaillon *ptaux=(Tmaillon *)malloc(sizeof(Tmaillon)); Tmaillon *insertionTete(Tmaillon *liste, int i){ return ptaux; ptaux->lien=liste; Plus d'éléments à catégoriser |
Déposez ici
Déposez ici
Déposez ici
Déposez ici
Déposez ici |
La 1ère et les deux dernières lignes sont évidentes.
L'insertion dans la liste nécessite la création d'un élément d'où la 2e ligne.
Les 2 lignes suivantes sont l'initialisation du contenu de l'élément de liste. La définition du lien constitue également la mise en place en tête de liste. C'est pourquoi elle sera, plus logiquement, après l'affectation de la valeur.
Tmaillon *insertionTete(Tmaillon *liste, int i){
Tmaillon *ptaux=(Tmaillon *)malloc(sizeof(Tmaillon)) ;
ptaux->val=i ;
ptaux->lien=liste ;
return ptaux ;
}
Tmaillon *insertionTete(Tmaillon *liste, int i){ Tmaillon *ptaux=(Tmaillon *)malloc(sizeof(Tmaillon)) ; ptaux->val=i ; ptaux->lien=liste ; return ptaux ; }