EMI/Dept Informatique/ A. HASBI 1
Structures de données
Prologue :
Une structure de données est une suite
de données regroupées ensemble.
Il y a plusieurs types de structures de
données (tableaux, structures, fichiers,
arbres, listes, …).
Un programme est une suite finie et
ordonnée d’instructions, qui à partir d’un
nombre d’entrées fournissent un nombre
de résultats en sortie.
Entrées/Sorties = données ou structures
de données.
Instructions = instructions simples ou des
structures de contrôles.
Programme
=
structures de contrôle (partie active ou
dynamique du programme)
+
structures de données (partie passive ou
statique du programme).
EMI/Dept Informatique/ A. HASBI 2
Rappel
Types scalaires prédéfinis :
Entiers (caractères, booléens), Réels,
Structures de contrôle :
séquence
Instructions de choix : If, Switch
Instructions de répétition :For, While, Do
Structures de données :
chaînes de caractères, tableaux.
PLAN
Les enregistrements
Les tableaux d’enregistrements
Les fichiers
La récursivité
Les Piles
Les Files
Les Listes chaînées
Les Arbres
Les Graphes
EMI/Dept Informatique/ A. HASBI 3
ENREGISTREMENTS
Définition : Un enregistrement (structure en C) est une
structure de données hétérogène (éléments de types
différents) : c’est donc un ensemble d’entités
hétérogènes mais liées logiquement les unes aux
autres.
Déclaration d’une structure :
struct Enreg {
int matricule, quantité ;
float prix ;
} ;
ceci permet de déclarer un modèle de structure mais
ne réserve pas de variable correspondant à cette
structure.
Ce modèle s’appelle Enreg et il contient le type et le
nom de chacun des champs constituant la structure
(matricule, quantité, prix).
Exemple :
struct Enreg art1 ;
Réserve un emplacement nommé art1 de type Enreg.
ou bien :
struct Enreg art1, art2 ;
Autre façon de faire (peu recommandée) :
struct Enreg {
int matricule, quantité ;
float prix ;
} art1, art2 ;
Remarque : On peut omettre le nom du modèle
(Enreg) à condition de ne pas avoir à déclarer d’autres
variables de ce type.
EMI/Dept Informatique/ A. HASBI 4
Utilisation d’une structure
Une structure peut être manipulée :
individuellement sur chacun des champs
ou globalement sur l’ensemble de la structure.
Accès aux champs de la structure :
art1.matricule = 15 ;
art1.matricule + + ;
printf (“%f“, art1.prix);
scanf (“%f“, &art2.prix);
Rq : Le « .» est + prioritaire que les autres
opérateurs (pas besoin des parenthèses).
Affectation globale :
art1 = art2 ; équivalent :
art1.matricule = art2. matricule ;
art1.qte = art2.qte ;
art1.prix = art2.prix ;
Attention : Ceci si art1 et art2 sont déclarés suivant
le modèle Enreg précédent (même identificateur
de type). Mais, si les enregistrements sont les
mêmes mais ayant des noms différents,
l’affectation est fausse.
Initialisation :
struct Enreg art1 = {100, 285, 2000} ;
Rq : On peut omettre certaines valeurs.
EMI/Dept Informatique/ A. HASBI 5
Simplification de la déclaration
avec Typedef.
typedef permet de déclarer des types synonymes.
Exemple 1 :
typedef int entier ;
entier a, b ;
équivalent à :
int a, b;
Exemple 2 :
typedef int * ptr ;
ptr p1; (éq. int *p1;)
Cas de structures :
struct enreg {
int matricule, qte ;
float prix ;
} ;
typedef struct enreg s_enreg ;
s_enreg art1, art2 ;
ou bien plus simplement :
typedef {
int matricule, qte ;
float prix;
} s_energ;
s_enreg art1, art2;
Exercice: somme et produit de deux complexes.
1 / 91 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !