[PDF] [PDF] Les arbres binaires de recherche





Previous PDF Next PDF



[PDF] Algorithmes et structures de données : TD 1 Corrigé - Arbres binaires

Algorithmes et structures de données : TD 1 Corrigé Exercice 1 1 Arbres binaires Afficher cet arbre binaire de la mani`ere préfix puis infix 



[PDF] TP 8 : Arbres binaires de recherche - Cedric/CNAM

Exercice 1 Définir une structure struct noeud_s permettant de coder un n÷ud d'un arbre binaire contenant une valeur entière Ajouter des typedef pour 



[PDF] Les arbres-B - Moodle INSA Rouen

Exercice Comment prendre en compte le cas #4 des exemples ? arbre-B - v1 3 31 / 31



[PDF] Travaux Dirigés Exercices corrigés sur les arbres

(iii) en ordre postfixe Solution de l'exercice 2 1 Dessin de l'arbre binaire T (taille = 10) : 2 Code C : #include typedef struct Noeud



[PDF] Correction Devoir semestriel (S3) Module : Informatique

Exercice 2 Soit la liste des valeurs suivantes : 26 20 32 38 53 10 29 34 23 6 15 72 1 L'arbre binaire de recherche (ABR) correspondant à cette liste:



[PDF] Corrigé des exercices

Corrigé des exercices • Arbres binaires £ ¢ ¡ Exercice 1 arbre binaire complet le coût de cette fonction est un ?(nlogn) avec n = A = 2p+1 ? 1



[PDF] Les arbres binaires de recherche

Pour n fixé quelconque donner un exemple d'arbre binaire de hauteur Corrigé Correction de l'exercice 1 Un seul arbre à un nœud deux à deux nøeuds :



[PDF] TD : Arbres Binaires de Recherche (ABR) - ISIMA

Les exercices sont inspirés de [1] Dans toute la suite nous supposerons qu'un arbre binaire de recherche self est construit récursivement par l'utilisation 



Les arbres-B - Institut national des sciences appliquées de

L’arbre-B (ou` B-Tree en anglais) est une SDD utilis´ee dans les do-maines des : syst`emes de gestion de fichiers : ReiserFS (version modifi´ee des arbres-B) ou Btrfs (B-Tree file system) bases de donn´ees : gestion des index L’arbre-B reprend le concept d’ABR ´equilibr´e mais en stockant dans



Un exemple de structure de données hiérarchique : l'arbre B+

L'arbre B et sa variante l'arbre B+ : utilisation dans différents domaine Ex Bases de Données Sous le système Windows NT : utilisation des structures en arbre B pour gérer les fichiers © Maude Manouvrier - Université Paris-Dauphine 1



Exercice 1 : Arbre binaire de recherche (15 points) - CNRS

Exercice 1 : Arbre binaire de recherche (15 points) Dans cet exercice nous nous intéressons aux arbres binaires de recherche (ABR) Pour rappel dans un ABR tous les éléments dans le fils gauche d’un nœud sont plus petits que ce nœud et tous les éléments à droite sont plus grands (cf Annexe pour les fonctions membres de la classe Arbre)

Comment classer un arbre?

Notes Utiliser l’arbre pour classer un exemple Partir de la racine. Repondre aux questions en suivant la branche correspondante. Lire la valeur de la feuille atteinte. F. De Comite Arbres de decision Notes Exemple Aspect du ciel : Soleil Humidite : Normale Vent : Faible Temperature : 30 F. De Comite Arbres de decision

Quelle est la composition d’un arbre ?

Arbre de 20 à 35 m de haut à tronc élancé ; feuilles longues de 20 à 30 cm, composées de 7 à 15 folioles dentées ; fleurs discrètes, non hermaphrodites, réduites à 2 étamines (mâles) ou à un stigmate (femelles), apparaissent avant les feuilles ; bourgeons bruns ; fruits (samares) réunis en grappes lâches et graine entourée d’une membrane ailée.

Comment fonctionne un arbre ?

«Un arbre fonctionne comme une pompe : la sève circule via des vaisseaux à l’intérieur du tronc. Mais lorsqu’il n’y a plus assez d’eau se créé un phénomène de cavitation : de l’air rentre dans les vaisseaux, la pompe arrête de fonctionner et l’arbre meurt » schématise M. Kowalski.

Quelle est la différence entre l’arbre en et l'arbre B ?

L’arbre Arbre B+ (en) diffère légèrement de l’arbre B, en ceci que toutes les données sont stockées exclusivement dans des feuilles, et celles-ci sont reliées entre elles. D’autres variantes existent également, telles que l’ arbre B* (en) .

Institut GaliléeAlgorithmique et arbres

Année 2010-2011L2

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*parent; struct noeud _s*gauche; struct noeud _s*droite; element _t e; *ab_t,*abr_t;

Exercice 1.

Combien y a t"il de formes d"arbres binaires différents à (respectivement)1,2,3,4noeuds? Les dessiner (sans donner de contenu aux noeuds). Pournfixé quelconque donner un exemple d"arbre binaire de hauteur majorée parlogn+ 1, et un exemple d"arbre binaire de hauteurn.

Exercice 2.

Écrire une fonctionTaille(x)prenant un arbre binaire et rendant le nombre de ses éléments.

Exercice 3.

Écrire une fonctionHauteur(x)prenant un arbre binaire et rendant sa hauteur, c"est à dire le nombre d"éléments contenus dans la plus longue branche.

Exercice 4.

Dans les deux exemples d"arbres binaires de recherche de la figure 1 :

1. où peut-on insérer un élément de clé 13?

2. comment peut-on supprimer l"élément de clé 14?

12 3 25
14 15 14 5 29
18 1519

Figure 1:Deux arbres binaires de recherche

Les rotations des arbres binaires sont données dans la figure 2. Elles se lisent comme ceci. Une rotation à droite de centrexconsiste en : prendre l"élémentadex, le sous-arbre droite Edex, la racineydu sous-arbre gauche dex, l"élémentbcontenu dansy, etCetDles deux sous-arbres gauche et droite dey; remplaceraparbdansx, remplacer le sous-arbre gauche de xparC, et le sous-arbre droite dexpar un arbre de racine contenanta(on utiliseypour des raisons d"implantation) et dont les sous-arbres gauche et droite sont respectivementDetE. La rotation à gauche de centrexest l"opération réciproque.

Avec cette manière d"écrire les rotations la référence dexà son parent n"a pas besoin d"être

mise à jour. Il est assez standard de trouver une version qui échange la place dexet deyplutôt

que d"échanger leurs éléments mais nous ne l"utilisons pas ici.

3. Sur le premier exemple de la figure 1, faire : une rotation à droite de centre le noeud de

clé 3; puis une rotation à gauche de centre le noeud de clé 14. 1 a b CD E b Ca DE rotation_droite(x) rotation_gauche(x)yx yx

Figure 2:Rotations gauche et droite. Dans cette version les élémentsaetbsont échangés entre

les noeudsxetymaisxgarde sa place dans l"arbre qui le contient.

4. Sur le second exemple de la figure 1, à l"aide de rotations dont vous préciserez le sens et le

centre, amener le noeud de clé 9 à la racine.

5. Démontrer que toute rotation préserve la propriété d"être un arbre de recherche.

6. Écrire l"algorithme de rotation à droite enC.

7. Écrire un algorithme permettant de remonter à la racine n"importe quel noeud d"unarbre

binaire de recherche, à l"aide de rotations.

Exercice 5(Insertion / suppression ABR).

Former un arbre binaire de recherche en insérant successivement et dans cet ordre les élé-

ments :10,7,3,9,11,5,6,4,8(répondre en représentant l"arbre obtenu). Supprimer l"élément7.

(répondre en représentant le nouvel arbre. Il y a deux réponses correctes possibles,selon la

variante choisie pour l"algorithme de suppression, n"en donner qu"une seule).

31,5 pt13 min

Exercice 6(À la fois ABR et tas?).

Un tas est nécessairement un arbre binaire quasi-parfait. Est-il toujours possible d"organiser un ensemble denclés (nquelconque) en tas max de manière à ce que cet arbre binaire soit aussi un arbre binaire de recherche? (Justifier par un raisonnement ou un contre-exemple).

21,5 pt9 min

Exercice 7.

On peut afficher les éléments d"un ABR de taillenen ordre trié en un tempsO(n).

1. Expliquer comment et argumenter sur le temps d"exécution.

2. Est-ce que la propriété de tas permet d"afficher en ordre trié et en tempsO(n)les éléments

d"un tas de taillen? Argumenter. Indication : on peut planter(former) un tas denéléments en un tempsΘ(n). 2

CorrigéCorrection de l"exercice 1.

Un seul arbre à un noeud, deux à deux nøeuds :

Cinq à trois noeuds :

Quatorze arbres à quatre noeuds (non dessinés). On peut le calculer en trouvant la récurrence :

C n+1=n? k=0C k×Cn-k Qui donne iciC4=C0×C3+C1×C2+C2×C1+C3×C1= 5 + 2 + 2 + 5 = 14. (nombres de

Catalan).

Pournfixé l"arbre quasi-parfait ànnoeuds est tel que si sa hauteur esthalors : 2 L"arbre peigne est quand à lui exactement de hauteurn.

Correction de l"exercice 2.

int taille(ab _t x) { if (estVide(x)) { return 0; return 1 + taille(gauche(x)), taille(droite(x));

Correction de l"exercice 3.

void hauteur(ab _t x) { if (estVide(x)) { return 0; return 1 + max(hauteur(gauche(x)), hauteur(droite(x)));

Correction de l"exercice 4.

L"insertion est donnée par les figures 3 et 4.

La suppression est donnée par les figures 5 et 6.

1. Figure 7.

2. rotation à gauche de centre 5, puis rotation à droite de centre 14.

3 12 3 25
14 1315
Figure 3:Un arbre binaire de recherche -corrigé 14 5 29
13 18 1519
Figure 4:Un autre arbre binaire de recherche -corrigé

3. Il faut montrer la préservation de la propriété d"arbre de recherche. Onse contente de

montrer que si l"arbre à gauche de la figure est un arbre binaire de recherche alors l"arbre à droite en est un,et réciproquement. En effet, pour l"arbre qui contient l"un de cesdeux arbres comme sous-arbre, le fait de remplacer l"un par l"autre ne fait aucune différence : les deux sous-arbres ont mêmes ensembles d"éléments. Pour chacun des deux arbres de la figure on montre qu"être un arbre de recherche, sous l"hypothèse queC,DetEen sont, cle(e), ce qui conclue.

4./*Rotations :

x -> a ---rot. droite de centre x--> b <- x b E <--rot. gauche de centre x--- C a

C DD E

void rotation _droite(ab_t x){ element _t tmp; ab _t y; assert(x && x->gauche); y = x->gauche; *échange des éléments*/ tmp = x->e; x->e = y->e; 4 12 3 25
15 Figure 5:Un arbre binaire de recherche -corrigé B 15 5 29
18 19 Figure 6:Un autre arbre binaire de recherche -corrigé B y->e = tmp; *déplacement des sous-arbres*/ x->gauche = y->gauche; y->gauche = y->droite; y->droite = x->droite; x->droite = y; *mise à jour des parents*/ (x->gauche)->parent = x; (y->droite)->parent = y; void rotation _gauche(ab_t x){ element _t tmp; ab _t y; assert(x && x->droite); y = x->droite; *échange des éléments*/ tmp = x->e; x->e = y->e; y->e = tmp; *déplacement des sous-arbres*/ x->droite = y->droite; y->droite = y->gauche; y->gauche = x->gauche; 5 12 2 3 5 15 14

Figure 7:Question 3.1 - corrigé

x->gauche = y; *mise à jour des parents*/ (x->droite)->parent = x; (y->gauche)->parent = y;

5. Voici l"algo en pseudo-code.

FonctionRemonter(x)

y=Parent(x); siy?=NULLalors /*yexiste,xn"est pas la racine*/ six==Gauche(y)alors /*xest fils gauche dey*/

RotationDroite(y);

sinon /*xest fils droit dey*/

RotationGauche(y);

/*L"élément qui était dans le noeudxest désormais dans le noeudy*/

Remonter(y);

Et en C :

void remonter(abr_t x) { y = x->parent; if (y) { / *x n"est pas encore à la racine*/ if (x == y->gauche) { rotation _droite(y); else { rotation _gauche(y); *l"élément qui était contenu dans x est maintenant dans y*/ remonter(y);

Correction de l"exercice 5.

Pas de correction.

6

Correction de l"exercice 6.

Dès quenvaut3on est confronté à un problème siaest l"élément à la racine de l"arbre

quasi-parfait et quebest son fils gauche etcsont fils droit alors par la propriété des tas on doit

avoira≥cet par la propriété des ABRa < c. Impossible.

Correction de l"exercice 7.

On peut le faire avec la fonction de parcours infixe. Cette fonction est appelée une fois sur chaque noeud de l"arbre et une fois et chacun de ses appels génère au maximum 2 appels sur des

noeuds vides (NULL) ne générant aucun nouvel appel. Ainsi il y a au maximum3?nappels à cette

fonction au cours d"un parcours (on pourrait être plus précis et trouver2n+ 1) et chaque appel se faisant en temps constant (pas de boucle), le temps total du parcours est void parcours _infixe(abr_t x) { if (x) { parcours _infixe(x->gauche); affiche _element(x->e); parcours _infixe(x->droite); Si on pouvait parcourir les éléments d"un tas en ordre trié en tempsO(n), comme on plante un tas enO(n), on aurait un tri par comparaison enO(n). Impossible. Le parcours du tas en ordre trié est ainsi nécessairement enΩ(nlogn). 7quotesdbs_dbs26.pdfusesText_32
[PDF] structure de données exercices corrigés pdf

[PDF] b-arbre exercices corrigés

[PDF] insertion arbre binaire de recherche

[PDF] structure de données les arbres exercices corrigé

[PDF] arbre binaire de recherche suppression

[PDF] exercices sur les arbres binaires en c

[PDF] exercice corrigé arbre rouge et noir

[PDF] arbre binaire de recherche en c

[PDF] les arbres en c openclassroom

[PDF] arbre binaire de recherche algorithme

[PDF] arbre binaire de recherche algorithme suppression

[PDF] parcours en profondeur arbre

[PDF] arbre binaire complet

[PDF] dénombrement cours

[PDF] arbre de probabilité pile ou face