UNIVERSITE CADI AYYAD Facult´e PolyDisciplinaire de Safi
Fili`ere SMI/SMA
2019−2020 Structures de Don´ees
TD1 / TP1 : Structure De Donn´ ees A distance
Exercice I : Liste et structures
On consid`ere les structures suivantes pour caract´eriser un ´etudiant : typedef strcut {int j ; int m ; int a;}date;
typedef struct { int CNE; char nom[25]; date ddn;} etudiant;}
tyepdef struct cellule { etudaint val;
struct cellule * suivant;}*ListeEtd;
Programmez les fonctions suivantes :
1. SaiseDate etAfficheDate pur saisir et afficher une date.
2. SaisieEtudiant etAfficheEtudiant pour saisir et afficher un ´etudiant.
3. AjouterEtduiantpour ajouter un ´etudiant `a la fin de la liste.
4. ChercherEtudiant pour chercher un ´etudiant.
5. SupprimerEtudiant pour supprimer un ´etudiant.
6. AfficheListeEtudiant pour afficher la liste des ´etudiant.
Exercice II : Manipulation d’un Ensemble d’entiers
Un ensemble math´ematique estun groupement d’objets distincts, appel´es ´el´ements de cet ensemble. La th´eorie des ensembles est l’´etude des propri´et´es et des op´erations sur des ensembles (appartenance, inclusion, r´eunion,?). Elle repr´esente une branche essentielle des math´ematiques.
Dans ce probl`eme on se propose de repr´esenter des ensembles finis d’entiers strictement positif par les listes chaˆın´ees d´efinies en langage C comme suit :
typedef struct ens{
int nombre ; //nombre entier strictement positif
struct ens *suivavnt ; // l’adresse de l’´el´ement suivant } *EnsembleListe;
Programmez les fonctions suivantes :
1. ´Ecrire une fonction InsereEnDebut qui ins`ere une valeur au d´ebut de l’ensemble.
2. ´Ecrire une fonction InsereEnFin qui ins`ere une valeur `a la fin de l’ensemble.
3. ´Ecrire une fonction SupprimerEltqui supprime un ´el´ement de l’ensemble.
4. ´Ecrire une fonction verifierEnsemblequi retourne 1 si les ´el´ements sont distincts et 0 sinon.
1 A. Bendarag
UNIVERSITE CADI AYYAD Facult´e PolyDisciplinaire de Safi
Fili`ere SMI/SMA
2019−2020 Structures de Don´ees
5. ´Ecrire une fonctionappartienEnsemblequi retourne 1 si un ´el´ement appartient `a un ensemble et 0 sinon.
6. ´Ecrire une fonction Inclusion.
7. ´Ecrire une fonction Union.
8. ´Ecrire une fonction Intersection.
Exercice III : Liste doublement chaˆın´ee
On dispose d’une liste doublement chaˆın´ee contenant des entiers class´es dans l’ordre d´ecroissant. La structure de donn´ees utilis´ee pour repr´esenter un ´el´ement de la chaˆıne est la suivante :
typedef struct cellule { int data;
struct cellule *svt;
struct cellule *prec;
} *PtrCell;
Vous devez programmer :
1. Une fonction Insertqui permet d’ins´erer un nouvel entier dans la liste en respectant le classement. Si cet entier est d´ej`a pr´esent dans la liste, la fonction renvoie un message d’erreur.
2. Une fonction Supprqui permet de rechercher et d’´eliminer un entier dans la liste. Si cet entier n’est pas dans la liste, la fonction renvoie un message d?erreur.
3. Une fonction Affichequi affiche les ´el´ements de la liste.
2 A. Bendarag