 |
STRUCTURES DE DONNEES |
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 connaît 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:
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. Une
(C et Java) est également disponible.
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.
*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.
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.
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.
BOOLEEN est le type booléen, il prend uniquement les valeurs VRAI ou
FAUX;
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.
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.
| |
| |
| Copyright (c) 1999-2016 - Bruno Bachelet - bruno@nawouak.net -
http://www.nawouak.net |
| La permission est accordée de copier, distribuer et/ou modifier ce document
sous les termes de la licence GNU Free Documentation License, Version 1.1 ou toute
version ultérieure publiée par la fondation Free Software Foundation. Voir
cette licence pour plus de détails (http://www.gnu.org). |
|
|
|