10' - LES ARBRES BINAIRES

Dimension: px
Commencer à balayer dès la page:

Download "10' - LES ARBRES BINAIRES"

Transcription

1 Ch 10' - LES ARBRES BINAIRES On va restreindre les capacités des arbres en obligeant les nœuds à posséder au maximum deux sous-arbres. Ces nouveaux arbres seront plus faciles à maîtriser que les arbres généralisés. 1 ) Définitions Un arbre binaire est : - soit - soit formé d'un élément(sa racine), d'un sous-arbre gauche qui est un arbre binaire et d'un sous-arbre droit qui est aussi un arbre binaire. Ce qui s'écrit formellement : arbre binaire = + arbre binaire élément arbre binaire. Le + représente ici un "ou" Dans un arbre binaire, un nœud a 0, 1 ou 2 successeurs (ou fils). Un arbre binaire non vide où chaque nœud a a obligatoirement 2 successeurs(ou fils) est dit binaire au sens strict. Sinon il est dit arbre binaire au sens large. Transformation d'un arbre quelconque en arbre binaire sans arbre droit : Il suffit de mettre le premier des fils comme racine du sous-arbre gauche et chacun des cadets comme racine du sous-arbre droit de son frère précédent. L'arbre généralisé suivant : devient alors : tout arbre généralisé se transforme en un unique arbre binaire sans sous-arbre droit et réciproquement Page 1

2 2 ) 6 Opérateurs minimaux pour manipuler la structure d'arbre binaire : ArbreVide : > Arbreb crée un arbre Construire : Element,Arbreb, Arbreb > Arbreb SousArbreGauche : Arbreb > Arbreb SousArbreDroit : Arbreb > Arbreb Racine : Arbreb > Element EstVide : Arbreb > booléen 3 ) Implémentation de cette structure de données en Pascal et en Caml On se place dans le cas d'un arbre binaire homogène (les étiquettes des noeuds et des feuilles sont du même type) En Turbo-Pascal Sous forme d'une liste chaînée à l'aide de pointeurs Type element = string ; (*changer si nécessaire le type de l'étiquette *) Arbreb = ^Nœud ; Nœud = record R : element ; SARG : Arbreb; SARD : Arbreb; End; Const ArbreVide = nil ; En Caml Type 'a arbrebin = vide nœud of 'a * ('a arbrebin) * ('a arbrebin);; 4 ) Fonctions de base en Turbo-Pascal function EstVide(A : Arbreb) : boolean ; EstVide := (A = nil ); end ; function racine(a: arbreb) : element; if A = nil then writeln('pas de racine car l'arbre est vide'); halt; else racine := A^. R function SousArbreGauche(A : Arbreb) : Arbreb; if A = nil then SousArbreGauche :=nil else SousArbreGauche := A^.SARG ; Page 2

3 function SousArbreDroit(A : Arbreb) : Arbreb; if A = nil then SousArbreDroit :=nil else SousArbreDroit := A^.SARD ; Les fonctions SousArbreGauche et SousArbreDroit ramènent des pointeurs vers le SARG de A et le SARD de A et sont utiles pour explorer les arbres. Si l'on veut traiter ces deux sousarbres il vaut mieux en faire une copie : function CopieArbre(A : Arbreb) : Arbreb; var NouveauA : Arbreb; If A = nil then NouveauA := nil else New(NouveauA) ; NouveauA^.R:=A^.R ; NouveauA^.SARG :=A^.SARG ; NouveauA^.SARD :=A^.SARD ; CopieArbre := NouveauA function Construire(root : element ; gauche : Arbreb ;droite : Arbreb) : Arbreb; var A : Arbreb; New(A) ; A^.R := root ; A^.SARG := gauche; A^.SARD := droite; Construire := A Ou les isoler par Procedure Casser( A : Arbreb ; var Racine : element ; var Gauche: Arbreb ; var Droite : Arbreb); if A = nil then write('l'' arbre est vide '); halt ; end else Racine := A ^. R; Gauche := A^. SARG; Droite := A^. SARD ; Dispose(A) End; Page 3

4 5 ) Fonctions de base en Caml let arbrevide b = ( b = vide);; Autre version let arbrevide = function vide -> true arbrebin - > false ;; let racine = function vide -> failwith("pas de racine") nœud(a,b,c) - > a ;; let sousarbregauche let sousarbredroit = function vide -> failwith("pas de sous arbre gauche") nœud(a,b,c) - > b ;; = function vide -> failwith("pas de sous arbre droit") nœud(a,b,c) - > c ;; Page 4

