79
Les arbres Impl´ ementation Arbres binaires de recherche Tas et liste de priorit´ e Chapitre 1 : Les arbres Option Informatique – MP Chapitre 1 : Les arbres – Option Informatique – MP 1/43

Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Chapitre 1 : Les arbres

Option Informatique – MP

Chapitre 1 : Les arbres – Option Informatique – MP 1/43

Page 2: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Plan

1 Les arbres

2 Implementation

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 2/43

Page 3: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Les arbres

1 Les arbresRappelsDefinition

2 Implementation

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 3/43

Page 4: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Rappels

1 Les arbresRappelsDefinition

2 Implementation

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 4/43

Page 5: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Introduction

Cette annee nous reprenons la notion d’arbre qui a ete developpeel’annee passee. On va etudier la maniere dont les arbres permettentde realiser certaines structures de donnees.

Commencons par quelques rappels terminologiques sur lesstructures de donnees qui ont ete vue en premiere annee.

Chapitre 1 : Les arbres – Option Informatique – MP 5/43

Page 6: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Introduction

Cette annee nous reprenons la notion d’arbre qui a ete developpeel’annee passee. On va etudier la maniere dont les arbres permettentde realiser certaines structures de donnees.

Commencons par quelques rappels terminologiques sur lesstructures de donnees qui ont ete vue en premiere annee.

Chapitre 1 : Les arbres – Option Informatique – MP 5/43

Page 7: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Structure de donnees abstraite

Definition (Structure de donnees abstraite)

1. On appelle structure de donnees abstraite un type de donneesmuni d’operations.

2. Si on peut modifier les donnees sans devoir toutes les reecrire,on dit que la structure est :

imperative ou modifiable oumutable.

3. Si une modification de la structure necessite de construire unnouvel objet on parle de structure de donnees : persistanteou immuable

Chapitre 1 : Les arbres – Option Informatique – MP 6/43

Page 8: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Structure de donnees abstraite

Definition (Structure de donnees abstraite)

1. On appelle structure de donnees abstraite un type de donneesmuni d’operations.

2. Si on peut modifier les donnees sans devoir toutes les reecrire,on dit que la structure est : imperative ou modifiable oumutable.

3. Si une modification de la structure necessite de construire unnouvel objet on parle de structure de donnees : persistanteou immuable

Chapitre 1 : Les arbres – Option Informatique – MP 6/43

Page 9: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Structure de donnees abstraite

Definition (Structure de donnees abstraite)

1. On appelle structure de donnees abstraite un type de donneesmuni d’operations.

2. Si on peut modifier les donnees sans devoir toutes les reecrire,on dit que la structure est : imperative ou modifiable oumutable.

3. Si une modification de la structure necessite de construire unnouvel objet on parle de structure de donnees :

persistanteou immuable

Chapitre 1 : Les arbres – Option Informatique – MP 6/43

Page 10: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Structure de donnees abstraite

Definition (Structure de donnees abstraite)

1. On appelle structure de donnees abstraite un type de donneesmuni d’operations.

2. Si on peut modifier les donnees sans devoir toutes les reecrire,on dit que la structure est : imperative ou modifiable oumutable.

3. Si une modification de la structure necessite de construire unnouvel objet on parle de structure de donnees : persistanteou immuable

Chapitre 1 : Les arbres – Option Informatique – MP 6/43

Page 11: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemples

I En Caml, les listes sont des structures de donnees :

persistante ou immuable

I Les tableaux sont des structures de donnees : imperative oumodifiable ou mutable.

Chapitre 1 : Les arbres – Option Informatique – MP 7/43

Page 12: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemples

I En Caml, les listes sont des structures de donnees :persistante ou immuable

I Les tableaux sont des structures de donnees :

imperative oumodifiable ou mutable.

Chapitre 1 : Les arbres – Option Informatique – MP 7/43

Page 13: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemples

I En Caml, les listes sont des structures de donnees :persistante ou immuable

I Les tableaux sont des structures de donnees : imperative oumodifiable ou mutable.

Chapitre 1 : Les arbres – Option Informatique – MP 7/43

Page 14: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Structure de donnees abstraite

Pour definir une structure de donnees, on precise les operationsque l’on veut pouvoir realiser.Par exemple, les files vues en premiere annee qui sont unestructure de donnees de type FIFO (first in first out), on desire lesoperations suivantes :

