• Aucun résultat trouvé

ThierryLecroq Arbres

N/A
N/A
Protected

Academic year: 2022

Partager "ThierryLecroq Arbres"

Copied!
31
0
0

Texte intégral

(1)

logo-ur

Arbres

Thierry Lecroq

Universit´e de Rouen Normandie FRANCE

(2)

logo-ur

Plan

1 Les arbres

2 Les arbres binaires

3 Les arbres binaires de recherche

4 Les files de priorit´e

(3)

logo-ur

Les arbres

structure non lin´eaire qui permet de hi´erarchiser les donn´ees

exemple typique : organisation de stockage des donn´ees des syst`emes d’exploitation des ordinateurs en r´epertoires et fichiers

(4)

logo-ur

Une premi` ere d´ efinition

collection d’´el´ements appel´esnœuds (ou sommets) un nœud particulier : laracine

relation est le parent de

(5)

logo-ur

Une d´ efinition r´ ecursive

1 Un nœud seul est un arbre. Dans ce cas le nœud est aussi la racine.

2 Etant donn´´ es un nœud not´e net k arbresT0, T1, . . . , Tk−1 ayant des racines not´eesn0, n1, . . . , nk−1, on construit un nouvel arbre en prenantncomme racine et en posant que nest le parent de n0, n1, . . . , nk−1.T0, T1, . . . , Tk−1 sont alors appel´es les sous-arbres den, et n0, n1, . . . , nk−1 les successeurs(ou enfants) den.

(6)

logo-ur

L’arbre vide

L’arbre videne poss`ede aucun nœud.

(7)

logo-ur

Quelques d´ efinitions

Soit n0, n1, . . . , np−1 une suite de nœuds tels queni est le parent de ni+1 pour0≤i < p−1 alors une telle suite est appel´ee un chemin.

Lalongueurde ce chemin est p−1 (nombre de nœuds moins un).

Soientaet bdeux nœuds. S’il existe un chemin allant dea`ab alorsa est unant´ec´edent (ouancˆetre) deb etb est undescendantdea.

aest un ant´ec´edent propre(resp. descendantpropre) debsi aest un ant´ec´edent (resp. descendant) deb eta6=b.

Un nœud ne poss´edant pas de descendant propre est appel´e une feuille.

Lahauteur d’un nœud est la longueur maximale d’un chemin allant de ce nœud `a une feuille.

La hauteur de l’arbre est la hauteur de sa racine.

Laprofondeur (ou niveau) d’un nœud est la longueur de l’unique chemin allant de la racine `a ce nœud.

(8)

logo-ur

Plan

1 Les arbres

2 Les arbres binaires

3 Les arbres binaires de recherche

4 Les files de priorit´e

(9)

logo-ur

Les arbres binaires

D´efinition

Un arbre binaireest : soit un arbre vide ;

soit un arbre dans lequel chaque nœud poss`ede :

I 0 successeur ;

I ou 1 successeur ;

I ou 2 successeurs.

(10)

logo-ur

Parcours d’un arbre binaire

Parcours suivant l’ordre pr´efixe (pr´eordre) R visiter la racine

G parcourir le sous-arbre gauche suivant l’ordre pr´efixe D parcourir le sous-arbre droit suivant l’ordre pr´efixe

Parcours suivant l’ordre infixe (sym´etrique)

G parcourir le sous-arbre gauche suivant l’ordre sym´etrique R visiter la racine

D parcourir le sous-arbre droit suivant l’ordre sym´etrique

Parcours suivant l’ordre suffixe (postordre)

G parcourir le sous-arbre gauche suivant l’ordre suffixe D parcourir le sous-arbre droit suivant l’ordre suffixe R visiter la racine

(11)

logo-ur

Parcours d’un arbre binaire

Parcours en largeur

Dans l’ordre croissant de profondeur des nœuds

(12)

logo-ur

Le TAD arbre binaire

Op´erations

Etant donn´´ es un arbre binaire non videA et deux arbres binairesB et C :

ArbreVide() retourne l’arbre vide ;

EstArbreVide(B) fonction bool´eenne qui retourne vrai siB est vide et faux sinon ;

Racine(A) retourne l’´el´ement situ´e `a la racinde deA Gauche(A) retourne le sous-arbre gauche de A

Droit(A) retourne le sous-arbre droit deA

Construire(x,B,C) retourne un arbre dont la racine contient l’´el´ement xet dont les sous-arbres gauche et droit sont respectivementB etC

(13)

logo-ur

Arbres binaires Soit l’arbre binaire

A=hC,hD,hF,hG,hi,hii,hH,hI,hi,hii,hiii,hii,hL,hB,hi,hK,hi,hiii,hM,hi,hN,hi,hA,hi,hiiiiii.

Dessiner l’arbreA;