5 6 ) Calcul récursif du nombre de sommets (nœuds + feuilles) Algorithme fonction NbSommets(A:Arbreb) : entiernaturel; début si A est vide alors NbSommets := 0 sinon NbSommets := 1+NbSommets(SousArbreGauche(A))+NbSommets (SousArbreDroit(A)) fin; 7 ) Calcul récursif du nombre de feuilles Algorithme fonction Nbfeuilles(A:Arbreb) : entiernaturel; début si A est vide alors Nbfeuilles := 0 sinon si EstVide(SousArbreGauche(A)) et EstVide(SousArbreDroit(A)) alors NbFeuilles := 1 sinon NbFeuilles := NbFeuilles(SousArbreGauche(A)) + NbFeuilles(SousArbreDroit(A)) fin; 8 ) Relation entre le nombre de feuilles et le nombre de nœuds (non feuilles) dans le cas d'un arbre binaire strict Théorème : Si A est un arbre binaire au sens strict ayant N nœuds non feuilles alors A possède N + 1 feuilles. Démonstration par récurrence. A étant un arbre binaire strict alors A est non vide. Etape 1 :pour N = 1 la propriété est vraie car alors A a 1 seul nœud non feuille et comme A est binaire strict alors A a 2 feuilles qui sont les fils de ce noeud Etape 2 : Méthode 1 (récurrence forte) Supposons que cette propriété est vraie pour tout arbre binaire au sens strict possédant K nœuds avec 1 K < N. Soit A un arbre binaire ayant N nœuds non feuilles. A a deux sous-arbres A 1 et A 2 qui ont chacun K 1 et K 2 nœuds avec 1 K 1 < N et 1 K 2 < N Donc A 1 a K 1 +1 feuilles et A 2 a K feuilles Alors le nombre de feuilles de A = K K = K 1 + K = N + 1 car N = K 1 + K Conclusion : D'après étape 1 et étape 2, la propriété est vraie pour tout entier naturel non nul N. Page 5

6 Méthode 2 pour l'étape 2 Soit K un entier naturel non nul. Supposons que la propriété est vraie pour tout arbre binaire au sens strict ayant K nœuds non feuilles (et ayant donc K + 1 feuilles). Soit un arbre binaire ayant K + 1 nœuds non feuilles. On descend au bas de cet arbre : Soit le (K + 1)ème nœud non feuille. Il a donc 2 feuilles comme fils. On élimine provisoirement ces deux feuilles. Alors l'arbre devient : Ce (K + 1)ème nœud devient alors une feuille. L'arbre a alors K nœuds non feuilles donc K+1 feuilles. On rajoute les 2 feuilles et on perd cette feuille qui redevient nœud. le nombre de feuilles est donc K = K + 2 CQFD. Page 6

7 9 ) Taille d'un arbre a) définition : La taille d'un arbre est le nombre de ses éléments b) Exemples Taille 1 Taille 2 Taille 3 Taille 4 10 ) Niveau d'un nœud Définition Le niveau d'un nœud (qu il soit nœud interne c'est-à-dire non feuille ou nœud terminal c'est-àdire feuille) est le nombre de noeuds qu'il faut parcourir depuis la racine pour arriver à lui. Ce nœud n'est pas compris dans ce décompte. Niveau 0 Niveau 1 Niveau 2 Niveau 3 Page 7

