Académique Documents
Professionnel Documents
Culture Documents
ALGORITHMIQUES ET COMPLEXITE
Département d’Informatique Année universitaire 2023/2024
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).
2/2