donner l’´etat de la file `a chaque ´etape du parcours en largeur de l’arbre A;

donner les parcours en profondeur pr´efixe, infixe et suffixe de l’arbre A;

quels sont les arbres binaires dont le parcours pr´efixe est

(c,f,j,i,k,l,n,o) et le parcours infixe est(f,j,c,n,l,o,k,i); quels sont les arbres binaires dont le parcours pr´efixe est

(t,u,x,s,q,r) et le parcours infixe est(u,q,r,s,x,t).

(14)

logo-ur

Plan

1 Les arbres

2 Les arbres binaires

3 Les arbres binaires de recherche

4 Les files de priorit´e

(15)

logo-ur

Les arbres binaires de recherche (ABR)

D´efinition

Un arbre binaire Aest un arbre binaire de recherche si

1 les ´el´ements plac´es dans les nœuds de Asont pris dans un ensemble totalement ordonn´e

2 pour tout nœudsdeA,x´etant l’´el´ement plac´e danss, tous les

´

el´ements du sous-arbre gauche dessont strictement inf´erieur `ax et tous les ´el´ements du sous-arbre droit de ssont strictement sup´erieur `a x

(16)

logo-ur

Insertion d’un ´ el´ ement dans un ABR

La construction d’un ABR s’effectue par insertions successives.

Exemple

A : 8, 10, 6, 12, 9, 7, 2, 4, 5, 11, 13, 3, 1 B : 6, 12, 8, 10, 2, 13, 1, 4, 5, 9, 3, 11, 7

(17)

logo-ur

Recherche d’un ´ el´ ement dans un ABR

Recherche(x, A)

1 siEstArbreVide(A) alors 2 Retourner faux

3 sinon six=Racine(A) alors 4 Retourner vrai

5 sinon si x <Racine(A)alors

6 Retourner Recherche(x,Gauche(A)) 7 sinon Retourner Recherche(x,Droit(A))

(18)

logo-ur

Insertion d’un ´ el´ ement dans un ABR

Notations

Si A est un arbre binaire alors : soit A est vide (A=hi)

soit A est non vide (A=hr, Ag, Adi)

D´efinition r´ecursive

Si Aest vide alors A+x=hx,hi,hii Si Aest non vide (A=hr, Ag, Adi) alors

I Six=ralorsA+x=A

I Six < ralorsA+x=hr, Ag+x, Adi

I Six > ralorsA+x=hr, Ag, Ad+xi

(19)

logo-ur

Suppression du plus grand ´ el´ ement dans un ABR non vide

A=hr, Ag, Adi

A−max(A) =

(Ag si Ad est vide

hr, Ag, Ad−max(Ad)i sinon

(20)

logo-ur

Suppression de l’´ el´ ement contenu dans la racine d’un ABR non vide

A=hr, Ag, Adi

A−rac(A) =





Ad siAg est vide

Ag siAdest vide

hmax(Ag), Ag−max(Ag), Adi sinon

(21)

logo-ur

Suppression d’un ´ el´ ement quelconque dans un ABR

A=hr, Ag, Adi

Si Aest vide alors A−x=A Sinon A=hr, Ag, Adiet

A−x=





A−rac(A) si x=r hr, Ag−x, Adi si x < r hr, Ag, Ad−xi si x > r

(22)

logo-ur

Complexit´ e

d´epend de la forme de l’arbre n nombre d’´el´ements

pire des cas ´el´ements d´ej`a tri´esO(n)

meilleur des cas arbre binaire complet O(logn) en moyenne O(logn)

(23)

logo-ur

Tri

Insertion des ´el´ements dans un ABR puis parcours infixe : O(nlogn) en moyenne

(24)

logo-ur

Arbres binaires de recherche

Construire les arbres binaires de recherche pour les listes de valeurs suivantes :

L1 = (t,s,i,a,p,e,x,g,m,r,o,n); L2 = (g,r,n,o,s,t,a,p,e,i,x,m).

On consid`ere l’ordre alphab´etique pour ordonner les lettres.

(25)

logo-ur

Plan

1 Les arbres

2 Les arbres binaires

3 Les arbres binaires de recherche

4 Les files de priorit´e

(26)

logo-ur

File de priorit´ e (ou tas)

Arbre binaire

Tout ´el´ement plac´e `a un nœud est sup´erieur `a ses deux enfants Arbre binaire complet partiellement ordonn´e (ABCPO)

(27)

logo-ur

File de priorit´ e

repr´esentation d’un ABCPO `a l’aide d’un tableauT on place la racine en T[1]

si un nœud est plac´e en T[i]

I son enfant gauche est plac´e enT[2i];

I son enfant droit est plac´e enT[2i+ 1];

(28)

logo-ur

File de priorit´ e - insertion

insertion d’un ´el´ementx dans une file de priorit´eT `an´el´ements placer x enT[n+ 1]

faire monter x (par ´echanges) jusqu’`a sa place la file contient maintenantn+ 1´el´ements

(29)

logo-ur

File de priorit´ e - suppression

suppression de la racine d’une file de priorit´eT `an´el´ements placer x=T[n]enT[1]

faire descendre x (par ´echanges) jusqu’`a sa place la file contient maintenantn−1´el´ements

(30)

logo-ur

Tri par tas (Heap Sort)

tri den´el´ements `a l’aide d’une file de priorit´e T insertion des n´el´ements dans T

pour ide 1 `anfaire

I supprimer la racine et la placer enT[ni+ 1]

(31)

logo-ur

Tri par tas

Effectuer toutes les ´etapes du tri par tas avec les listes : L1;

L2.

Références

Documents relatifs

Démontre que tout entier impair peut s'écrire comme la différence des carrés de deux entiers naturels consécutifsb. Trouve tous les triplets

Attention dans le calcul du discriminant, b² est toujours positif en effet (–13)²=169, il ne faut pas confondre avec -13²=-169.. 4 Résoudre les équations du second degré

Attention dans le calcul du discriminant, b² est toujours positif en effet (–13)²=169, il ne faut pas confondre avec -13²=-169.. 4 Résoudre les équations du second degré

1.. D´ emontrer les propri´ et´ es pr´ ec´ edentes et donner un contre-exemple pour chacun des pi` eges d´ enonc´ es plus haut.. 2. Peut-on en d´ eduire le nombre de fran¸cais

L'insertion d'un élément peut produire un nœud ayant plus de b fils.. Amphi

Équations du premier degré à une inconnue.

[r]

Soit X un schéma dont l’ensemble sous-jacent contient au plus deux points, montrer que X est un schéma affine2. (4) Construire une immersion ouverte d’un schéma dans Spec A qui