8 11 ) Hauteur d'un arbre a) Notion de chemin de la racine à un élément de l'arbre Soit A un arbre de racine a 0. Soit a un élément de A On appelle chemin de la racine a 0 à l'élément a la suite (a 0, a 1, a 2,.., a p = a) de nœuds telle que pour tout i variant de 1 à p, a i est le fils de a i-1 On dit alors que p (qui est le nombre d'arêtes séparant a 0 et a) est la longueur du chemin. b) Notion de hauteur d'un arbre Définition 1 Par convention, la hauteur d'un arbre A vide est - 1 La hauteur d'un arbre A non vide est la plus grande longueur d'un chemin de la racine a 0 de A à une feuille f de A. On la note haut(a) C'est aussi le nombre maximum de nœuds (dont la racine a 0 ) entre a 0 et la feuille f (qui n'entre pas dans le décompte). C'est aussi le nombre maximum d'arêtes du chemin de a 0 à la feuille f Définition 2 (récursive) Si A est vide alors haut(a) = - 1 sinon (* l'arbre A a des sous arbres A 1, A 2, A 3,., A k *) Haut(A) = 1 + max 1 <= i <= k (haut(ai)) Calcul récursif de la hauteur d'un arbre binaire En Pascal function haut(a : arbre_binaire) : integer; If vide(a) then haut := - 1 else haut := 1 + max(haut(sarg(a)), haut(sard(a))) En Caml Page 8

9 Propriétés concernant l'encadrement de la hauteur d'un arbre binaire non Soit A un arbre binaire non vide de hauteur h ayant n nœuds internes(c'est-à-dire non feuilles) Bien entendu, comme nous sommes dans un arbre binaire et que ces noeuds ne sont pas des feuilles, alors chacun de ces nœuds a 1 ou 2 fils Alors P 1 : h n 2 h - 1 D'où P 2 : Démonstration de P 1 P 2 log 2 (n + 1) h n Supposons que P 1 est vraie donc h n 2 h - 1 donc h n Il reste à prouver que log 2 (n + 1) h. Comme n 2 h - 1 alors n h donc log 2( n + 1) log 2 (2 h ) donc log 2 (n + 1) h P 2 est donc démontrée. Démonstration de P 1 Ou bien A est réduit à une feuille alors h = 0 et n = 0. On a bien donc h n 2 h - 1 Ou bien A n'est pas réduit à une feuille A a donc n nœuds non feuilles et une hauteur h. Notons a 0 sa racine. - ou bien a 0 a une seule branche A1 Le sarg(a1) a une hauteur n - 1 et un nombre n - 1 de noeuds non feuilles Par hypothèse de récurrence on a : h -1 n h-1-1 D'où on en déduit que h n 2 h-1 Démonstration de (*) : Méthode 1 - Par récurrence Soit p(h) la propriété : " 2 h-1 2 h - 1 " Or 2 h-1 2 h - 1 car h 1 (*) donc h n 2 h - 1 CQFD. Etape 1 - p(1) est vraie Etape 2 - soit k 1 supposons que 2 k-1 2 k - 1 alors 2 * 2 k-1 2(2 k - 1 ) donc 2 k 2 k+1-2 donc 2 k 2 k+1-1 Etape 3 - D'après les étapes 1 et 2, on peut conclure que p(h) st vraie pour tout entier h 1 CQFD Méthode 2 (p): 2 h-1 2 h h - 2 h h-1 (2-1) 1 2 h-1 (q) or h 1 donc h donc 2 h donc 2 h-1 1 donc (q) vraie. Or ((p) (q)) est vraie donc (p) vraie CQFD Page 9

10 - ou bien a 0 a 2 branches A1 et A2 de hauteurs respectives h 1 et h 2, ayant pour nombre de nœuds non feuilles n 1 et n 2 Comme h 1 h - 1, h 2 h - 1, n 1 n - 1 et n 2 n - 1 Alors h 1 n 1 2 h1-1 h 2 n 2 2 h2-1 donc h 1 + h 2 n 1 + n 2 2 h1 + 2 h2-2 donc 1 + h 1 + h n 1 + n 2 2 h1 + 2 h2-1 on a donc 1 + h 1 + h 2 n 2 h1 + 2 h2-1 Or max(h 1 ; h 2 ) h 1 + h 2 donc h = 1 + max(h 1 ; h 2 ) 1 + h 1 + h 2 donc h n h 1 max(h 1 ; h 2 ) donc 2 h1 2 max(h1,h2) de même 2 h2 2 max(h1,h2) donc 2 h1 + 2 h2 2 max(h1,h2) + 2 max(h1,h2) = 2 2 max(h1,h2) = 2 max(h1,h2) + 1 n = 1 + n 1 + n h h2-1 = 2 h1 + 2 h2-1 2 max(h1,h2) donc n 2 h - 1. CQFD Page 10

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3 I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................

Plus en détail

Algorithmique IN102 TD 3

Algorithmique IN102 TD 3 Algorithmique IN10 TD 16 décembre 005 Exercice 1 Clairement, il existe des arbres de hauteur h à h + 1 éléments : il sut pour cela que leurs n uds internes aient au plus un ls non vide. On a alors un arbre

Plus en détail

Chap. VII : arbres binaires

Chap. VII : arbres binaires Chap. VII : arbres binaires 1. Introduction Arbre : collection d objets avec une structure hiérarchique Structure intrinsèque descendants d une personne (elle incluse) A ascendant connus d une personne

Plus en détail

Induction sur les arbres

Induction sur les arbres Induction sur les arbres Planning Motivations Comment définir les arbres? Équations récursives sur les arbres Complexité de fonctions sur les arbres Recherche dans un arbre binaire de recherche Recherche

Plus en détail

Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche

Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche N.E. Oussous oussous@lifl.fr FIL USTL SDC - Licence p.1/16 Arbres binaires de recherche Un arbre binaire T est un arbre binaire

Plus en détail

Arbres binaires de recherche (ABR) Binary Search Trees (BST)

Arbres binaires de recherche (ABR) Binary Search Trees (BST) LSVIII-BIM Algorithmie, 2015 Arbres binaires de recherche (ABR) Binary Search Trees (BST) I. Arbres binaires 1. Structure 2. Parcours II. Arbres binaires de recherche 1. Définition 2. Opérations sur les

Plus en détail

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN CHAPITRE 6 Arbres binaires Lycée Kléber MPSI, Option Info 2014/2015 1 Définitions 2 Parcours en largeur Parcours en profondeur Parcours préfixe, infixe, postfixe Reconstitution 3 Recherche Complexité Insertion

Plus en détail

Cours numéro 9 : arbres binaires et de recherche

Cours numéro 9 : arbres binaires et de recherche Cours numéro 9 : arbres binaires et de recherche LI213 Types et Structures de données Licence d Informatique Université Paris 6 Arbre Arbre Un arbre est un ensemble fini A d éléments, liés entre eux par

Plus en détail

Les arbres Florent Hivert

Les arbres Florent Hivert 1 de 1 Algorithmique Les arbres Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 1 Algorithmes et structures de données La plupart des bons algorithmes fonctionnent

Plus en détail

II arbres binaires de recherche

II arbres binaires de recherche I arbres binaires On définit un arbre binaire par : type arbin=^noeud; noeud=record filsg,filsd:arbin; cle:longint Un arbre binaire a peut être vide (si a=nil). Sinon il est formé d un noeud (a^) contenant

Plus en détail

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

Plus en détail

Option Informatique Arbres binaires équilibrés

Option Informatique Arbres binaires équilibrés Option Informatique Arbres binaires équilibrés Sujet novembre 2 Partie II : Algorithmique et programmation en CaML Cette partie doit être traitée par les étudiants qui ont utilisé le langage CaML dans

Plus en détail

Arbres binaires de recherche et arbres rouge noir

Arbres binaires de recherche et arbres rouge noir Institut Galilée lgo, rbres, Graphes I nnée 006-007 License rbres binaires de recherche et arbres rouge noir Rappels de cours et correction du TD rbres binaires de recherche : définitions Un arbre binaire

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Université Paris Diderot Paris 7. TD n 2. Arbres Binaire de Recherche

Université Paris Diderot Paris 7. TD n 2. Arbres Binaire de Recherche Université Paris Diderot Paris L Informatique Algorithmique Année 00-0, er semestre TD n Arbres Binaire de Recherche Le type de donné arbre" sera utilisé pour indiquer l ensemble de toutes les Arbres Binaires

Plus en détail

Travaux dirigés n o 6

Travaux dirigés n o 6 Travaux dirigés n o 6 Lycée Kléber MPSI, Option Info 2014/2015 Exercice 1 (Indexation d un arbre binaire) Ecrire une fonction Caml indexation : ( f, n) arbre_binaire -> (string,string) arbre_binaire qui

Plus en détail

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas 1. Arbres ordonnés 1.1. Arbres ordonnés (Arbres O) On considère des arbres dont les nœuds sont étiquetés sur un ensemble muni d'un

Plus en détail

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2 Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101 Danny Dubé Hiver 2014 Version : 11 avril Questions Travail pratique #2 Traduction orientée-syntaxe

Plus en détail

1 Définition. 2 Recherche dans un Arbre-B. 3 Insertion dans un Arbre-B. 4 Suppression dans un Arbre-B. Arbre-B

1 Définition. 2 Recherche dans un Arbre-B. 3 Insertion dans un Arbre-B. 4 Suppression dans un Arbre-B. Arbre-B Déition Recherche Arbre-B Insertion Arbre-B Suppression Arbre-B Déition Recherche Arbre-B Insertion Arbre-B Suppression Arbre-B Plan... Les arbres-b Géraldine Del Mondo, Nicolas Delestre 1 Déition 2 Recherche

Plus en détail

Arbres binaires Version prof Version prof

Arbres binaires Version prof Version prof Arbres binaires Version prof Version prof types /* déclaration du type t_element */ t_arbrebinaire = t_noeudbinaire t_noeudbinaire = enregistrement t_element cle t_arbrebinaire fg, fd n enregistrement

Plus en détail

Fiche de TD-TP no. 4

Fiche de TD-TP no. 4 Master 1 Informatique Programmation Fonctionnelle, p. 1 Fiche de TD-TP no. 4 Exercice 1. Voici trois façons différentes de définir le type Image : type Image = [[ Int ]] data Image = Image [[ Int ]] newtype

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

C12. Les structures arborescentes. Août 2006

C12. Les structures arborescentes. Août 2006 Les structures arborescentes Août 2006 Objectifs du C12 Connaître le principe de la structure d arbre binaire Connaître les détails d implémentation de la structure d arbre binaire de recherche Les structures

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

Plus en détail

Arbres bien équilibrés

Arbres bien équilibrés Arbres bien équilibrés ENSIIE : Programmation avancée 1/24 Recherche par dichotomie on aimerait avoir des opérations de recherche, d insertion et de suppression efficaces en moyenne et dans le pire des

Plus en détail

Cours d Algorithmique et Complexité

Cours d Algorithmique et Complexité Cours d Algorithmique et Complexité Structures de données (2e suite) Catalin Dima Arbres binaires de recherche Propriété de base des arbres binaires de recherche Soit x un noeud de l arbre. Alors : 1.

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée.

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée. A 2015 INFO. MP École des Ponts ParisTech, SUPAERO (ISAE), ENSTA ParisTech, Télécom ParisTech, Mines ParisTech, Mines de Saint-étienne, Mines Nancy, Télécom Bretagne, ENSAE ParisTech (filière MP), École

Plus en détail

Structures de données, IMA S6

Structures de données, IMA S6 Structures de données, IMA S6 Arbres Binaires d après un cours de N. Devésa, Polytech Lille. Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech

Plus en détail

Programmation fonctionnelle

Programmation fonctionnelle 1/30 Programmation fonctionnelle Notes de cours Cours 9 23 novembre 2011 Sylvain Conchon sylvain.conchon@lri.fr 2/30 Les notions abordées cette semaine Les foncteurs Set.Make et Map.Make d Ocaml Arbres

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

Plus en détail

Marches, permutations et arbres binaires aléatoires

Marches, permutations et arbres binaires aléatoires Marches, permutations et arbres binaires aléatoires Épreuve pratique d algorithmique et de programmation Concours commun des Écoles Normales Supérieures Durée de l épreuve: 4 heures Cœfficient: 4 Juillet

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 6 Arbres binaires de recherche 6.1 Introduction On a étudié le problème de la recherche dans une collection d éléments ordonnés entre eux : on a montré que Pour une liste contiguë, la recherche

Plus en détail

Arbres binaires et codage de Huffman

Arbres binaires et codage de Huffman MP Option Informatique Premier TP Caml Jeudi 8 octobre 2009 Arbres baires et codage de Huffman 1 Arbres baires Soit E un ensemble non vide. On défit la notion d arbre baire étiqueté (aux feuilles) par

Plus en détail

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr)

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr) Partie 3 Gilles Lebrun (gilles.lebrun@unicaen.fr) Les arbres binaires Définition : C est une structure arborescente ou hiérarchique ou récursive Chaque élément (nœud) constituant la structure de l arbre

