- 1 -
Structure de données
Professeur
Christophe PICARD
Adresse Internet : [email protected]
Sommaire de l’Unité de Valeur
I) Introduction : P4
A) Complexité d’un algorithme :
B) Comparaison de complexité pour algo de tri pour une liste de N éléments :
a) Tri par dichotomie
b) Recherche d’un élément parmi N :
C) Loi de HOFSTADTER : P5
II) Structures séquentielles :
A) Liste linéaire :
a) Définitions :
b) Parcours d’un vecteur : P6
1 Parcours simple :
2 Parcours inversé :
c) Nombre d’occurrences : P7
d) Algorithme de dichotomie:
e) Palindrome en récursif
B) Exercice : P8
C) Notion d’accès associatif :
a) Simple :
b) Parcours « Droite-Gauche » : P9
D) Factoriel :
E) Type Liste contiguë (voir prog. ADA) :
F) Algorithme de Mise A Jour d’un vecteur ┐ trié : P10
a) Insertion d’une valeur dans un vecteur trié :
1 Recherche de position :
2 Insertion : P11
(a) Procédure “inserPlace” (utilisée au dessus) :
III) Une alternative : les listes chaînées : P12
A) Définitions :
a) Liste linéaire chaînée : P13
B) Algorithme de création d’une liste chaînée : P14
C) Passage représentation Vecteur à liste chaînée : P15
D) Liste chaînée circulaire :
E) Liste doublement chaînée :
F) Parcours d’une liste chaînée : P16
a) Parcours gauche droite récursif :
b) Parcours Droite Gauche récursif :
c) Parcours itératif Gche-Dte : P17
G) Création de liste :
H) Longueur d’une liste P18
I) Occurrences d’une valeur dans un tableau chaîné:
- 2 -
J) Comparaison de 2 listes: P19
K) Mise à jour dans une liste
IV) Structures linéaires particulières : P23
A) Structure de pile :
B) Gestion de file :
V) Le Hachage : P24
A) Introduction :
B) finitions :
C) Exercice : P26
D) Exemple de fonction de Hachage : P28
VI) Structures Arborescentes : P29
A) Introduction :
a) Terminologie :
b) Définitions : P30
B) Arbre binaire complet : P31
C) Hauteur d’un nœud:
D) Le facteur d’équilibre :
E) Arbre dégénéré : P32
F) Arbre binaire ordonné :
G) Parcours d’un arbre binaire : P33
a) Parcours préfixé (Pré-ordre) :
b) Parcours infixé :
c) Parcours post fixé (ordre terminal) :
d) Algorithmes des différents parcours :
H) Nombre de feuilles d’un arbre binaire : P34
I) Vérifier qu’un arbre n’est pas dégénéré :
J) Représentation d’une expression arithmétique sous forme d’une arborescence : P35
K) Insertion dans un arbre binaire ordonné : P37
a) Explication de l’algorithme :
b) Application : Tri d’un vecteur P38
L) +++Suppression d’un élément dans un arbre binaire ordonné : P39
M) Représentation contiguë des arbres : P40
N) Linéarisation d’un arbre binaire complet : P42
O) Algorithme de Tri :
a) Tri à bulle :
b) Tri par la méthode du TAS (HEAP Sort) : P43
1 Définition d’un TAS :
2 Construire un TAS P44
3 Transformer en TAS
P) Arbre n-aire, Forêt : P45
a) Définition :
b) Représentation d’une forêt : P46
1 Représentation contiguë
2 Représentation chaînée : P47
Q) Transformation du schéma récursif du parcours préfixé en schéma itératif P49
a) Notation parenthésée :
b) Trace de l’algorithme :
c) Première transformation
d) Application à la procédure P51
e) Deuxième transformation P52
Adresses utiles : (GNAT) //deptinfo.cnam.fr/Enseignement/CycleProbatoireVari/installerGnat.html
(Cours) // deptinfo.cnam.fr/Enseignement/CycleA/SD/cours
- 3 -
Programme du cours :
- Rappel sur la récursivité
- Structures séquentielles : - listes linéaires
- listes chaînées
- piles
- files
- Hachage
- Structures arborescentes - arbres
- TAS
- B-arbres
- arbres AVL
Devoirs
Devoir à rendre sur les listes contiguës pour le 19 décembre 2001.
Devoir à rendre sur le hachage pour le 06 mars 2002.
Devoir sur table le 22 mai 2002.
Annexe
Voir sommaire de l’annexe en fin de documentation.
- 4 -
I) Introduction :
Structures de données :
Manière de stoker des données.
Organiser.
Traiter / Accéder.
A) Complexité d’un algorithme :
Complexité : Nombre moyen d’opérations effectuées lorsque l’on fait tourner un algorithme.
Noté : O(n)
B) Comparaison de complexité pour algo de tri pour une liste de N éléments :
a) Tri par dichotomie
Ex : Pour trouver un chiffre dans un tableau de N
valeurs la boucle tournera
Si 1024 éléT 10 trs = log 2 1024 1024=210.
Si 2048 éléT 11 trs.
La complexité est de log 2 N.
b) Recherche d’un élément parmi N :
N éléments nombre moyen de comparaisons :
N
kNN
K
N
111
1
Pour N important :
1
1
NN
 
22 1
1
1
1
1
1
NNN
N
K
N
N
k
O (
2
N
)
Conclusion : la recherche séquentielle est plus appropriée pour les petits tableaux,
la recherche dichotomique pour les grands tableaux.
Bonne complexité
N ou N/2, log2 N, N log2 N
Moyenne
N2, N3
Quasi inutilisable
2N
½
½
1
- 5 -
C) Loi de HOFSTADTER :
Il faut toujours plus de temps que prévu même en tenant compte de la loi de HOFSTADTER.
II) Structures séquentielles :
A) Liste linéaire :
a) Définitions :
Liste linéaire : Suite finie d’éléments repérés par leur rang dans la liste.
Inconvénient : on doit connaître à l’avance le nombre d’éléments.
Peut être une liste de valeurs numériques, caractères, structures…
Exemples de structures :
Type date = structure
Jour, Mois, Année : entier ;
Fin ;
Type Personne = structure
Nom : chaîne (20) ;
Adresse : chaîne (40) ;
Naissance : date ;
Marié : booléen ;
Nombre d’enfants : entier ;
Fin ;
Vecteur : noté V[i] avec i [1..n] ou [0..n-1]
V
V [1..4] = (‘C’, ‘N’, ‘A’, ‘M’)
V [2] = ‘N’
V [9] = défini
Non
Exemple : Type vecteur = tableau [1..Nmax] de t ;
Sous vecteur : On appelle sous vecteur du vecteur V [1..n] toute restructuration de V à
l’intervalle consécutif de [1..n].
Un sous vecteur est noté comme un vecteur.
Exemple : Sous vecteur V [2..4] = (‘N’,’A’,’M’)
A
1 / 53 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 !