IUP AISEM 2 Examen Algorithmique et C 12 Mars 2004
b. Illustrez son fonctionnement en dessinant la liste compos´ee des ´el´ements suivants: {3, 5,
8, 2, 1 }et en repr´esentant son ´etat apr`es chacune des recherches suivantes (effectu´ees
s´equentiellement):
x=3, x=8, x=1, x=10
Exercice 3: Expressions arithm´etiques
Soit l’expression arithm´etique suivante E exprim´ee sous forme post-fix´ee:
{x, 2, y, ∗,−, 3, ∗, y, z, /, +}
dans laquelle on n’a utilis´e que des op´erateurs binaires. On veut ´evaluer cette expression en
utilisant une pile.
3.1
a. Repr´esentez l’´evolution de la pile apr`es le traitement de chaque ´el´ement de la liste.
b. Donner l’expression de E sous forme infix´ee en utilisant des parenth`eses si n´ecessaire.
c. D´eterminez la valeur de E pour x=2, y=6, z=2
3.2
On peut repr´esenter une expression arithm´etique sous forme d’un arbre binaire dont les feuilles
sont les op´erandes et les noeuds interm´ediaires (y compris la racine) sont les op´erateurs. On se place
dans le cas de la repr´esention d’expressions arithm´etiques sous forme infix´ee.
a. Repr´esentez sous forme d’un arbre binaire l’expression: x+y
b. Mˆeme question pour les expressions: x+ 2 ∗yet (x+ 2) ∗y.
Exercice 4: Permutation et listes chaˆın´ees
Soit la liste chaˆın´ee d’entiers suivante:
On peut ´ecrire:
– 1 `a pour suivant 3
– 2 `a pour suivant 4
– 3 `a pour suivant 2
– 4 `a pour suivant 5
– 5 `a pour suivant NULL
On souhaite permuter les ´el´ements 2 et 4 de la liste.
a. Dessinez la liste apr`es permutation.
b. Indiquez quel est le suivant de chaque ´el´ement apr`es la permutation.
c. Indiquez quels sont les ´el´ements dont ont doit modifier le champ contenant le pointeur vers
l’´el´ement suivant.
d. On suppose que l’on poss`ede 3 pointeurs:
– un vers le premier ´el´ement `a permuter not´e p1,
– un vers le second ´el´ement `a permuter not´e p2,
– enfin un vers l’´el´ement pr´ec´edant le premier ´el´ement `a permuter not´e pp.
Proposez un algorithme permettant d’effectuer la permutation en utilisant ces 3 pointeurs.
On notera x->suiv le pointeur vers l’´el´ement suivant de x.
e. On suppose maintenant que la seule information dont on dispose est la valeur du pointeur p1.
Indiquez comment on peut obtenir p2 et pp `a partir de la connaissance de p1 et du pointeur
vers le d´ebut de la liste tete.