I creationVide : qui cree une file vide.

I estVide : qui teste si une file est vide (et renvoie un booleen)

I ajouteFin : qui ajoute un element en fin de la file.

I retireTete : qui renvoie le premier element d’une file nonvide. Cela enleve cet element.

Chapitre 1 : Les arbres – Option Informatique – MP 8/43

Page 15: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Structure de donnees abstraite

Pour definir une structure de donnees, on precise les operationsque l’on veut pouvoir realiser.Par exemple, les files vues en premiere annee qui sont unestructure de donnees de type FIFO (first in first out), on desire lesoperations suivantes :

I creationVide : qui cree une file vide.

I estVide : qui teste si une file est vide (et renvoie un booleen)

I ajouteFin : qui ajoute un element en fin de la file.

I retireTete : qui renvoie le premier element d’une file nonvide. Cela enleve cet element.

Chapitre 1 : Les arbres – Option Informatique – MP 8/43

Page 16: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Structure de donnees abstraite

Pour definir une structure de donnees, on precise les operationsque l’on veut pouvoir realiser.Par exemple, les files vues en premiere annee qui sont unestructure de donnees de type FIFO (first in first out), on desire lesoperations suivantes :

I creationVide : qui cree une file vide.

I estVide : qui teste si une file est vide (et renvoie un booleen)

I ajouteFin : qui ajoute un element en fin de la file.

I retireTete : qui renvoie le premier element d’une file nonvide. Cela enleve cet element.

Chapitre 1 : Les arbres – Option Informatique – MP 8/43

Page 17: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Structure de donnees abstraite

Pour definir une structure de donnees, on precise les operationsque l’on veut pouvoir realiser.Par exemple, les files vues en premiere annee qui sont unestructure de donnees de type FIFO (first in first out), on desire lesoperations suivantes :

I creationVide : qui cree une file vide.

I estVide : qui teste si une file est vide (et renvoie un booleen)

I ajouteFin : qui ajoute un element en fin de la file.

I retireTete : qui renvoie le premier element d’une file nonvide. Cela enleve cet element.

Chapitre 1 : Les arbres – Option Informatique – MP 8/43

Page 18: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Structure de donnees abstraite

Pour definir une structure de donnees, on precise les operationsque l’on veut pouvoir realiser.Par exemple, les files vues en premiere annee qui sont unestructure de donnees de type FIFO (first in first out), on desire lesoperations suivantes :

I creationVide : qui cree une file vide.

I estVide : qui teste si une file est vide (et renvoie un booleen)

I ajouteFin : qui ajoute un element en fin de la file.

I retireTete : qui renvoie le premier element d’une file nonvide. Cela enleve cet element.

Chapitre 1 : Les arbres – Option Informatique – MP 8/43

Page 19: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

ATTENTION

ATTENTION

La notion de structure de donnees abstraite ne doit pas etre confon-due avec l’implementation d’une structure de donnees.On peut imaginer que Alice code une structure de donnees et elleprecise juste dans la documentation, les fonctions que l’on peututiliser (ainsi que leur complexite la plupart du temps). Si Bob veututiliser cette structure de donnees dans son programme, il ne va paschercher a comprendre comment Alice a code ses fonctions. Il vase contenter d’utiliser les fonctions definies. Il l’utilise comme une� boite noire �.

Chapitre 1 : Les arbres – Option Informatique – MP 9/43

Page 20: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Definition

1 Les arbresRappelsDefinition

2 Implementation

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 10/43

Page 21: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Defintion

Definition

Un arbre (enracine) est un ensemble fini non vide A avec un elementr que l’on appelle la racine.Il est muni d’une application p : A \ {r} → A telle que pour toutx ∈ A \ {r}, il existe k ∈ N tel que r = pk(x).

La plupart du temps, on se donne de plus un ensemble B (ensembledes etiquettes) et une application de A dans B.

Chapitre 1 : Les arbres – Option Informatique – MP 11/43

Page 22: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Terminologie

I L’element r s’appelle la racine de l’arbre.

I Pour tout element x 6= r , l’element p(x) s’appelle le pere dex . Il est unique. Il arrive que, par convention, on note aussip(r) = r .

I Soit x un element de A, les antecedents de x par p,p−1({x}) = {y ∈ A | p(y) = x} s’appellent les fils de x .

I On appelle nœuds les elements de A.

