Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 1

Université Moulay ismail 2022/2023

ENSAM-Meknèes 2ème année


Programmation avancée en C++
TD 02 Liste chaînée
Exercice 1 : Gestion des nombres
1. Créez une structure composée d’un nombre N de type entier et un pointeur vers la même structure
nommé ListeEntier.
2. Ecrire une fonction ajouterDebut( ListeEntier * debut, int c) qui permet d’ajouter le nombre c à la
liste des entier.
3. Ecrire une fonction ajouterFin (ListeEntier * debut, int c) qui permet d’ajouter le nombre c à la liste
des entiers.
4. Donner une fonction qui permet de créer une liste chaînée ListeChiffre des chiffres d’un nombre
entier N (convertir un nombre entier N vers une liste chaînée des chiffres qui le compose).
Par exemple le nombre N= 1234 est composé des chiffres 1 → 2 → 3 → 4.
ListeChiffre * nombreToListe(int N)
5. Donner une fonction qui calcule la moyenne de la liste des chiffres.
6. Donner une fonction qui permet de supprimer un chiffre au début de la liste.
int supprimer (listeChiffre* tete)
7. Ecrire une fonction qui permet de tester si un nombre n est premier ou non.
bool premier (int n)
8. Donner une fonction qui permet de supprimer tous les nombres premiers de la liste ListeEntier
listeChiffre* suppAllprim(listeChiffre*tete)
9. Ecrire une fonction qui permet de renverser les éléments d’une liste.
10. Ecrire une fonction qui permet de tester si un nombre n est palindrome ou non.
11. Ajouter un programme main qui permet d’initialiser la liste et programmer les appels des fonctions
avec un menu.

Exercice 2 : Gestion d’une liste de produit


Créer une structure produit identifiée par : une référence (int) , un nom (tableau de 30 caractères), un prix
d‘achat et un prix de vente de type réels et une variable suivant de type pointeur sur la structure produit.
1. Une fonction initPrduit qui permet d’initialiser et retourner un nouveau produit
porduit* initProduit( int ref, char nom[], float pAchat, float pVente)
2. Rechercher un produit par référence.
bool rechercher_produit(produit*list, int ref)
3. Ajouter une fonction qui permet de tester si un produit existe ou non dans la liste des produits
(référence doivent être unique)
bool existe( produit* list, produit * prod)
4. Ajouter un produit en tête de liste si la référence de ce produit n’existe pas déjà dans la liste. La
référence est unique dans la liste (clé primaire).
porduit* ajouterDebut(produit* list, produit* prod)
5. Ajouter un produit en fin de liste. La référence est une clé primaire.
produit* ajouter-fin(produit*list)
6. Afficher tous les produits de la liste.
void afficher_tout(produit*list)
7. Supprimer un produit de la liste sachant sa référence.
produit* supprimer(produit* list, int red)
8. Calculer le nombre d’occurrences d’un nom de produit. Càd, rechercher le nombre de produits qui
partagent le même nom.
int* nb_occurrences(produit*list, char nom[])
9. Ecrire le programme principal qui appelle les fonctions précédentes via un menu.

Ch02 : Listes chaînées 1 B.BAKKAS

Vous aimerez peut-être aussi