Plus en détail

pedigree d'un cheval Zoe ; son père est Tonnerre et sa mère Belle ; mère de Belle est Rose et père de Belle est Eclair jean jean marc paul luc

pedigree d'un cheval Zoe ; son père est Tonnerre et sa mère Belle ; mère de Belle est Rose et père de Belle est Eclair jean jean marc paul luc Chap. 3 Les arbres binaires Un arbre est un ensemble de nœuds, organisés de façon hiérarchique, à partir d'un nœud distingué, appelé racine. La structure d'arbre est l'une des plus importantes et des plus

Plus en détail

Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1

Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1 Plan Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java Amphi 9 1 Structures d'arbre Les structures d'arbre permettent de réaliser des opérations dynamiques, telles que recherche, prédécesseur,

Plus en détail

Arbres Binaires de Recherche : Introduction

Arbres Binaires de Recherche : Introduction Arbres Binaires de Recherche : Introduction I. Guessarian cours ISN 11 janvier 2012 LIAFA, CNRS and University Paris Diderot 1/13 Arbre Binaire de Recherche Un Arbre Binaire de Recherche (ABR) est un arbre

Plus en détail

Programmation avancée en C

Programmation avancée en C Département Informatique Nom : Prénom : Année scolaire : 2007 2008 Date : 23 juin 2008 Module INF446 Session de juin Programmation avancée en C Contrôle de connaissance 1 de 45 minutes ÅERCI de répondre

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

