Université Ibn Tofail Structures de Données
Faculté des Sciences Kénitra Filière : IA Semestre 3
Département d’Informatique A.U. 2024/2025
Série de Travaux Pratiques N°2 : Listes Chaînées
Ces exercices ont pour objectif de vérifier les points techniques suivants :
Manipulation de listes chaînées en C.
Allocation et libération dynamique de la mémoire.
Insertion, suppression et parcours d'une liste chaînée.
Gestion des structures imbriquées avec des pointeurs.
Prise en compte des cas particuliers (liste vide, suppression, etc.).
L’objectif de ce TP est de représenter un polynôme à coefficient réels par une liste chaînée de
monômes (noeuds de la liste) définis par la structure suivante :
typedef struct Monome * Polynome;
typedef struct Monome{
float coeff;
int puiss;
Polynome next;
}Monome;
Un polynôme P est une liste simplement chaînée de Monome dont l’adresse du premier
élément est dans P.
Exemple : Le polynôme P(x) = 3X7 + X6 – 2X + 4 sera représenté par la liste chainée
suivante :
1. Mise en place et structure
Question 1 : Expliquez l'utilité de la déclaration typedef struct Monome *
Polynome;. En quoi cela simplifie-t-il la représentation du polynôme ?
Question 2 : Écrivez une fonction Polynome creerMonome(float coeff, int
puiss) qui crée un nouveau monôme avec un coefficient et une puissance donnés, et
renvoie un pointeur vers ce monôme.
A. EL MAKRANI 1
Université Ibn Tofail Structures de Données
Faculté des Sciences Kénitra Filière : IA Semestre 3
Département d’Informatique A.U. 2024/2025
2. Opérations d'insertion
Question 3 : Écrivez une fonction void ajouterMonome(Polynome *P, float
coeff, int puiss) qui insère un monôme dans un polynôme (représenté sous forme
de liste chaînée) en respectant l'ordre décroissant des puissances.
Question 4 : Modifiez la fonction d'insertion pour combiner les monômes ayant la
même puissance (c'est-à-dire ajouter leurs coefficients).
3. Affichage et parcours
Question 5 : Écrivez une fonction void afficherPolynome(Polynome P) qui
parcourt la liste chaînée et affiche le polynôme en notation mathématique standard
(par exemple, 3X2+2X−5 ).
Question 6 : Comment gérez-vous l'affichage des polynômes contenant des termes
avec des coefficients nuls ou lorsque tous les termes sont nuls ?
4. Opérations sur les polynômes
Question 7 : Écrivez une fonction Polynome additionnerPolynomes(Polynome
P1, Polynome P2) qui prend deux polynômes et renvoie un nouveau polynôme
représentant leur somme.
Question 8 : Écrivez une fonction Polynome multiplierPolynomes(Polynome P1,
Polynome P2) qui multiplie deux polynômes et renvoie le polynôme résultant.
5. Fonctions spéciales et cas particuliers
Question 9 : Écrivez une fonction int degrePolynome(Polynome P) qui renvoie le
degré du polynôme (c'est-à-dire la plus grande puissance du polynôme).
Question 10 : Comment implémenteriez-vous une fonction Polynome
deriveePolynome(Polynome P) qui renvoie la dérivée du polynôme ?
A. EL MAKRANI 2