Algorithmique Les arbres
Algorithme. Entrée : un entier positif ou nul n. Sortie : une liste d'arbres res <- listeVide() si n = 0 alors ajoute(res arbreVide()) retourner res.
Arbres binaires de recherche [br] Algorithmique
Introduction. Un arbre binaire de recherche est une structure de donnée qui permet de représen- ter un ensemble de valeurs si l'on dispose d'une relation
Structures de données et algorithmes
Ici A est la racine. ? Les nœuds qui ne possèdent pas de fils sont appelés feuille de l'arbre. Les feuilles de l'
Cours 4 et 5 Les arbres 1. Introduction 1.1. Définition Larbre est une
IUT De Villetaneuse. Année 2004-2005. Dépt informatique. 2éme Année. F. Lévy - Algorithmique avancée. Page 1/17. Cours 4 et 5. Cours 4 et 5. Les arbres. 1.
Arbres - Algorithmique 1
Arbres : définition 1. Un arbre est un ensemble organisé de noeuds : ? chaque noeud a un père et un seul. ? excepté un noeud
Cours Algorithmique avancée (WI)
? Un arbre binaire est un arbre où chaque nœud est connecté à deux sous-arbres. (un sous-arbre gauche et un sous arbre droit). ?C'est un arbre de degré 2 c'
INF601 : Algorithme et Structure de données - Cours 2 : TDA Arbre
Feb 27 2010 INF601 : Algorithme et Structure de données. Introduction. Arbres Binaires. Définition informelle. Dans un arbre binaire tout noeud a au ...
Arbres pour lalgorithmique
Dec 12 2018 arbres en analyse d'algorithmes. Prérequis. Une familiarité avec les outils mathématiques de base (niveau L2) est sou- haitable.
Algorithmes et structures de données : TD 1 Corrigé - Arbres binaires
Par contre cet arbre est ni parfait ni dégénéré. 4. Afficher cet arbre binaire de la mani`ere préfix
Parcours dun arbre binaire
En-dessous : infixe. 2 Algorithmes récursifs. Pour chacun des parcours définis ci-dessus (postfixe infixe
INF601 : Algorithme et Structure de données
Cours 2 : TDA Arbre Binaire
B. Jacob
IC2/LIUM
27 février 2010
INF601 : Algorithme et Structure de données
Plan1Introduction
2Primitives du TDA Arbin
3Réalisations du TDA Arbin
par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)Réalisation des Arbres parfaits
4Recherche d"un élément
5Adjonction d"un élément
Adjonction aux feuilles
Adjonction à la racine
6Suppression d"un élément
7Conclusion sur les arbres
INF601 : Algorithme et Structure de données
IntroductionPlan
1Introduction
INF601 : Algorithme et Structure de données
IntroductionMéthodes arborescentes
Cours précédent
si ensemble d"éléments sont dans un TDA Liste triée!recherche d"un élément enlog(n)comparaisonsProblème: rep résentationcontiguë (liste) mal adaptée lo rsque
l"ensemble évolue dynamiquement !adjonction et suppression peuvent être enO(n)Solution: p ourque les 3 op érations recherche adjonction suppression soient efficaces!structures arborescentesINF601 : Algorithme et Structure de données
IntroductionMéthodes arborescentes
Elles reposent sur
1une comparaison avec la valeur d"un noeud
2"l"aiguillage" de la poursuite de la recherche dans un
sous-arbre en fonction du résultat de la comparaison La structure fondamentale des méthodes arborescentes !celle de l"arbre binaire de rechercheINF601 : Algorithme et Structure de données
IntroductionDéfinitions informelle
Définition informelle
un arbre = ensemble de sommets tel que :9un sommet unique appelé racinerqui n"a pas de supérieurTous les autres sommets sont atteints à partir derpar une
branche uniqueDéfinition récursive (et constructive) un arbre = une racinerune liste d"arbres disjointsA1;:::;An(sous-arbres) Un sommet de l"arbre est la racine d"un sous-arbreINF601 : Algorithme et Structure de données
IntroductionTerminologie
père d"un sommet : le p rédécesseurd"un sommet fils d"un sommet : les successeurs d"un sommet frères : des sommets qui ont le même p ère noeud = sommet racine : no eudsans p ère feuille : no eudsans fils branche : chemin entre 2 no eudsINF601 : Algorithme et Structure de données
IntroductionMesures sur les arbres
Niveau (profondeur) d"un noeud
: la longueur de la b ranche depuis la racineHauteur d"un noeud: la longueur de la plus longue b ranchede ce noeud jusqu"à une feuilleHauteur d"un arbre: la hauteur de la racineTaille d"un arbre
: nomb rede s essommetsINF601 : Algorithme et Structure de données
IntroductionArbres Binaires
Définition informelle
Dans un arbre binaire tout noeud a au plus deux fils Un arbre binaire possède exactement deux sous-arbres (éventuellement vides)Définition récursive (et constructive)Un arbre binaire est
Soit vide
Soit composé
d"une racinerde 2 sous arbres binaires ABG et ABD disjointsABG : sous Arbre Binaire Gauche
ABD : sous Arbre Binaire Droit
INF601 : Algorithme et Structure de données
IntroductionEléments dans un arbre binaire
Généralement dans un arbre binaire
noeud racine contient un élémentXdans ABG!noeudsXdans ABD!noeuds>XracineX sous-arbre Droit X sous-arbreGauche
XINF601 : Algorithme et Structure de données
IntroductionOrganisation d"un arbre binaireabcdegfINF601 : Algorithme et Structure de données
IntroductionOrganisation d"un arbre binaireabcdegfracinesous arbre Gauchesous arbre DroitINF601 : Algorithme et Structure de données
IntroductionOrganisation d"un arbre binaireabcdegfracineracineABGABGABDABDINF601 : Algorithme et Structure de données
IntroductionArbres binaires particuliers
Arbre binaire dégénéré, filiforme
: Chaque no eudp ossède exactement un fils !à éviterArbre binaire complet (uniforme): Chaque niveau est complètement rempli I.E. Tout sommet est soit une feuille au dernier niveau, soit possède exactement 2 fils !situation idéaleArbre binaire parfait (presque complet): T ousles niveaux sont complètement remplis sauf éventuellement le dernier et dansce cas les feuilles sont le plus à gauche possibleArbre binaire équilibré: La différence de hauteur entre 2 frères
ne peut dépasser 1INF601 : Algorithme et Structure de données
IntroductionArbres particuliers
Arbre Parfait!situation idéalewylbcdefutvagzx
INF601 : Algorithme et Structure de données
IntroductionArbres particuliers
Arbre dégénéré!Pire des situationswylzINF601 : Algorithme et Structure de données
IntroductionArbres particuliers
Arbre presque parfaitwylbcdefuag
INF601 : Algorithme et Structure de données
IntroductionArbres particuliers
Arbre équilibréwylzxbcdefu
INF601 : Algorithme et Structure de données
PrimitivesPlan
2Primitives du TDA Arbin
INF601 : Algorithme et Structure de données
PrimitivesDéfinitions des primitives
Utilise le TDA ELEMENT
Primitives :Création et destruction
Construction
Primitives de modification d"un arbre non vide
Accès aux caractéristiques des noeuds (aux éléments)INF601 : Algorithme et Structure de données
RéalisationPlan
3Réalisations du TDA Arbin
par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)Réalisation des Arbres parfaits
INF601 : Algorithme et Structure de données
Réalisation
par cellules chaînéesPlan3Réalisations du TDA Arbin
par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)Réalisation des Arbres parfaits
INF601 : Algorithme et Structure de données
Réalisation
par cellules chaînéesPointeurs sur ABG et ABD Un a rbre binaire est soit un pointeur sur le noeud racine (arbre non vide) le pointeur NULL (arbre vide) Un no eud est une structure à trois champs : Une étiquette (élément) le sous-arbre gauche le sous-arbre droitAvantages
: Définition récursive, simple à programmer, la plus utiliséeInconvénients
: consomme de la mémoire dynamiqueINF601 : Algorithme et Structure de données
Réalisation
par cellules chaînéesTraduction en C /Definition d "un noeud/ typedef structnoeud {ELEMENT etiq ;/Etiquette/
structnoeudag ,/ABG/ ad ;/ABD/ } NOEUD; /Definition d "un arbre = un pointeur sur son Noeud racine/ typedefNOEUDARBIN ; /l " arbre vide est le pointeur null/ #defineARBRE_VIDE NULLINF601 : Algorithme et Structure de données
Réalisation
par cellules chaînéesSchéma réalisation par pointeursacbdfARBINNOEUDetiqadagNULLINF601 : Algorithme et Structure de données
Réalisation
par cellules contiguësPlan3Réalisations du TDA Arbin
par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)Réalisation des Arbres parfaits
INF601 : Algorithme et Structure de données
Réalisation
par cellules contiguësPar tableau Un a rbre est une structure à deux champs :Un tableau où sont mémorisés les noeuds
Un entier qui donne l"indice de la racine dans le tableau Un no eud est une structure à 3 champs : L"étiquette du noeud Les indices de ses fils gauche et droit (ou 0 si pas de fils)Inconvénients
: Définition non récursive (arbre6=sous-arbre)Utilisée uniquement si on traite un arbre unique
INF601 : Algorithme et Structure de données
Réalisation
par cellules contiguësTraduction en C /Definition d "un noeud/ typedef structnoeud {ELEMENT etiq ;/Etiquette/
intfg ,/ABG/ fd ;/ABD/ } NOEUD; /Definition d "un arbre/ typedef struct{NOEUD tab [TAILLE_MAX] ;
intracine ; } rep ; typedefrepARBIN ;INF601 : Algorithme et Structure de données
Réalisation
par cellules contiguësSchéma réalisation par tableauabcdftabracine1234567842623000000
ARBINetiqfdfg
INF601 : Algorithme et Structure de données
Réalisation
par curseurs (faux pointeurs)Plan3Réalisations du TDA Arbin
par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)Réalisation des Arbres parfaits
INF601 : Algorithme et Structure de données
Réalisation
par curseurs (faux pointeurs)Simulation pointeurs sur ABG et ABD (même principe que les faux pointeurs dans le TDA Liste) Simulation de la mémoire : les noeuds sont dans un tableau en variable globaleUn arbre = indice de la racine (0 si vide)Un noeud est une structure à 3 champs
l"étiquette du noeud indice fils ABG (0 si vide) indice fils ABD (0 si vide)2 stratégies de gestion des cellules disponibles
1Chaîner entre elles les cellules disponibles
2Marquer les cellules libres et parcourir le tableau pour trouver
la 1re place libreINF601 : Algorithme et Structure de données
Réalisation
par curseurs (faux pointeurs)Schéma réalisation par faux pointeurs12345678MémoireA1A2abcdijk
0002300040006817
ARBINARBIN
INF601 : Algorithme et Structure de données
Réalisation
Réalisation des Arbres parfaitsPlan
3Réalisations du TDA Arbin
par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)Réalisation des Arbres parfaits
INF601 : Algorithme et Structure de données
Réalisation
Réalisation des Arbres parfaitsCas particuliers des arbre parfaits Solution efficace (accès + place mémoire) de réalisation d"un arbre parfaitAdeNétiquettes !un tableau avec :1 : indice de la racine deAT[i] étiquette du pèreT[2i] étiquette du fils gauche
T[2i+1] étiquette du fils droit
Attention
: inefficace si N"loin de"n2(siAn"est pas parfait)INF601 : Algorithme et Structure de données
Réalisation
Réalisation des Arbres parfaitsSchéma Arbre parfait avec tableau SiAest l"abre parfait suivant :abcdegfAlors la réalisation deAest le tableau :dbfcaef01234567
INF601 : Algorithme et Structure de données
RecherchePlan
4Recherche d"un élément
INF601 : Algorithme et Structure de données
RechercheParcours d"arbres binaires
Recherche d"un élément!parcours d"un arbre
Plusieurs types de parcours (selon application)Parcours en profondeur à main gauche (le + utilisé)
Parcours récursif général
Parcours particuliers (parcours préfixe, infixe, postfixe)Parcours en largeur (par niveaux)
INF601 : Algorithme et Structure de données
RechercheRecherche en profondeur à main gauche
chemin qui descend toujours le plus à gauche possible dans ce parcours chaque noeud est rencontré 3 fois 1 ierefois: à la descente à gauche dan sABG !on applique au noeud letraitement 1 2 iemefois: quan dABG a été pa rcouru,remontée pa rla gauche descente à gauche dans ABD !on applique au noeud letraitement 2 3 iemeet dernière fois: quand ABG et ABD ont été pa rcourus, en remontant à droite !on applique au noeud letraitement 3 si l"arbre estvide on lui applique un traitement app elé terminaisonINF601 : Algorithme et Structure de données
RechercheRécursif à main gauche
Parcours (ARBIN A)
Début
SIA e stv ide
A LORS
terminaison (A) SINON traitement1 (A)Parcours ( sousarbreGauche (A))
traitement2 (A)Parcours ( sousarbreDroit (A))
traitement3 (A) FSI FinINF601 : Algorithme et Structure de données
RechercheCas particuliers
Lorsque le noeud est traité une seule fois
Parcours préfixe
(Racine Gauche Droit) !le noeud racine est traité au premier passage avant le parcours des sous-arbresParcours infixeou symétrique (Gauche Racine Droit) !le noeud racine est traité au second passage après le parcours du sous-arbre gauche et avant le parcours du sous-arbre droitParcours postfixe(Gauche Droit Racine ) !le noeud racine est traité au dernier passage après le parcours des sous-arbresINF601 : Algorithme et Structure de données
RechercheParcours particuliers
Parcours préfixé R G D
!le noeud racine est traité au premier passage avant le parcours des sous-arbresParcours (ARBIN A)
Début
SIA e stv ide
A LORS
terminaison (A) SINON traitement (A)Parcours (ABG de A)
Parcours (ABD de A)
FSI FinINF601 : Algorithme et Structure de données
RechercheParcours particuliers
Parcours symétrique G R D
!le noeud racine est traité au second passage après le parcours du sous-arbre gauche et avant le parcours du sous-arbre droitParcours (ARBIN A)
Début
SIA e stv ide
A LORS
terminaison (A) SINONParcours (ABG de A)
traitement (A)Parcours (ABD de A)
FSI FinINF601 : Algorithme et Structure de données
RechercheParcours particuliers
Parcours postfixé G D R
!le noeud racine est traité au troisième passage après le parcours des sous-arbres gauche et droitParcours (ARBIN A)
Début
SIA e stv ide
A LORS
terminaison (A) SINONquotesdbs_dbs46.pdfusesText_46[PDF] les arbres rouges de maurice vlaminck
[PDF] les arenes de nimes
[PDF] les arguments de créon pour convaincre antigone
[PDF] les arguments de la dérive des continents
[PDF] lES ARGUMENTS DE WEGENER
[PDF] Les arguments envers les Incas-Espagnols
[PDF] les arguments et les exemples
[PDF] Les arméniens pendant la 1ere Guerre Mondiale
[PDF] Les Armes sont-elles nécessaire
[PDF] Les arrondis au centième et millimètre près
[PDF] les articles en espagnol pdf
[PDF] Les articles indefinis
[PDF] Les artificiers DM
[PDF] les artificiers sont cachés du public par un mur de hauteur 2m