Académique Documents
Professionnel Documents
Culture Documents
Printemps 2008
Introduction
Une liste chaînée est une succession de structures de données allouées dynamiquement, où chaque
élément contient une référence sur le prochain élément de la liste. Les éléments d’une liste chaînée sont
appelés Noeuds ou cellules.
Dans ce TP nous allons utiliser une liste circulaire avec sentinelle. Le premier élément de la liste, la
sentinelle, est toujours présent et n’est pas utilisé pour le stockage de données. Cette version a pour
avantage de simplifier plusieurs opérations car la tête de la liste ne sera jamais modifiée. Cette liste est
appelée aussi liste circulaire, car le dernier élément pointe vers le premier (ici la sentinelle).
L’objectif de ce TP est de se familiariser avec les opérations les plus courantes des listes chaînées :
création d’une liste, insertion de noeuds, suppression de noeuds, recherche de données.
Le problème à traiter
Nous allons implémenter un système de gestion des notes des étudiants. A chaque individu est associé
un noeud contenant les informations suivantes :
Nom : Les nom et prénom de l'étudiant
ID : Un indice unique
Note : Sa note
Partie I
a) Déclarer une structure Element pour un élément d’une liste chaînée. Définir les champs pour stocker
les informations mentionnées ci-dessus.
La base de données est un fichier de type texte où les enregistrements ne sont pas triés. Les
données de chaque enregistrement sont en 3 lignes consécutives. La première ligne est le
nom. La deuxième ligne est le ID. Et la troisième ligne est la note. Exemple :
---------------------------------------------
BERNE Rodolphe
101
8
GAILLOT Marc
102
16
LIOCOURT Victorien
103
13
IMPORTANT: L’une des fonctions strcmp(), strncmp(), strcasecmp() ou strncasecmp() peut être utilisée pour
comparer deux chaînes de caractères. La donnée nom est en réalité composée d’un nom suivi d’un
prénom. Pour lire des espaces avec scanf(), utiliser la chaîne de format "%[^\n]s". Une autre alternative est
d'utiliser la fonction gets().
Partie 2
Construire une interface pour tester les fonctions ci-dessus. Les options qui doivent être présentes sont :
1 – Afficher Liste
2 – Insertion d'un élément à partir du clavier
3 – Lecture des données à partir d'un fichier
4 – Supprimer un élément
5 – Supprimer une liste
6 – Recherche par intervalle de note
7 – Afficher les statistiques
8 – Trier par notes décroissantes
9 – Enregistrer dans un fichier
0 – Sortie
Notes