T1.programmation : Sujet du TD3
T1.programmation : Sujet du TD supp.
Groupe ESIEE, Denis BUREAU, janvier 2001.
Attention !
Le sujet peut être modifié jusqu'à la veille du TD.
1 Les objectifs
Savoir déclarer, définir, et utiliser des listes chaînées
dynamiques ; savoir écrire des sous-programmes de traitement de ces listes ;
connaître la syntaxe C++ mettant en oeuvre ces concepts.
2 Notions concernées
- Structures (rappels)
- Pointeurs (rappels)
- Pointeurs de structures ; nouvelle syntaxe
- Allocation dynamique (rappels)
- Maillon ; problème de la déclaration du pointeur "suivant"
- Liste chaînée, début, fin
- Traitements de base : ajout, suppression, parcours
- Traitements << avancés >> .
3 Références dans le polycopié
4 Déclarer en C++
- le type TypElement (par exemple, équivalent à
double)
- le type TypMaillon (contenant un TypElement)
- le type TypPtrMaillon
- le type TypListe
5 Traitements de base
Écrire en C++ les sous-programmes suivants :
- InitVide : initialise son paramètre liste à
NULL .
- EstVide : retourne VRAI si son paramètre liste est
vide, et FAUX sinon. Cette fonction est appelée à servir
souvent dans les sous-programmes suivants.
- AjoutDebut : ajoute au début de son paramètre
liste un maillon contenant son paramètre element.
- EnleveDebut : enlève et détruit le premier maillon de
son paramètre liste.
- Longueur : retourne le nombre de maillons de son paramètre
liste.
- AfficheListe : affiche l'intégralité de son paramètre
liste suivant le format :
[0.12|-]->[34.567|-]->/// .
- DetruitListe : détruit l'intégralité de son
paramètre liste qui devient alors vide.
- Contient : retourne VRAI si son paramètre element
figure dans au moins un des maillons de son paramètre liste,
et FAUX sinon.
- ContientPtr : si son paramètre element
est trouvé dans au moins un des maillons de son paramètre
liste, retourne l'adresse de ce maillon,
sinon retourne NULL.
- Compte : retourne le nombre de fois qu'apparaît son
paramètre element dans son paramètre liste.
6 Autres traitements
Écrire en C++ les sous-programmes suivants :
(ne pas oublier tous les cas particuliers)
- AjoutFin : ajoute un maillon contenant son paramètre
element à la fin de son paramètre liste.
- EnleveFin : enlève et détruit le dernier maillon de son
paramètre liste.
- EnleveElement : enlève et détruit le premier maillon de
son paramètre liste qui contient son paramètre
element.
- EnleveTous : enlève et détruit dans son paramètre
liste tous les maillons qui contiennent son paramètre
element.
- Inverse : modifie son paramètre liste de telle sorte
que les maillons soient dans l'ordre inverse (un sous-programme
écrit précédemment peut être utile ...).
- CreeListe : crée une liste numérique d'après les
paramètres suivants :
- la liste qui sera ainsi constituée
- le nombre de maillons souhaités
- la valeur à mettre dans le premier maillon
- l'ecart entre deux valeurs successives
Rappel : il est plus difficile d'insérer à la fin qu'au début
...
- etc... (la suite est laissée à votre imagination)
File translated from
TEX
by
TTH,
version 2.75.
On 31 Jan 2001, 13:58.