TP 8 : Arbres binaires de recherche

TP 8 : Arbres binaires de recherche TP 8 : Arbres binaires de recherche Semaine du 17 Mars 2008 Exercice 1 Dénir une structure struct noeud_s permettant de coder un n ud d'un arbre binaire contenant une valeur entière. Ajouter des typedef

Plus en détail

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures)

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures) L2 - lgorithmique et structures de données (nnée 2010/2011) Delacourt, Phan Luong, Poupet xamen (2 heures) Les documents (cours, TD, TP) sont autorisés. Les quatre exercices sont indépendants. À la fin

Plus en détail

alg - Arbres binaires de recherche [br] Algorithmique

alg - Arbres binaires de recherche [br] Algorithmique alg - Arbres binaires de recherche [br] Algorithmique Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 25 avril 2015 Table des matières 1 Définition, Parcours, Représentation

Plus en détail

x n = x x n 1 Exercice 3 Le but de cet exercice est de modéliser les suites définies par récurrence de la façon suivante :

x n = x x n 1 Exercice 3 Le but de cet exercice est de modéliser les suites définies par récurrence de la façon suivante : Ocaml - Exercices Exercice Définir en Ocaml les fonctions suivantes:. f : x sin x + cos x. g : x x 3x+ x x 5 3. Fonction h calculant la moyenne géométrique de deux float positifs ( xy) Exercice Ecrire

Plus en détail

ALGORITHMIQUE II. Récurrence et Récursivité. SMI AlgoII

ALGORITHMIQUE II. Récurrence et Récursivité. SMI AlgoII ALGORITHMIQUE II Récurrence et Récursivité Récurrence Suite récurrente: la déition d une suite est la donnée d un terme général déi en fonction du (ou des) terme(s) précédant(s) D un terme initial qui

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

Plus en détail

TP 4 -Arbres Binaires -

TP 4 -Arbres Binaires - L3 Informatique Programmation fonctionnelle OCaml Année 2013/2014 TP 4 -Arbres Binaires - Un arbre binaire est une structure de données qui peut se représenter sous la forme d une hiérarchie dont chaque

Plus en détail

Les arbres binaires. Terminologie avancée (1) TAD arbre binaire. Terminologie avancée (2) Terminologie avancée (3)

Les arbres binaires. Terminologie avancée (1) TAD arbre binaire. Terminologie avancée (2) Terminologie avancée (3) Les arbres Structures les plus importantes et les plus utilisées en informatique Liste = cas dégénéré d arbre Eemples: Arbres généalogiques Arbres de classification Arbres d epression / - Traduction de

Plus en détail

Langages de spécification cours 4

Langages de spécification cours 4 Langages de spécification cours 4 Diagrammes de décision binaire(bdd) Catalin Dima Arbres de décision binaire Étant donnée une formule logique, on peut lui associer un arbre qui permet d évaluer la valeur

Plus en détail

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

Plus en détail

Initiation aux algorithmes des arbres binaires

Initiation aux algorithmes des arbres binaires Initiation aux algorithmes des arbres binaires Plan I. Les arbres biniaires I. Définition II. Représentation graphique d un arbre III. Terminologie IV. Représentation en mémoire des arbres binaires V.

Plus en détail

Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak

Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak Arbres Binaire PSI DAKHLA Prof Youssef El marzak 1 Prof Youssef Elmarzak 1.introduction: Les arbre sont très utilisées en informatique, d une part parce que les informations sont souvent hiérarchisées,

Plus en détail

Déclaration en Pascal. Constructeur Créer un arbre. Sélecteurs. Définition de types. Le type ELEMENT doit être déclaré par ailleurs.

