Vous êtes sur la page 1sur 3

Université Oran1- FSEA- Département Informatique

LMD L2 Module : ASD 3 2020/2021


FICHE TD 1
Exercice 0 :

Soit une liste simplement chainée d’entiers accessible par un pointeur sur maillon L.
1- Donner la déclaration de la Liste.
2- Ecrire une action qui parcoure la liste L et retourne
- Max : l’élément maximal de L
- Min : l’élément minimal de L
3- Donner l’algorithme principal qui affiche les valeurs maximale et minimale de la liste L
Exercice N°1 :

Soit L une liste simplement chainée d’entiers, accessible par pointeur.


1- Donner la déclaration de L
2- Ecrire une action qui à partir de L crée une liste L’, où chaque élément est la factoriel de l’élément
correspondant de L.
EX : L= (4, 2, 0, 1, 3) L’= (24, 2, 1, 1, 6).
3- Ecrire un algorithme qui construit L’ et affiche les éléments de L’
Exercice N°2 :

-Donner la déclaration de la structure liste chaînée d’entiers donnée par pointeur

-Ecrire une procédure qui parcours une liste chainée d’entiers donnée par pointeur et insère son
Premier élément à la fin de la liste. (Sans créer ni supprimer un maillon)

Exercice N°3 :

Soient L et L1 deux listes simplement chainées accessibles par pointeur et contenant des entiers.
Ecrire la procédure ‘Séparer’ permettant de construire une nouvelle liste L1 à partir de la liste L (en
utilisant les procédures insertion et suppression) telle que :
-Tous les éléments de la liste L1 sont des entiers pairs.
-Les éléments restants dans la liste L sont tous des entiers impairs.
Nb : Les procédures ‘Insertion’ et ‘Suppression’ d’un élément dans une liste simplement chaînée
doivent être définies.
Exemple :
Avant L @1 1 @22 3 @3 4 @4 5 @5 8 nil

@1 @2 @3 @4 @5
Après L @1 1 @2 3 @4 5 nil

@1 @2 @4

L1 @6 4 @7 8 nil

Exercice 4 : @6 @7

Soit L une liste simplement chaînée circulaire telle que donnée dans le schéma
1- Ecrire une fonction Longueur qui retourne la longueur de la liste L
2- Ecrire la procédure Ajout_tête qui ajoute un nœud contenant la valeur X en tête de L.
3- Ecrire la procédure Ajout_queue qui ajoute un nœud contenant la valeur X en queue de L.
4- Ecrire une procédure qui permet de transformer La liste circulaire L en une liste simplement
chaînée donnée par un pointeur(En utilisant la même structure)

@2
Université Oran1- FSEA- Département Informatique
LMD L2 Module : ASD 3 2020/2021
FICHE TD 1
@1 @3 @4

L @1 @2 @3 @4 @1

Exercice N°5 :
Soit P une pile de N entiers représentée par contigüité.
1- Ecrire une procédure qui permet de supprimer tous les entiers négatifs de la pile P en utilisant
une deuxième pile (Attention à l’ordre des éléments de la pile résultat).
2- Réaliser cette procédure d’une manière récursive sans utiliser aucune autre structure (ni pile ni
file).

-4 6
5
-2

10 10

1 1

Pile P Avant
Pile P Après

Exercice N°6 :
Soient F une file chainée et P une pile contiguë contenant toutes les deux des entiers.
1. Déclarer les structures de la file et de la pile.
2. Écrire la procédure Miroir qui construit la file miroir de F en utilisant une pile contiguë.
Nb : Utilisez les procédures prédéfinies manipulant la file et la pile.

Exercices Supplémentaires :

Exercice N°1 :
Soit L une liste d’entiers simplement chainée accessible par pointeur.
1) Donner la déclaration de la liste L.
2) Écrire la procédure supprime qui permet de supprimer tous les éléments de valeur e de la liste L
en comptant leur nombre.
3) Écrire la procédure insère qui permet d’insérer n éléments de valeur x à la fin de la liste L non
vide.
4) Écrire la procédure supp_ins permettant de supprimer tous les éléments nuls de la liste L en les
insérant à la fin de la liste L, en utilisant les procédures supprime et insère définies en 2) et 3).
Exemple : 8 0 0 6 5 0 1 -----> 8 6 5 1 0 0 0
5) Modifier les procédures supprime et insère pour rendre la procédure supp_ins optimale en
nombre de boucle (moins de boucles).
6) Réécrire supp_ins en tenant compte de ces modifications.

Exercice N°2 :
Université Oran1- FSEA- Département Informatique
LMD L2 Module : ASD 3 2020/2021
FICHE TD 1
Soit une pile P et une file F représentées par contiguité et contenant des entiers.

1. Donner la déclaration de la pile P.


2. Écrire une fonction (procédure) Nombre qui compte le nombre d’éléments de la pile P
contigüe.
3. Écrire une procédure Inverse1 qui inverse le premier et le dernier élément de la pile P en utilisant
une liste contigüe L.
Exemple : pile P en entrée : [4, 5, 6, 7, 8] ! pile P en sortie [8,5,6,7,4].
4. Donner la déclaration de la file F.
5. Écrire une procédure Inverse2 qui inverse le premier et le dernier élément de la file F.
Exemple : file F en entrée : [4, 5, 6, 7, 8] ! file F en sortie [8,7,6,5,4].

Exercice N°3 :

On dispose d’une liste de caractères, doublement chaînée et accessible par 2 pointeurs tête et queue.
Cette liste comporte un nombre pair de maillons et au minimum 2 maillons.

1. Déclarer cette structure.

2. Écrire la procédure Palindrome qui teste si le mot représenté dans la liste est un palindrome et si
c’est le cas on insère un maillon de valeur donnée au milieu de la liste (un palindrome est un mot qui
se lit de droite à gauche ou de gauche à droite exemple : elle).

Vous aimerez peut-être aussi