INTRODUCTION
Ce document est un résumé concernant les structures les plus classiques rencontrées en
informatique pour organiser des données. On suppose que le lecteur connait déjà les
tableaux et les enregistrements (exemple: record en Pascal, struct en C). Pour aborder
les différentes structures de données présentées ici, le lecteur devra également bien maîtriser
la notion de pointeurs et de gestion dynamique de la mémoire.
Les structures de données présentées ici sont:
les tableaux (arrays en anglais),
les listes chaînées (linked lists en anglais),
les piles (stacks en anglais),
les files (queues en anglais),
les arbres binaires (binary trees en anglais).
Pour chacune de ces structures de données, nous présentons avant tout différentes manières
de les modéliser. Ensuite, nous détaillons en langage algorithmique les principales opérations
qui peuvent être appliquées sur ces structures. Enfin, pour certaines d'entre elles, nous
développons quelques exemples d'utilisation.
NOTATIONS
Avant d'entrer dans les détails de chaque structure, nous introduisons ici quelques notations
qui seront utilisées tout au long de ce document. Elles permettront de formaliser les
modélisations proposées pour les différentes structures de données ainsi que les opérations
applicables sur ces structures.
Opérateurs
*p est le contenu pointé par p;
T * est le type pointeur sur un élément de type T;
&x est l'adresse de l'élément x;
x y affecte la valeur y à la variable x;
/* x */ signifie que x est un commentaire;
=, <=, <, !=, >, >= sont les opérateurs de test d'égalité, d'infériorité ou d'égalité,
d'infériorité, de différence, de supériorité et de supériorité ou d'égalité;
rendre x termine la fonction en cours et renvoie la valeur x à la fonction appelante;
x.y est le champ y dans la structure x;
x y est le champ y dans la structure pointée par x.
Déclarations
Fonction
On définit une fonction de la manière suivante.
fonction TR f(TX x, TY y):
...
fin fonction;
Dans cet exemple, f a deux paramètres, x de type TX et y de type TY, et renvoie un élément
de type TR.
Type
On déclare un nouveau type de donnée de la manière suivante.
type TX: TY *;
Dans cet exemple, le type TX est défini comme étant un pointeur sur un élément de type TY.
Enregistrement / Structure
On définit un enregistrement, appelé aussi une structure ici, de la manière suivante.
structure S:
TX x;
TY y;
fin structure;
Dans cet exemple, la structure s est composée de deux champs: x de type TX et y de type
TY.
Types et constantes
BOOLEEN est le type booléen, il prend uniquement les valeurs VRAI ou FAUX;
Déclarations
Types et constantes
Informatique / Structures de donnees / Presentation (French) 2 de 3
ENTIER est le type nombre entier;
ELEMENT est le type des éléments stockés dans une structure de données;
NIL est une constante symbolique, un pointeur qui a cette valeur est un pointeur qui
pointe sur rien du tout.
Instructions
T * ALLOUER(T, ENTIER n) est une instruction qui alloue un espace mémoire
pouvant contenir n éléments de type T. Si l'allocation est possible, la fonction retourne
l'adresse de l'espace alloué. Dans le cas contraire, la valeur NIL est retournée,
indiquant que l'allocation a échouée.
LIBERER(T * p) est une instruction qui libére l'espace mémoire pointé par p. Cet
espace doit avoir été alloué auparavant avec l'instruction ALLOUER.