Structures de données
Jean-François Berdjugin IUT 1, département SRC
Grenoble
Définition
• une structure de données est une structure logique destinée à contenir des données, afin de leur donner une organisation permettant de simplifier leur traitement.
• Plusieurs formes
– Finies – Indexées
– Séquentielles – Récursives
Iceberg
Public
Private
Fonctionnalités (interface)
Implémentation
Plusieurs types de tableaux
• Tableau à une dimension
• Tableau à plusieurs dimensions
• Tableau indicés
• Tableau associatifs
val1 val2 val3 val4 tab0
0 1 2 3
val1 val2 val3 val4 tab1
clé1 clé2 clé3 clé4
tab2
Tableaux en java
• De longueur fixe
• Déclaration d’un tableau à une dimension : Type[] nom
• Instanciation : nom = new Type[taille]
• Accédé par un indice (tab[i])
‘S’ ‘A’ ‘L’ ‘U’ ‘T’
0 tab
1 2 3 4
char[] tab;
tab = new char[5];
tab[0]=‘S’;
tab[1]=‘A’;
…
Tableau
• Problème de la taille fixe => l’insertion et la suppression
S A L L U
0 1 2 3 4
tab
S A L ? U
0 1 2 3 4
tab
Insertion perte d’une valeur
Suppression que mettre dans la case
Liste chaînée
• Les éléments (cellules) sont rangés linéairement (séquentiellement)
• Accès par la tête
• Longueur variable (ensemble dynamique)
• Élément de base la cellule :
– Un contenu
– Une référence vers une autre cellule
S A L
Tête Queue
Cellule
Liste chaînée
• Création d’une liste vide
• Insertion en tête
• Insertion en queue
• Insertion dans la liste
?
X
X S
X S A
Liste chaînée
• Insertion dans la liste
?
• Ne pas perdre les références
X S A
X S A
I
X S A
I
X S A
I
Liste doublement chaînée
• Chaque cellule est définie par :
– Un contenue
– Une référence vers la cellule suivante – Une référence vers la cellule précédente
S L U
Liste doublement chaînée Insertion ?
S L U
Liste doublement chaînée Insertion ?
S L U
A
S L U
A
Liste doublement chaînée Insertion ?
S L U
A
S L U
A
Pile
• Last In / First Out (LIFO)
• Deux méthodes
– Push (empiler) – Pop (Dépiler)
• Rem : une pile peut- être implémentée en utilisant un tableau ou une liste.
push(val) pop()
Files
• First In/ First Out
• Deux méthodes
– Enfiler – Défiler
• Implémentation ?
5 4 3 2 1
enfiler(val) defiler()
Arbre
• Ensemble dynamique
• Accès rapide aux éléments
• Arbre composé de Nœuds
– Contenus – Fils
• Arbre binaires (2 fils) :
– Entier : 0 ou de fils
– Parfait toutes les feuilles sont à la même distance de la racine
• Implémentation ?
Racine
Noeud Noeud
Feuille Feuille Feuille Noeud
Feuille
Feuille
Graphes
• L’ensemble de arbres est inclus dans celui
des graphes Londres
Paris Berlin
Lyon Bermud
es
Implémentation File
• Liste chaînée
• Tableau (si file bornée)
• Tampon circulaire (si file bornée)
5
4 3
2 1