Listes algorithmiques
Année 2012
Licence de Sciences, Technologies, Santé mention Mathématiques et mention Sciences Pour l'Ingénieur U.E. Informatique 2.2 Gilles Taladoire – Jérémy Sanhes Projet Gestion de listes d’éléments Soit le type ELEMENT : Type Elément Utilise Booléen Opération =,≤,,≠ : Elément x Elément → Booléen Copie : Elément → Elément → Afficher_element : Elément Soit le type LISTE : Type Liste Utilise Element Opérations Liste-vide : → Liste Ieme : Liste X Entier → Elément Longueur : Liste → Entier Supprimer : Liste X Entier → Liste Inserer : Liste X Entier X Elément → Liste Est_present : Liste x Elément → Booléen Copier : Liste → Liste Concaténer : Liste X Liste → Liste Trier : Liste → Liste Afficher_liste : Liste → Nous allons définir un type « Liste » pour stocker une liste d’éléments ainsi que les procédures et fonctions pour les manipuler. On écrira deux versions du type Liste, une utilisant la représentation contiguë ( listet.h associé au fichier listet.c), une utilisant la représentation chaînée ( listep.h associé au fichier listep.c). Un modèle de ces fichiers est fourni.
Concernant la procédure tri, elle effectue le tri en ordre croissant de la liste : • pour les listes contiguës, vu en algo 1, • pour les listes chaînées, une méthode consiste à rechercher la cellule qui contient le maximum et à la transférer au début de la liste et ainsi de suite dans le reste de la liste.
void void void void
copie(Element e1, Element *e2); afficher_element(Element e); lire_element(Element *e); hasard_element(Element *e);
{ x2 ← x1 } { affichage de x } { lecture de x } { rend x un élément choisi au hasard}
Application : Un programme principal vous est fourni ( main.c). Ce programme utilisera une des 2 versions de "Liste" (listet.h ou listep.h), indifféremment, et manipulera donc des listes de type « Liste » et des éléments de type « Element ».
Tous les fichiers fournis se trouvent dans le répertoire « TP_Listes » des documents