Universit´e Bordeaux 1 Licence Informatique 2006/2007
Algorithmique et Structures de donn´ees
TD 4
Exercice 4.1
On suppose d’avoir d´efini un type abstrait ensemble pour manipuler des ensembles d’entiers.
Soient A, B et C des ensembles et X un entier, les op´erations d´efinies sur le type abstrait
ensemble sont :
les pr´edicats :
– Est-Vide(A)
– Appartient(X,A)
les proc´edures
– Ajouter(X,A)
– Supprimer(X,A)
– Vider(A)
modifiant l’ensemble pass´e en param`etre, et les proc´edures
– Intersection(A,B,C)
– Compl´ementaire(A,B)
– Union(A,B,C)
– Diff´erence-sym´etrique(A,B,C)
qui construisent l’ensemble r´esultat dans leur dernier param`etre.
Ecrire les fonctions ci-dessus dans le cas o`u les ensembles trait´es sont des parties de l’ensemble
E des entiers de 1 `a N et chaque ensemble est impl´ement´e par un vecteur [1..N] de bool´eens.
Exercice 4.2
Utilisation de piles
Evaluer `a l’aide des axiomes du type abstrait Pile l’expression suivante, o`u les primitives (
Cr´eerPile, PileVide ?, ValeurPile, Empiler, D´epiler) sont not´ees en abr´eg´e (CP, PV,
VP, EP, DP respectivement) :
VP(EP(EP(CP,a),VP(EP(DP(EP(CP,a)),b))))
Exercice 4.3
Utilisation de piles
On se donne trois piles P1,P2et P3. la pile P1contient une suite de nombres entiers positifs.
1. Ecrire un algorithme pour d´eplacer les entiers de P1dans P2de fa¸con `a avoir dans P2
tous les nombres pairs au dessous des nombres impairs.
2. Ecrire un algorithme pour copier dans P2les nombres pairs contenus dans P1. Le contenu
de P1apr`es ex´ecution de l’algorithme doit ˆetre identique `a celui avant ex´ecution. Les
nombres pairs doivent ˆetre dans P2dans l’ordre o`u ils appairaissent dans P1.
Exercice 4.4
Impl´ementation d’une pile
On consid`ere le type Pile d’entiers, o`u les ´el´ements susceptibles d’ˆetre empil´es sont des entiers.
On peut impl´ementer ce type abstrait en utilisant, comme unique structure de donn´ees, un
tableau de type entier et en mettant dans la premi`ere case du tableau l’indice sommet de pile.
Adapter les cinq primitives des piles `a cette structure.
Exercice 4.5
Utilisation de piles
La notation postfix´ee (appel´ee aussi notation polonaise inverse) donne un moyen ´ecrire
des expressions alg´ebriques sans utiliser des parenth`eses ni des r`egles de priorit´e des op´erateurs.
L’algorithme d’´evaluation d’une expression arithm´etique postfix´ee est trivial si l’on utilise une
pile.
Sans perte de g´en´eralit´e, on peut supposer d’avoir une expression arithm´etique postfix´ee
o`u les op´erandes sont des entiers d’un seul chiffre et les op´erateurs sont les quatres op´erations
arithm´etiques binaires de base (+, -, *, /). Une telle expression peut ˆetre repr´esent´ee par un
tableau de caract`eres (avec marqueur de fin de mot).
Ecrire l’algorithme d’´evaluation d’une expression arithm´etique postfix´ee.
Recommandation :
pour connaitre l’origine du nom “notation polonaise invers´ee” et appr´ecier une d´emonstration
avec animation, voir l’URL :
http://www.spsu.edu/cs/faculty/bbrown/web_lectures/postfix/
o`u on trouvera aussi les principes de l’algorithme de conversion d’une expression arithm´etique
usuelle (dite aussi infixe, car les op´erateurs binaires se trouvent entre les deux op´erandes) en
une expression postfixe.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !