Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Objectifs du cours
Capocchi Laurent
capocchi@univ-corse.fr
http://spe.univ-corse.fr/capocchiweb
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Arbre : ensemble de points : les nœuds, connectés par Collection hiérarchique d'objets
un ensemble de lignes : les arcs Structure homogène dont chaque élément (noeud)
Arbre : Très utilisé en informatique quand l’information contient de l'information et plusieurs liens (pointeurs)
possède une structure hiérarchique ou imbriquée vers des éléments du même type
arcs
nœuds
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Structure récursive non-linéaire Structure récursive non-linéaire
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
b c
Représentation chaînée : par pointeurs
A B a e e 1
a g 1
a g 2 3 4
g
b c
b c
a e f 5 6 7 8
d
g 2 ... 9 10
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres Utilisation des arbres
Une des structures les plus importantes et des plus 1/ Représentation et manipulation d’expressions
spécifiques de l’informatique arithmétiques : Arbres Syntaxiques
a b
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Utilisation des arbres Utilisation des arbres
4/ Classements 5/ Grammaire
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres: Terminologie Les arbres: Terminologie
0 1
1 2 3 4
Degré = 3 2 5 6 7 8
Taille = 16 3 9 10
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres: Longueur de cheminement Les arbres: N-aires
La longueur de chemin (ou de cheminement) d'un arbre Arbre N-aire : tout nœud possède N sous-arbres (vides ou
non), N fixé
Somme des longueurs de chemin de ses nœuds
La longueur de cheminement interne Une liste est donc un arbre unaire
Somme des longueurs de cheminement de ses nœuds Arbre N-aire complet : tout nœud interne possède N
non terminaux enfants
La longueur de cheminement externe
1
Somme des longueurs de cheminement de ses feuilles 1
Arbre dégénéré ou filiforme 2 3 4
2 3 4
Arbre dont chaque nœud a au plus un fils 5 6 7 8
5 11 6 12 7 13 14 8 15
9 10
9 16 10
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres: Binarisation Les arbres binaires
Tout arbre général est représentable sous la forme d’un Définition récursive
arbre binaire
Un arbre vide
La binarisation transforme le 1er fils d’un arbre général Un nœud racine uniquement
en fils gauche et tout n ième fils (n>1) en fils droit du n-1
ième
fils Un nœud racine qui possède une valeur et qui est lié à 0,
1 ou 2 sous-arbres éventuellement vides
Sous Sous
arbre g arbre d
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Type arbre volet sémantique axiomes: lien entre les Trois types
fonctions, défini le comportement de chaque fonction de type des informations stockées aux nœuds : Élément
base (primitives)
type des nœuds : Nœud
type des arbres binaires : t_Arbre
Variable o : nœud ; a1,a2 : arbre;
Implémentation
racine (créerArbre(o,a1,a2)) : o
Les fils d’un nœud sont des arbres
filsGauche (créerArbre(o,a1,a2 )) : a1
Définition récursive des arbres et des méthodes sur
filsDroit (créerArbre(o,a1,a2)) : a2 les arbres
On pourrait identifier un arbre avec l’adresse de sa
racine (Type TarbreBinaire = Noeud)
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Implémentation Représentation d’un arbre
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Caractéristique des arbres Parcours d’arbre
Une des caractéristiques des listes est de permettre un Parcourir un arbre c’est examiner tous ses nœuds selon
traitement une fois et une seule des éléments une certaine règle pour effectuer un certain traitement
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Parcours Infixe Parcours Infixe
a = (b + (c * d))
Notation infixée et ambiguë : gestion des parenthèse
2ème passage
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
c d
1er passage Notation préfixée : notation polonaise
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Parcours Postfixe Parcours Postfixe
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
On part de la racine et on énumère l'ensemble de ses Un ABR est une structure de donnée
descendants directs offrant une recherche en O(log n)
permettant de faire des ajouts et des suppressions en
Puis on réitère le processus sur les descendants eux-
O(log n)
mêmes
On effectue ainsi un parcours « de gauche à droite et de
haut en bas » Un ABR est un arbre binaire tel que pour tout nœud
1 les éléments de tous les nœuds du sous-arbre gauche
sont inférieurs à l'élément du nœud,
2 3 4 les éléments de tous les nœuds du sous-arbre droit sont
supérieurs à l'élément du nœud
5 6 7 8
Arbre non vide A = (r, A1, A2, …, Ak) Supposition : un ABR ne peut pas contenir deux éléments
nœuds de niveau 0, 1, 2, ... 9 10 ayant la même valeur
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Remarque: Pour une suite d'éléments, il existe plusieurs
arbres binaires de recherche
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Arbre Binaire de Recherche : ABR Arbre Binaire de Recherche : ABR
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Arbre Binaire de Recherche : ABR Conclusion
Réorganiser l'arbre pour un nœud qui a deux fils Arbre binaire de recherche = bon compromis entre
tableaux et listes chaînées
remplacer le nœud contenant l'élément à supprimer par
celui qui lui est immédiatement soit inférieur, soit Tableaux
supérieur
Accès direct à partir de l’indice
Insertion et suppression sont des opérations coûteuses
Listes chaînées
Accès direct impossible
Insertion et suppression facile
Arbre binaire de recherche
Accès "relativement" rapide
Ajout et suppression "relativement" rapides.
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Bibliographie et Webographie