TD ListesDoubles
TD ListesDoubles
TD ListesDoubles
Exercice N°1
Définir la structure de L
Ecrire une procédure qui ajoute un entier X au début de la liste L
Ecrire une procédure qui ajoute un entier X à la fin de la liste L
Ecrire une procédure qui supprime un entier X de la liste L
Ecrire une fonction qui retourne la longueur de la liste L
Exercice N°2
Reprendre les mêmes questions de l’exercice 2 du TD3 en considérant que tous les processus gérés par
l’ordonnanceur sont stockés dans une liste doublement chaînée
Ci-dessous un exemple d’une liste contenant 4 processus (Remarque : P5 est arrivée avant P2)
nil P5 1 P2 1 P1 3 P3 4 nil
Exercice N° 3
On veut créer une structure de données que l’on nommera Liste-DC qui se présente ainsi : Liste-DC
est une structure de données constituée par des triplets. Un triplet est une cellule qui contient trois
parties. Chaque cellule dans ce cas contient deux pointeurs dont un est vers le triplet (la cellule)
suivant et un autre vers le triplet précédent, ainsi qu’un élément de type entier.
La particularité de cette liste est que le suivant du dernier élément n’est pas nil mais plutôt le premier
(tête) et que le précédent du premier élément (tête) n’est pas nil mais le dernier élément. Quand il n’y à
qu’un seul élément, il est à la fois son suivant et son précédent.
Le premier élément de la liste est défini par le pointeur Tête.
Tête
Liste avec
plusieurs
Tête éléments
Liste avec un
seul élément
Exercice N°4 :
Partie A
Un club souhaite informatiser la gestion de ses adhérents. Les champs qui constituent la structure d'un
adhérent sont les suivants :
- NumLic : de type entier
- NomAd : de type chaîne de caractères
- PréAd : de type chaîne de caractères
- Tab : tableau[10] de tournoi qui présente la liste des tournois auxquels l’adhérent a participé.
Un adhérent peut participer à 10 tournois au maximum.
On voudrait dans cet exercice créer et traiter une liste L simplement chaînée d’adhérents.
1. Définir le type liste_adhérents qui représente une liste simplement chaînée d'adhérents.
2. Ecrire la procédure ajouter_début(adr : adhérent, VAR L : ^liste_adhérents) qui ajoute un
adhérent adr au début de la liste L.
4. Ecrire une procédure supprimer (VAR L : ^liste_adhérents, num : entier) qui permet de
supprimer l’adhérent dont le Numéro de licence est égal à num.
Partie B
On voudrait changer la structure de la liste L de telle façon qu’un adhérent n’a pas un nombre
maximum de participations aux tournois. La nouvelle structure est représentée comme suit :
Code
Nom-tournoi
Nil
Code Code
Nil Nom_tournoi Nom_tournoi
Nil