Déclaration en Pascal. Constructeur Créer un arbre. Sélecteurs. Définition de types. Le type ELEMENT doit être déclaré par ailleurs. Nour-Eddine Oussous, Éric Wegrzynowski 23 novembre 2009 Implémentation Constructeur Sélecteurs Prédicat Opérations modificatrices Parcours d arbres Parcours préfixé Parcours postfixé Parcours infixé Algorithmes

Plus en détail

Algorithmique P2. HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont

Algorithmique P2. HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont Algorithmique P2 HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont Structure de tas - arbre Un tas est une structure de données qui Permet un nouveau type de tri (Tri par tas) Permet l'implémentation

Plus en détail

Séance de TD 05 TD05. 1 Exercice 1. 1.1 Question 1 : dessins des ABR avec hauteurs différentes AG51

Séance de TD 05 TD05. 1 Exercice 1. 1.1 Question 1 : dessins des ABR avec hauteurs différentes AG51 Séance de TD 05 1 Exercice 1 1. Dessinez les arbres binaires de recherche de hauteur 2,3,4,5 et 6 pour le même ensemble de clés S = 1,4,5,10,16,17,21. 2. Donnez l algorithme de l opération ArbreRechercher(x,k)

Plus en détail

Série d exercices N 9 Arbres

Série d exercices N 9 Arbres Série d exercices N 9 Arbres Exercice 1 a) Ecrire une fonction ARBIN creerarbreentiers() qui permet de créer et de renvoyer l arbre d entiers suivant : b) Ecrire une fonction int feuilles(arbin a) qui

Plus en détail

Introduction: Arbres de recherche + Rappel: Arbres binaires de recherche

Introduction: Arbres de recherche + Rappel: Arbres binaires de recherche Introduction: Arbres de recherche + Rappel: Arbres binaires de recherche Dictionnaires ordonnés: Opérations principales: trouver(k): find(k): Si le dictionnaire a une entrée de clé k, retourne la valeur

Plus en détail

Corrigé des exercices

Corrigé des exercices hapitre 1 option informatique orrigé des eercices Arbres binaires Eercice 1 La première solution qui vient à l esprit est sans doute celle-ci : let rec profondeur p = function Nil > [] a when p = 0 > [a]

Plus en détail

Arbres binaires. Chapitre 1. 1. Introduction. option informatique. 1.1 Définition formelle d un arbre binaire

Arbres binaires. Chapitre 1. 1. Introduction. option informatique. 1.1 Définition formelle d un arbre binaire Chapitre option informatique Arbres binaires. Introduction Dans son acceptation la plus générale, un arbre est un graphe acyclique orienté enraciné : tous les sommets, à l exception de la racine, ont un

Plus en détail

Application des arbres binaires. Plan

Application des arbres binaires. Plan Application des arbres binaires. Plan Compter les arbres binaires Tétrarbres (quad trees) Problème des n corps Recherche dans un intervalle Recherche dans un nuage de points Recherche dans un arbre d intervalles

Plus en détail

Algorithmique et Programmation Projets 2012/2013

Algorithmique et Programmation Projets 2012/2013 3 Dames 3. Objectif Il s agit d écrire un programme jouant aux Dames selon les règles. Le programme doit être le meilleur possible. Vous utiliserez pour cela l algorithme α β de recherche du meilleur coup

Plus en détail

1 Généralités sur les arbres

1 Généralités sur les arbres 1 Généralités sur les arbres 1.1 Graphes et arbres Définition 1.1. On appelle graphe un couple G = (V, E) d un ensemble fini V (les sommets ou noeuds) et d une partie E de V V (les arêtes). Si x, y V,

Plus en détail

INF601 : Algorithme et Structure de données

INF601 : Algorithme et Structure de données Cours 2 : TDA Arbre Binaire B. Jacob IC2/LIUM 27 février 2010 Plan 1 Introuction 2 Primitives u TDA Arbin 3 Réalisations u TDA Arbin par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)

Plus en détail

Programmation avancée

Programmation avancée Programmation avancée Chapitre 1 : Complexité et les ABR (arbres binaires de recherche) 1 1 IFSIC Université de Rennes-1 M2Crypto, octobre 2011 Plan du cours 1 2 3 4 5 6 7 8 9 10 Algorithmes Définition

Plus en détail

( n) !n! 0. Compter les arbres binaires (1) Application des arbres binaires. Plan

( n) !n! 0. Compter les arbres binaires (1) Application des arbres binaires. Plan pplication des arbres binaires. Plan ompter les arbres binaires Tétrarbres (quad trees) Problème des n corps Recherche dans un intervalle Recherche dans un nuage de points Recherche dans un arbre d intervalles

Plus en détail

EXAMEN FINAL. 2 Février 2006-2 heures Aucun document autorisé

EXAMEN FINAL. 2 Février 2006-2 heures Aucun document autorisé MIE - E ANNÉE ALGORITHMIQUE GÉNÉRALE Vincent Mousseau EXAMEN FINAL Février 006 - heures Aucun document autorisé Exercice : On s intéresse à la gestion informatique des réservations sur l année d une salle

Plus en détail

Épreuve d informatique 2011

