TD 4 - pointeurs

L'objectif du TD est de manipuler des listes chaînées d'entiers. On considère la classe Element:

struct Element {
  int val;
  Element * suivant;
};

Le champ suivant contient l'adresse du prochain bloc element (on utilise l'adresse 0 pour signifier qu'il n'y a pas d'autre bloc).

  1. Ecrire une procédure Element * Ajouter(int v, Element * l) qui ajoute un élément de valeur v dont le successeur pointe sur l et retourne l'adresse de ce nouvel élément.

     

  2. Ecrire une fonction int Longueur(Element * l) qui compte le nombre de bloc element à partir de l'adresse l.

     

  3. Ecrire une procédure void Affiche(Element * l) qui affiche tous les valeurs entières contenues dans la liste commençant à l'adresse l.

     

  4. Ecrire une fonction Element * Copier(Element * l) qui renvoie une copie de la liste l.  
  5. Ecrire une fonction Element * Inverser(Element * l) qui renvoie une la liste l inversée.

     

  6. Ecrire une procédure void Detruire(Element * l) qui désalloue tous les blocs de la liste l.

     

  7. Ecrire une fonction Element * AjouterF(int v, Element * l) qui ajoute un élément de valeur v à la fin de la liste l, et qui retourne l'adresse du premier bloc de la liste.

fl@lsv.ens-cachan.fr                                      Last modification: January 23, 2002