I On appelle feuille les elements de A qui n’ont pas de fils et onappelle nœuds internes les nœuds qui ne sont pas des feuilles.

I Soit x un element de A. L’arite de x (ou le degre de x) est lenombre de ses fils. Les feuilles d’un arbre sont d’arite 0.

Chapitre 1 : Les arbres – Option Informatique – MP 12/43

Page 23: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Terminologie

I L’element r s’appelle la racine de l’arbre.

I Pour tout element x 6= r , l’element p(x) s’appelle le pere dex . Il est unique. Il arrive que, par convention, on note aussip(r) = r .

I Soit x un element de A, les antecedents de x par p,p−1({x}) = {y ∈ A | p(y) = x} s’appellent les fils de x .

I On appelle nœuds les elements de A.

I On appelle feuille les elements de A qui n’ont pas de fils et onappelle nœuds internes les nœuds qui ne sont pas des feuilles.

I Soit x un element de A. L’arite de x (ou le degre de x) est lenombre de ses fils. Les feuilles d’un arbre sont d’arite 0.

Chapitre 1 : Les arbres – Option Informatique – MP 12/43

Page 24: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Terminologie

I L’element r s’appelle la racine de l’arbre.

I Pour tout element x 6= r , l’element p(x) s’appelle le pere dex . Il est unique. Il arrive que, par convention, on note aussip(r) = r .

I Soit x un element de A, les antecedents de x par p,p−1({x}) = {y ∈ A | p(y) = x} s’appellent les fils de x .

I On appelle nœuds les elements de A.

I On appelle feuille les elements de A qui n’ont pas de fils et onappelle nœuds internes les nœuds qui ne sont pas des feuilles.

I Soit x un element de A. L’arite de x (ou le degre de x) est lenombre de ses fils. Les feuilles d’un arbre sont d’arite 0.

Chapitre 1 : Les arbres – Option Informatique – MP 12/43

Page 25: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Terminologie

I L’element r s’appelle la racine de l’arbre.

I Pour tout element x 6= r , l’element p(x) s’appelle le pere dex . Il est unique. Il arrive que, par convention, on note aussip(r) = r .

I Soit x un element de A, les antecedents de x par p,p−1({x}) = {y ∈ A | p(y) = x} s’appellent les fils de x .

I On appelle nœuds les elements de A.

I On appelle feuille les elements de A qui n’ont pas de fils et onappelle nœuds internes les nœuds qui ne sont pas des feuilles.

I Soit x un element de A. L’arite de x (ou le degre de x) est lenombre de ses fils. Les feuilles d’un arbre sont d’arite 0.

Chapitre 1 : Les arbres – Option Informatique – MP 12/43

Page 26: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Terminologie

I L’element r s’appelle la racine de l’arbre.

I Pour tout element x 6= r , l’element p(x) s’appelle le pere dex . Il est unique. Il arrive que, par convention, on note aussip(r) = r .

I Soit x un element de A, les antecedents de x par p,p−1({x}) = {y ∈ A | p(y) = x} s’appellent les fils de x .

I On appelle nœuds les elements de A.

I On appelle feuille les elements de A qui n’ont pas de fils et onappelle nœuds internes les nœuds qui ne sont pas des feuilles.

I Soit x un element de A. L’arite de x (ou le degre de x) est lenombre de ses fils. Les feuilles d’un arbre sont d’arite 0.

Chapitre 1 : Les arbres – Option Informatique – MP 12/43

Page 27: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Terminologie

I L’element r s’appelle la racine de l’arbre.

I Pour tout element x 6= r , l’element p(x) s’appelle le pere dex . Il est unique. Il arrive que, par convention, on note aussip(r) = r .

I Soit x un element de A, les antecedents de x par p,p−1({x}) = {y ∈ A | p(y) = x} s’appellent les fils de x .

I On appelle nœuds les elements de A.

I On appelle feuille les elements de A qui n’ont pas de fils et onappelle nœuds internes les nœuds qui ne sont pas des feuilles.

I Soit x un element de A. L’arite de x (ou le degre de x) est lenombre de ses fils. Les feuilles d’un arbre sont d’arite 0.

Chapitre 1 : Les arbres – Option Informatique – MP 12/43

Page 28: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Remarque

Il existe de nombreuses definitions equivalentes pour les arbres.Nous en verrons une autre dans le cours sur les graphes (chapitre3). Dans ce chapitre nous parlerons d’arbre qui ne sot pasenracines (les arbres libres)