Épreuve d informatique 2011 A 2011 INFO. MP ÉCOLE NATIONALE DES PONTS ET CHAUSSÉES, ÉCOLES NATIONALES SUPÉRIEURES DE L AÉRONAUTIQUE ET DE L ESPACE, DE TECHNIQUES AVANCÉES, DES TÉLÉCOMMUNICATIONS, DES MINES DE PARIS, DES MINES DE

Plus en détail

Arbres. Alphabet Σ = Σ 0 Σ k. Exemples

Arbres. Alphabet Σ = Σ 0 Σ k. Exemples Arbres Alphabet Σ = Σ 0 Σ k Σ i : alphabet fini de symboles de rang i (Σ i Σ j possible). Un arbre t de rang k est défini par un ensemble (fini) dom(t) {1,..., k} clos par préfixe (domaine de t) : si v,

Plus en détail

Cours Algorithmique, 2ème partie AS IUT

Cours Algorithmique, 2ème partie AS IUT Cours Algorithmique, 2ème partie AS IUT Cours 2 : Arbres Binaires Anne Vilnat http://www.limsi.fr/individu/anne/coursalgo Plan 1 Représentations arborescentes 2 Définition d un arbre binaire récursive

Plus en détail

4.2 Les arbres binaires de recherche

4.2 Les arbres binaires de recherche 4.2 Les arbres binaires de recherche 4.2.1 Définition Les arbres binaires de recherche sont utilisés pour accélérer la recherche dans les arbres m-aires. Un arbre binaire de recherche est un arbre binaire

Plus en détail

DEUG MIAS2 - MODULE INFORMATIQUE (MIA10B) EXAMEN (SEPTEMBRE 1999)

DEUG MIAS2 - MODULE INFORMATIQUE (MIA10B) EXAMEN (SEPTEMBRE 1999) coller l étiquette ici DEUG MIAS2 - MODULE INFORMATIQUE (MIA10B) EXAMEN (SEPTEMBRE 1999) Durée : 2 heures Aucun document autorisé - Calculatrices interdites Les réponses doivent être brèves et justifiées

Plus en détail

Les Fichiers en Pascal

Les Fichiers en Pascal Les Fichiers en Pascal Université de Toulouse II DEUG MASS Année 2004-2005 Patricia PASCAL < ppascal@laas.fr > - Page 1 / 31 - Plan du cours sur les fichiers les fichiers, pourquoi, comment? (p3) les différents

Plus en détail

Conjecture de Syracuse

Conjecture de Syracuse Conjecture de Syracuse Énoncé du problème [1] : Soit (U)n la suite définie par : (U)0=N, avec N N* [(U)n]/2 si (U)n est pair. et (U)n+1 = 3(U)n +1 si (U)n est impair. La Conjecture de Syracuse affirme

Plus en détail

Tri en Python. # on cherche k tel que a k = min(a j ) ji

Tri en Python. # on cherche k tel que a k = min(a j ) ji Tri en Python On considère ici des tableaux ou listes d entiers ou de ottants. En Python, on peut trier une liste à l aide de la méthode sort : si a est une liste d entiers ou de ottants, a.sort() modi

Plus en détail

Ch. 1 : Bases de programmation en Visual Basic

Ch. 1 : Bases de programmation en Visual Basic Ch. 1 : Bases de programmation en Visual Basic 1 1 Variables 1.1 Définition Les variables permettent de stocker en mémoire des données. Elles sont représentées par des lettres ou des groupements de lettres

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Gestion d'un entrepôt

Gestion d'un entrepôt Gestion d'un entrepôt Épreuve pratique d'algorithmique et de programmation Concours commun des écoles normales supérieures Durée de l'épreuve: 3 heures 30 minutes Juin/Juillet 2010 ATTENTION! N oubliez

Plus en détail

Licence informatique - L3 Année 2012/2013. Conception d algorithmes et applications (LI325) COURS 2

Licence informatique - L3 Année 2012/2013. Conception d algorithmes et applications (LI325) COURS 2 Licence informatique - L Année 0/0 Conception d algorithmes et applications (LI) COURS Résumé. Cette deuxième séance est entièrement consacrée aux applications du principe Diviser pour Régner. Nous regarderons

Plus en détail

Projet de Programmation Fonctionnelle

Projet de Programmation Fonctionnelle Projet de Programmation Fonctionnelle L objectif de ce projet est de concevoir, en Objective Caml, un évaluateur pour le langage mini-ml (un sous ensemble du langage Objective Caml). Votre programme devra

Plus en détail

Points fixes de fonctions à domaine fini

Points fixes de fonctions à domaine fini ÉCOLE POLYTECHNIQUE ÉCOLE NORMALE SUPÉRIEURE DE CACHAN ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION 2013 FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE

Plus en détail

Cours 1: Introduction à l algorithmique

Cours 1: Introduction à l algorithmique 1 Cours 1: Introduction à l algorithmique Olivier Bournez bournez@lix.polytechnique.fr LIX, Ecole Polytechnique 2011-12 Algorithmique 2 Aujourd hui Calcul de x n Maximum Complexité d un problème Problème

Plus en détail

Compression méthode de Huffman

Compression méthode de Huffman Compression méthode de Huffman Thierry Lecroq Université de Rouen FRANCE La méthode de Huffman consiste à remplacer les caractères les plus fréquents par des codes courts et les caractères les moins fréquents

