Vous êtes sur la page 1sur 2

2 AP 2018/2019

Matière : Programmation Avancée & Classe : 2 AP


Structures de données II
Date de l’épreuve : 15/06/2019 Durée de l’épreuve : 2h00min

NB : Aucun document n’est autorisé

Exercice 1 : (3 points)
Soit F une File d’entiers. Écrire une fonction qui retourne la valeur maximale des éléments de
la file sans utiliser les tableaux et en conservant la file.

Exercice 2 : (11 points)


L’objectif de ce problème est de représenter un polynôme à coefficient réels par une lise
chainée simple chaque cellule est définie par la structure suivante :
struct monome{
float coef ;
int ex ;
struct monome *next ;
} ;
typedef struct monome Monome ;

Un polynôme P est une liste simplement chainée d’éléments de type monôme dont l’adresse
du premier élément est dans P.
Exemple : Le polynôme 𝑃 = 3𝑥 < + 𝑥 > − 2𝑥 + 4 sera représenté par une liste chainée comme
suit :

3 1 -2 4
7 6 1 0
next next next next NULL

1. Écrire une fonction Monome * saisirPolynome() qui permet de créer et de saisir les
éléments d’un polynôme, puis retourne la liste (l’adresse (pointeur) du premier
élément de la liste ). La saisie s’arrête à la saisie d’un exposant négatif.
2. Écrire une fonction void affichePolynome(Monome *P) qui affiche le polynôme P.
3. Écrire une fonction d’entête float evaluer(Monome *P, float x) qui renvoie la valeur
du polynôme P pour la valeur x.
4. Écrire une fonction Monome * derivePolynome(Monome *P) qui renvoie le polynôme
dérivé de P.

Page 1 sur 2
2 AP 2018/2019

5. Écrire une fonction Monome * additionPolynome(Monome *P, Monome * Q) qui


renvoie la somme des deux polynômes P et Q.
6. Écrire une fonction Monome * produitPolynomeMonome(Monome * P , Monome *
m) qui renvoie le produit du polynôme P par le monome m.
7. Écrire une fonction void produitPolynomes(Monome *P, Monome *Q) qui renvoie le
polynôme résultat de la multiplication du polynôme P par le polynôme Q ( penser à
utiliser les deux dernières fonctions)

Exercice 3 : (6 points)
1. Donner l’expression postfixée (polonaise) équivalente à l’expression infixée suivante :
(7*12) / (5+(6-3))
2. Quelle est la différence entre les piles et les files ?
3. Citer quelques avantages de l’utilisation des listes doublement chainées par rapport
aux listes simplement chainées.
4. Expliquer la démarche pour dépiler un élément d’une pile (sans donner le code source
de la fonction).
5. Que fait la fonction free ().
6. Répondre à une question que vous proposez et que vous voudriez avoir dans l’examen.

Bon courage.

Page 2 sur 2

Vous aimerez peut-être aussi