Vous êtes sur la page 1sur 2

Travaux Pratiques 1

1) Considérons une liste simplement chainée d’entiers.


Définir la structure représentant cette liste.
a) Proposer une fonction nommée multiple qui affiche les éléments de la liste qui
sont multiples de x, x étant également un entier qui est fourni comme paramètre.
b) Ecrire une fonction nommée suppOccur qui supprime de la liste toutes les
occurrences d’un nombre lu au clavier

2) Soit une liste circulaire d’entier implémentée à l’aide d’une liste doublement chaînée.
a) Ecrire une fonction appelée double_element qui transforme la liste en une liste
contenant le double de ses éléments initiaux. Par exemple la liste 1, 3, 5
deviendra 2, 6, 10.
b) Ecrire une fonction qui supprime de la liste toutes les occurrences d’un nombre
lu au clavier et qui maintient la liste circulaire.

3) On représente une chaîne de caractères sous la forme d’une liste simplement


chaînée. L’information contenue dans une cellule est réduite à un seul caractère.
a) Définir la structure représentant une liste chaînée de caractères.
b) On veut définir une fonction egalite qui teste si deux chaînes de caractères,
représentées par des listes chaînées sont identiques. Pour deux listes chaînées
représentant des chaînes de caractères quelconques, la fonction egalite
retourne 1 si les deux chaînes sont identiques et 0 dans le cas contraire.
Ecrire la fonction egalite.
c) Ecrire une fonction qui affiche les voyelles se trouvant dans la liste

4) Soit une liste circulaire d’entier implémentée à l’aide d’une liste doublement chaînée.
a) Écrire une fonction appelée cycle_element qui « décale » la liste circulaire d’un
cran vers la droite, le contenu des éléments de la liste. C’est-à-dire que la valeur
du premier élément sera copiée dans le deuxième élément, ainsi de suite
jusqu’à ce que celle du dernier soit copiée dans le premier. Notez bien que
l’adresse de chacun des éléments de la liste ne change pas, seul leur contenu
(entier) change.
b) Ecrire une fonction qui affiche tous les nombres premiers apparaissant dans
la liste circulaire.

1
5) Soit une liste simplement chainée d’éléments de type float.
a) Ecrire une fonction appelée inverse_liste qui inverse le contenu d’une liste
simplement chainée. Si la liste contenait initialement les éléments : 1.2, 1.6, 8.9
et 7.5, après l’appel de la fonction inverse_liste, elle contiendrait 7.5, 8.9, 1.6 et
1.2.
NB : Ne pas utiliser les tableaux, ou une autre liste.
b) Ecrire une fonction nommée affiche_min_max qui affiche les valeurs du plus petit
élément et du plus grand élément de la liste chainée.

6)
a) Ecrire une fonction nommée prefixe_liste qui prend deux listes simplement
chainées d’entiers L1 et L2. La fonction renvoie 1 si la liste L1 commence par la
liste L2 et 0 sinon. Si L1 ou L2 est vide, la fonction retourne 0.
Par exemple, si L1 contient les entiers 1 3 6 8 10 et 12 et L2 contient les entiers 1 3
6 et 8, la fonction prefixe_liste doit retourner 1.
b) Ecrire une fonction affiche_pairs qui affiche uniquement les éléments pairs d’une
liste simplement chainée