Chapitre 1 : Les arbres – Option Informatique – MP 13/43

Page 29: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Terminologie

Definition

Soit A un arbre.

1. La taille de l’arbre est le nombre de ses nœuds. On la note |A|.

2. Soit x un element de A. La profondeur de x , notee prof(x),vaut 0 si x = r et vaut 1 de plus que celle de sont pere six 6= r . On a donc

prof(x) =

{0 si x = r1 + prof(p(x)) sinon.

3. La hauteur d’un arbre est la profondeur maximale d’un de sesnœuds

Chapitre 1 : Les arbres – Option Informatique – MP 14/43

Page 30: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Terminologie

Definition

Soit A un arbre.

1. La taille de l’arbre est le nombre de ses nœuds. On la note |A|.2. Soit x un element de A. La profondeur de x , notee prof(x),

vaut 0 si x = r et vaut 1 de plus que celle de sont pere six 6= r . On a donc

prof(x) =

{0 si x = r1 + prof(p(x)) sinon.

3. La hauteur d’un arbre est la profondeur maximale d’un de sesnœuds

Chapitre 1 : Les arbres – Option Informatique – MP 14/43

Page 31: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Terminologie

Definition

Soit A un arbre.

1. La taille de l’arbre est le nombre de ses nœuds. On la note |A|.2. Soit x un element de A. La profondeur de x , notee prof(x),

vaut 0 si x = r et vaut 1 de plus que celle de sont pere six 6= r . On a donc

prof(x) =

{0 si x = r1 + prof(p(x)) sinon.

3. La hauteur d’un arbre est la profondeur maximale d’un de sesnœuds

Chapitre 1 : Les arbres – Option Informatique – MP 14/43

Page 32: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Remarques

I La profondeur d’un nœud x 6= r est le plus petit entier k telque pk(x) = r . C’est donc le nombre d’aretes traversees pouraller de la racine r au nœud x .

I En pratique on parle indifferemment de hauteur et deprofondeur.

I Par convention l’arbre vide est de hauteur −1.

ATTENTION

Il arrive de trouver une convention differente en prenant la racine dehauteur 1. Pensez a bien lire l’enonce !

Chapitre 1 : Les arbres – Option Informatique – MP 15/43

Page 33: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Arbre binaire

Definition

Si tous les nœuds internes sont d’arite au plus deux (resp. exacte-ment deux) on dit que l’arbre est un arbre binaire (resp. un arbrebinaire entier).

Remarque : Avec les notations precedentes, les arbres binairessont des sous-cas des arbres. De ce fait on n’ordonne pas les deuxfils. En pratique (voir les implementations) on ordonne les deux filsen precisant le fils de gauche et le fils de droite. La structureobtenue n’est plus un sous-cas des arbres generaux mais unsous-cas des arbres planaires ou, pour chaque noeud, la liste de sesfils est ordonnee.

Chapitre 1 : Les arbres – Option Informatique – MP 16/43

Page 34: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Arbre binaire

Definition

Si tous les nœuds internes sont d’arite au plus deux (resp. exacte-ment deux) on dit que l’arbre est un arbre binaire (resp. un arbrebinaire entier).

Remarque : Avec les notations precedentes, les arbres binairessont des sous-cas des arbres. De ce fait on n’ordonne pas les deuxfils. En pratique (voir les implementations) on ordonne les deux filsen precisant le fils de gauche et le fils de droite. La structureobtenue n’est plus un sous-cas des arbres generaux mais unsous-cas des arbres planaires ou, pour chaque noeud, la liste de sesfils est ordonnee.

Chapitre 1 : Les arbres – Option Informatique – MP 16/43

Page 35: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemple

Les arbres se representent de la maniere suivante.

1

2

3 4

5 8

6

7 9

Chapitre 1 : Les arbres – Option Informatique – MP 17/43

Page 36: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemple

Dans cet exemple,

I La racine est 1

I 4 est le pere 5

I 5 et 8 sont les fils de 4.

I 3 est une feuille

I 4 est de profondeur 2

I L’arbre est de hauteur 3 et de taille 9

I C’est un arbre binaire entier

Chapitre 1 : Les arbres – Option Informatique – MP 18/43

Page 37: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Arbres binaires

Definition

On appelle arbre binaire complet (ou parfait) un arbre binaire entiertel que toutes les feuilles aient la meme profondeur.

1

2

3 4

6

7 9

Chapitre 1 : Les arbres – Option Informatique – MP 19/43

Page 38: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Arbres binaires

Definition

On appelle arbre binaire complet (ou parfait) un arbre binaire entiertel que toutes les feuilles aient la meme profondeur.

1

2

3 4

6

7 9

Chapitre 1 : Les arbres – Option Informatique – MP 19/43

Page 39: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exercices

I Quel est la taille d’un arbre binaire complet de hauteur h ?Combien a-t-il de feuilles ?

La taille est

1 + 2 + 4 + · · ·+ 2h = 2h+1 − 1.

Le nombre de feuilles est 2h.

Chapitre 1 : Les arbres – Option Informatique – MP 20/43

Page 40: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exercices

I Quel est la taille d’un arbre binaire complet de hauteur h ?Combien a-t-il de feuilles ?

La taille est

1 + 2 + 4 + · · ·+ 2h = 2h+1 − 1.

Le nombre de feuilles est 2h.

Chapitre 1 : Les arbres – Option Informatique – MP 20/43

Page 41: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exercices

I Quel est la taille d’un arbre binaire complet de hauteur h ?Combien a-t-il de feuilles ?

La taille est

1 + 2 + 4 + · · ·+ 2h = 2h+1 − 1.

Le nombre de feuilles est 2h.

Chapitre 1 : Les arbres – Option Informatique – MP 20/43

Page 42: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exercices

I Justifier que si A est un arbre binaire de taille n et de hauteurh alors :

h + 1 6 n 6 2h+1 − 1.

En deduire un encadrement de la hauteur en fonction de lataille. On veut juste l’encadrement, nous verrons plus loincomment rediger une preuve precise.

Le plus petit arbre de hauteur h est un arbre � peigne � detaille n = h + 1. Le plus grand est l’arbre complet oun = 2h+1 − 1.

On a log2(n + 1) 6 h + 1 6 n.

Chapitre 1 : Les arbres – Option Informatique – MP 21/43

Page 43: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exercices

I Justifier que si A est un arbre binaire de taille n et de hauteurh alors :

h + 1 6 n 6 2h+1 − 1.

En deduire un encadrement de la hauteur en fonction de lataille. On veut juste l’encadrement, nous verrons plus loincomment rediger une preuve precise.

Le plus petit arbre de hauteur h est un arbre � peigne � detaille n = h + 1. Le plus grand est l’arbre complet oun = 2h+1 − 1.

On a log2(n + 1) 6 h + 1 6 n.

Chapitre 1 : Les arbres – Option Informatique – MP 21/43

Page 44: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exercices

I Justifier que si A est un arbre binaire de taille n et de hauteurh alors :

h + 1 6 n 6 2h+1 − 1.

En deduire un encadrement de la hauteur en fonction de lataille. On veut juste l’encadrement, nous verrons plus loincomment rediger une preuve precise.

Le plus petit arbre de hauteur h est un arbre � peigne � detaille n = h + 1. Le plus grand est l’arbre complet oun = 2h+1 − 1.

On a log2(n + 1) 6 h + 1 6 n.

Chapitre 1 : Les arbres – Option Informatique – MP 21/43

Page 45: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exercice

Reprendre l’exercice precedent avec un arbre dont les nœuds sontd’arite maximale a.

Chapitre 1 : Les arbres – Option Informatique – MP 22/43

Page 46: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Implementation

1 Les arbres

2 ImplementationDefinition du typeInduction structurelleQuelques fonctionsArbre de calcul

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 23/43

Page 47: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Definition du type

1 Les arbres

2 ImplementationDefinition du typeInduction structurelleQuelques fonctionsArbre de calcul

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 24/43

Page 48: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Definiton

Il y a de nombreuses manieres d’implementer des arbres binaires enCAML.Pour la definition mathematique des arbres on utiliseessentiellement la notion de pere mais pour l’implementation onutilise essentiellement la notion de fils.Nous utiliserons des types recursifs.

Chapitre 1 : Les arbres – Option Informatique – MP 25/43

Page 49: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Definiton

I Un arbre binaire etiquete peut etre implemente par

type ’a arbreBin =

|Vide

|N of ’a arbreBin*’a*’a arbreBin ;;

Ici une feuille est de la forme :

N(Vide,x,Vide)

I Si l’arbre n’est plus binaire

type ’a noeud = Noeud of ’a * (’a noeud list)

;;

type ’a arbre = Vide | Racine of ’a noeud;;

Les feuilles sont les noeuds de la forme : Noeud(x,[])

Chapitre 1 : Les arbres – Option Informatique – MP 26/43

Page 50: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Definiton

I Un arbre binaire etiquete peut etre implemente par

type ’a arbreBin =

|Vide

|N of ’a arbreBin*’a*’a arbreBin ;;

Ici une feuille est de la forme : N(Vide,x,Vide)

I Si l’arbre n’est plus binaire

type ’a noeud = Noeud of ’a * (’a noeud list)

;;

type ’a arbre = Vide | Racine of ’a noeud;;

Les feuilles sont les noeuds de la forme : Noeud(x,[])

Chapitre 1 : Les arbres – Option Informatique – MP 26/43

Page 51: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Definiton

I Un arbre binaire etiquete peut etre implemente par

type ’a arbreBin =

|Vide

|N of ’a arbreBin*’a*’a arbreBin ;;

Ici une feuille est de la forme : N(Vide,x,Vide)

I Si l’arbre n’est plus binaire

type ’a noeud = Noeud of ’a * (’a noeud list)

;;

type ’a arbre = Vide | Racine of ’a noeud;;

Les feuilles sont les noeuds de la forme :

Noeud(x,[])

Chapitre 1 : Les arbres – Option Informatique – MP 26/43

Page 52: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Definiton

I Un arbre binaire etiquete peut etre implemente par

type ’a arbreBin =

|Vide

|N of ’a arbreBin*’a*’a arbreBin ;;

Ici une feuille est de la forme : N(Vide,x,Vide)

I Si l’arbre n’est plus binaire

type ’a noeud = Noeud of ’a * (’a noeud list)

;;

type ’a arbre = Vide | Racine of ’a noeud;;

Les feuilles sont les noeuds de la forme : Noeud(x,[])

Chapitre 1 : Les arbres – Option Informatique – MP 26/43

Page 53: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

ATTENTION

Il existe plein d’autres implementations recursives du meme genre(voir plus loin et en exercice).Il peut aussi etre interessant d’implementer un arbre binaire par untableau, nous le ferrons plus loin.

Chapitre 1 : Les arbres – Option Informatique – MP 27/43

Page 54: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Induction structurelle

1 Les arbres

2 ImplementationDefinition du typeInduction structurelleQuelques fonctionsArbre de calcul

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 28/43

Page 55: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Induction structurelle

On voit que les arbres sont donc definis de maniere recursive par :

I un cas de base qui est l’arbre vide.

I un constructeur qui correspond a un noeud dont les fils sontdes arbres.

La plupart des preuves vont donc se faire par inductionstructurelle 1 qui est l’analogue de la recurrence.

1. Nous reviendrons dans le chapitre 2 sur une definition precision d’uneinduction structurelle.

Chapitre 1 : Les arbres – Option Informatique – MP 29/43

Page 56: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Induction structurelle

Pour montrer qu’un predicat P est vrai pour tous les arbres ilfaut :

I Montrer que le predicat est vrai pour le cas de base.

I Montrer que le predicat est vrai pour un arbre obtenu parapplication du constructeur en supposant qu’il l’etait pour lesdonnees auxquelles on a appliquees le constructeur.

Chapitre 1 : Les arbres – Option Informatique – MP 30/43

Page 57: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemple

Remontrons que si a est un arbre binaire de taille n et de hauteur halors :

h + 1 6 n 6 2h+1 − 1.

I Cas de base :

Pour l’arbre vide, n = 0 et h = −1. On a bien

0 6 0 6 20 − 1

Comme le cas de l’arbre vide est un peu pathologique on peuttester un arbre qui n’a qu’un noeud : n = 1 et h = 0. On abien :

1 6 1 6 2− 1.

Chapitre 1 : Les arbres – Option Informatique – MP 31/43

Page 58: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemple

Remontrons que si a est un arbre binaire de taille n et de hauteur halors :

h + 1 6 n 6 2h+1 − 1.

I Cas de base :Pour l’arbre vide, n = 0 et h = −1. On a bien

0 6 0 6 20 − 1

Comme le cas de l’arbre vide est un peu pathologique on peuttester un arbre qui n’a qu’un noeud : n = 1 et h = 0. On abien :

1 6 1 6 2− 1.

Chapitre 1 : Les arbres – Option Informatique – MP 31/43

Page 59: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemple

Remontrons que si a est un arbre binaire de taille n et de hauteur halors :

h + 1 6 n 6 2h+1 − 1.

I Cas de base :Pour l’arbre vide, n = 0 et h = −1. On a bien

0 6 0 6 20 − 1

Comme le cas de l’arbre vide est un peu pathologique on peuttester un arbre qui n’a qu’un noeud : n = 1 et h = 0.

On abien :

1 6 1 6 2− 1.

Chapitre 1 : Les arbres – Option Informatique – MP 31/43

Page 60: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemple

Remontrons que si a est un arbre binaire de taille n et de hauteur halors :

h + 1 6 n 6 2h+1 − 1.

I Cas de base :Pour l’arbre vide, n = 0 et h = −1. On a bien

0 6 0 6 20 − 1

Comme le cas de l’arbre vide est un peu pathologique on peuttester un arbre qui n’a qu’un noeud : n = 1 et h = 0. On abien :

1 6 1 6 2− 1.

Chapitre 1 : Les arbres – Option Informatique – MP 31/43

Page 61: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemple

I Induction. Soit a un arbre non vide de la forme N(g,x,d). Onnote ng , nd , hg et hd les tailles et hauteurs de d et g . Parhypotheses :

hg + 1 6 ng 6 2hg+1 − 1 et hd + 1 6 nd 6 2hd+1 − 1.

En faisant la somme (et en ajoutant 1) :

hd + hg + 3 6 n = nd + ng + 1 6 2hg+1 + 2hd+1 − 1.

Maintenant h = 1 + max(hd , hg ) donc

hd + hg + 3 > h + 1 et 2hg+1 + 2hd+1 − 1 6 2h+1 − 1

carhd + hg + 3 > Max(hg , hd) + 2 > h + 1.

On a donc bien

h + 1 6 n 6 2h+1 − 1.

Chapitre 1 : Les arbres – Option Informatique – MP 32/43

Page 62: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exemple

I Induction. Soit a un arbre non vide de la forme N(g,x,d). Onnote ng , nd , hg et hd les tailles et hauteurs de d et g . Parhypotheses :

hg + 1 6 ng 6 2hg+1 − 1 et hd + 1 6 nd 6 2hd+1 − 1.

En faisant la somme (et en ajoutant 1) :

hd + hg + 3 6 n = nd + ng + 1 6 2hg+1 + 2hd+1 − 1.

Maintenant h = 1 + max(hd , hg ) donc

hd + hg + 3 > h + 1 et 2hg+1 + 2hd+1 − 1 6 2h+1 − 1

carhd + hg + 3 > Max(hg , hd) + 2 > h + 1.

On a donc bien

h + 1 6 n 6 2h+1 − 1.Chapitre 1 : Les arbres – Option Informatique – MP 32/43

Page 63: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Remarque

C’est ce meme principe d’induction structurelle qui permet ded’assurer que les fonctions comme la taille ou la hauteur sont biendefinies.

Chapitre 1 : Les arbres – Option Informatique – MP 33/43

Page 64: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Quelques fonctions

1 Les arbres

2 ImplementationDefinition du typeInduction structurelleQuelques fonctionsArbre de calcul

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 34/43

Page 65: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Fonctions

Nous allons donner quelques exemples de fonctions. Noustravaillerons avec le type d’arbre binaire ’a arbreBin definici-dessus.

I Commencons par une fonction donnant la hauteur d’un arbre :

let rec hauteur a = match a with

|Vide -> -1

|N(g,_,d) -> 1 + max (hauteur d) (hauteur g

);;

Chapitre 1 : Les arbres – Option Informatique – MP 35/43

Page 66: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Fonctions

I Ecrivons maintenant une fonction pour la taille d’un arbre.

let rec taille a = match a with

|Vide -> 0

|N(g,_,d) -> 1 + (taille d) + (taille g);;

Chapitre 1 : Les arbres – Option Informatique – MP 36/43

Page 67: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Fonctions

I Ecrivons maintenant une fonction pour la taille d’un arbre.

let rec taille a = match a with

|Vide -> 0

|N(g,_,d) -> 1 + (taille d) + (taille g);;

Chapitre 1 : Les arbres – Option Informatique – MP 36/43

Page 68: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exercices

Ecrire une fonction qui calcule le nombre de nœuds internes et unequi calcule le nombre de feuilles.

let rec feuille a = match a with

| Vide -> 0

| N(Vide ,_,Vide) -> 1

| N(g,_,d) -> (feuille g)+( feuille d);;

let rec noeudint a = match a with

| Vide -> 0

| N(Vide ,_,Vide) -> 0

| N(g,_,d) -> 1+ (noeudint g)+( noeudint

d);;

Chapitre 1 : Les arbres – Option Informatique – MP 37/43

Page 69: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exercices

Ecrire une fonction qui calcule le nombre de nœuds internes et unequi calcule le nombre de feuilles.

let rec feuille a = match a with

| Vide -> 0

| N(Vide ,_,Vide) -> 1

| N(g,_,d) -> (feuille g)+( feuille d);;

let rec noeudint a = match a with

| Vide -> 0

| N(Vide ,_,Vide) -> 0

| N(g,_,d) -> 1+ (noeudint g)+( noeudint

d);;

Chapitre 1 : Les arbres – Option Informatique – MP 37/43

Page 70: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Exercices

Ecrire une fonction qui calcule le nombre de nœuds internes et unequi calcule le nombre de feuilles.

let rec feuille a = match a with

| Vide -> 0

| N(Vide ,_,Vide) -> 1

| N(g,_,d) -> (feuille g)+( feuille d);;

let rec noeudint a = match a with

| Vide -> 0

| N(Vide ,_,Vide) -> 0

| N(g,_,d) -> 1+ (noeudint g)+( noeudint

d);;

Chapitre 1 : Les arbres – Option Informatique – MP 37/43

Page 71: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Arbre de calcul

1 Les arbres

2 ImplementationDefinition du typeInduction structurelleQuelques fonctionsArbre de calcul

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 38/43

Page 72: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Arbre de calcul

Les calculs algebriques peuvent se representer dans des arbres. Parexemple

(2 + x) ∗ (x − (3− y))

se represente par

×

+

2 x

-

x -

3 y

Chapitre 1 : Les arbres – Option Informatique – MP 39/43

Page 73: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Arbre de calcul

Les calculs algebriques peuvent se representer dans des arbres. Parexemple

(2 + x) ∗ (x − (3− y))

se represente par

×

+

2 x

-

x -

3 y

Chapitre 1 : Les arbres – Option Informatique – MP 39/43

Page 74: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Arbre de calcul

La difference par rapport aux arbres etudiees pour le moment c’estque les etiquettes des feuilles et celles des nœuds internes n’ontpas le meme type.On utilise donc un type plus complique qui traite les feuillesdifferemment des noeuds internes.

type (’a,’b) arb =

|F of ’a

|N of (’a,’b) arb * ’b * (’a,’b) arb;;

Chapitre 1 : Les arbres – Option Informatique – MP 40/43

Page 75: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Remarque

Il n’est plus necessaire d’avoir l’arbre vide car :

I

les feuilles sont determinees par le constructeur F.

I Une operation ne peut pas avoir un seul fils.

Chapitre 1 : Les arbres – Option Informatique – MP 41/43

Page 76: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Remarque

Il n’est plus necessaire d’avoir l’arbre vide car :

I les feuilles sont determinees par le constructeur F.

I

Une operation ne peut pas avoir un seul fils.

Chapitre 1 : Les arbres – Option Informatique – MP 41/43

Page 77: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Remarque

Il n’est plus necessaire d’avoir l’arbre vide car :

I les feuilles sont determinees par le constructeur F.

I Une operation ne peut pas avoir un seul fils.

Chapitre 1 : Les arbres – Option Informatique – MP 41/43

Page 78: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Arbres binaires de recherche

1 Les arbres

2 Implementation

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 42/43

Page 79: Chapitre 1 : Les arbres · 2019-09-05 · Les arbres Impl ementation Arbres binaires de recherche Tas et liste de priorit e Structure de donn ees abstraite D e nition (Structure de

Les arbres Implementation Arbres binaires de recherche Tas et liste de priorite

Tas et liste de priorite

1 Les arbres

2 Implementation

3 Arbres binaires de recherche

4 Tas et liste de priorite

Chapitre 1 : Les arbres – Option Informatique – MP 43/43