Plus en détail

Arbres. Chapitre Introduction. option informatique. 1.1 Terminologie

Arbres. Chapitre Introduction. option informatique. 1.1 Terminologie Chapitre 3 option informatique Arbres 1. Introduction Nous avons déjà rencontré des arbres à la fin du module précédent, pour représenter une expression algébrique ou une liste. Nous avons pu nous contenter

Plus en détail

LE PROBLEME DU FLOT MAXIMAL

LE PROBLEME DU FLOT MAXIMAL LE PROBLEME DU FLOT MAXIMAL I Exemple d introduction Deux châteaux d'eau alimentent 3 villes à travers un réseau de canalisations au sein duquel se trouvent également des stations de pompage. Les châteaux

Plus en détail

FICHIERS. Mémoire de masse découpée en blocs Fichier : liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)

FICHIERS. Mémoire de masse découpée en blocs Fichier : liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers) FICHIERS Mémoire de masse découpée en blocs Fichier : liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers) Bloc d adresses Bloc d éléments Bloc d éléments Blocs de 4096 octets - adresses

Plus en détail

Algorithmique et Structures de données Feuille 5 : Arbres binaires

Algorithmique et Structures de données Feuille 5 : Arbres binaires Université Bordeaux Algorithmique et Structures de données Feuille : Arbres binaires On considère le type abstrait arbrebinaire d objet défini en cours. Pour rappel voir annexe A. LicenceInformatique0-0

Plus en détail

Correction langage Java

Correction langage Java MINISTÈRE DE L ÉCOLOGIE, DU DÉVELOPPEMENT DURABLE, DES TRANSPORTS ET DU LOGEMENT EXAMEN PROFESSIONNEL DE VÉRIFICATION D APTIDUDE AUX FONCTIONS DE PROGRAMMEUR Session 2010 Correction langage Java Langage:

Plus en détail

Plan du cours. Les arbres (III) Implémentation en Pascal Recherche. Nour-Eddine Oussous, Éric Wegrzynowski. 30 novembre 2009

Plan du cours. Les arbres (III) Implémentation en Pascal Recherche. Nour-Eddine Oussous, Éric Wegrzynowski. 30 novembre 2009 Nour-Eddine Oussous, Éric Wegrzynowski Plan du cours Algorithmes sur les arbres binaires Arbres binaires ordonnés 0 novembre 009 recherche : E AB(E) Booleen { Vrai si e a e, a Faux sinon recherche(,

Plus en détail

Théorie des graphes. Introduction. Programme de Terminale ES Spécialité. Résolution de problèmes à l aide de graphes. Préparation CAPES UCBL

Théorie des graphes. Introduction. Programme de Terminale ES Spécialité. Résolution de problèmes à l aide de graphes. Préparation CAPES UCBL Introduction Ces quelques pages ont pour objectif de vous initier aux notions de théorie des graphes enseignées en Terminale ES. Le programme de Terminale (voir ci-après) est construit sur la résolution

Plus en détail

Exercice sur les arbres binaires de recherche

Exercice sur les arbres binaires de recherche Exercice sur les arbres binaires de recherche Voici une liste aléatoire de 1 éléments. Notez que vous pouvez faire cet exercice en prenant une autre liste aléatoire ; évidemment, il y a peu de chances

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres.

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres. Plan Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres Amphi 4 1 Retour sur les références class Code { int numero; Code(int

Plus en détail

Les arbres (II) Un exemple d arbre à parcourir. Différents parcours. Nour-Eddine Oussous, Éric Wegrzynowski. 21 novembre 2007

Les arbres (II) Un exemple d arbre à parcourir. Différents parcours. Nour-Eddine Oussous, Éric Wegrzynowski. 21 novembre 2007 Nour-Eddine Oussous, Éric Wegrzynowski 21 novembre 2007 Parcours d arbres Parcours préfixé Parcours postfixé Parcours infixé Algorithmes sur les arbres binaires Recherche d un élément Arbres binaires ordonnés

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

Plus en détail

Algorithmique P2. Optimisation d'un algorithme de tri 2009-2010, Ulg R.Dumont

Algorithmique P2. Optimisation d'un algorithme de tri 2009-2010, Ulg R.Dumont Algorithmique P2 Optimisation d'un algorithme de tri 2009-2010, Ulg R.Dumont Sources supplémentaires Cours Algorithms and Data Structures in Java, Patrick Prosser, 2000, Glasgow University Algorithmique

Plus en détail

INF601 : Algorithme et Structure de données

INF601 : Algorithme et Structure de données Cours 2 : TDA Liste B. Jacob IC2/LIUM 15 février 2010 Plan 1 Définition du TDA Liste 2 Réalisation du TDA Liste 3 Type de stockage des éléments 4 Recherche d un élément Dans une liste non triée Dans une

Plus en détail

Polytechnique. Épreuve d Informatique 1998

Polytechnique. Épreuve d Informatique 1998 Polytechnique Épreuve d Informatique 1998 Corrigé rédigé par Martine Lannaud, Lycée Chaptal, Paris Pour toute remarque ou correction martine.lannaud@prepas.org Motifs et automates Question 1. Quelques

Plus en détail