Vous êtes sur la page 1sur 2

Université de Blida 1 Deuxième année Ingénieur

ALGORITHMIQUES ET COMPLEXITE
Département d’Informatique Année universitaire 2023/2024

TRAVAIL DIRIGE N°2 : LES PILES ET FILES

EXERCICE 1

On considère ici une pile composée des entiers. Il est impératif d’utiliser (sans redéfinition) les
opérations de base sur les piles (InitPile, PileVide, PilePleine, Empiler, Depiler, Sommet).

Q1. Écrire la fonction estImpair(P :Pile) : Booléen qui retourne Vrai si la pile est composée des
nombres impairs uniquement, Faux dans le cas contraire.
Q2. Soient deux piles P1 et P2 d’entier, écrire une fonction diff(P1,P2 :Pile) :Pile qui reçoit deux piles
ordonnées et retourne une pile contenant les éléments de P1 qui n’existent pas dans P2.

EXERCICE 2

Une chaine de caractères peut contenir des parenthèses (), des crochets [], et des accolades {}.
Ces éléments peuvent être imbriqués les uns dans les autres (exemple : {a(bc[d])[{e f}(g)]} ).

Écrire une fonction qui parcourt une chaine de caractères et détermine si le fichier est
correctement parenthésé, c’est-à-dire si toutes les parenthèses, crochets, etc. sont bien refermés par
un caractère du même type, et si les parenthèses, crochets et accolades sont correctement imbriqués.
Exemple d’une chaine incorrecte : ({)}.

1/2
EXERCICE 3

Une file d’attente avec priorité est une collection d’éléments dans laquelle l’insertion ne se fait pas
toujours à la queue. Tout nouvel élément est inséré dans la file, selon sa priorité. Le retrait se fait
toujours du début. Dans une file avec priorité, un élément prioritaire prendra la tête de la file même s’il
arrive le dernier. Un élément est toujours accompagné d’une information « priorité » indiquant sa priorité
dans la file.

1. On suppose que cette file utilise une implémentation dynamique. Donner la définition du type de
donnée d’une pareille file.
2. Ecrire les opérations du modèle adapté à cette forme de file.

EXERCICE 4

On considère ici une file d’attente composée des entiers. La file utilise une implémentation
dynamique. On utilise sans redéfinition les opérations de base sur les files (InitFile, FileVide, FilePleine,
Enfiler, Defiler).

Q1. Donner la déclaration de cette structure de données.


Q2. Écrire une fonction appartient(X :Entier, F :File): Booléen qui permet de vérifier si X appartient à
la file F.
Q3. Ecrire une fonction triée(F :File):Booléen qui renvoie Vrai si F est triée, Faux sinon.
Q4. Écrire une fonction suppDoublons(F:File): File qui reçoit une file triée F, et retourne une file triée
sans doublons. Par exemple, suppDoublons de F=[5,5,8,9,9,77] renvoie Fr=[5,8,9,77].

2/2

Vous aimerez peut-être aussi