[PDF] Arbres binaires de recherche [br] Algorithmique





Previous PDF Next PDF



Arbres binaires de recherche [br] Algorithmique

Un arbre binaire de recherche est une structure de donnée qui permet de représen- sont l'insertion la suppression et la recherche d'une valeur.



Algorithmes sur les arbres binaires de recherche

Seconde implémentation : Arbre Binaire de Recherche Recherche puis suppression dans le cas où l'élément est dans une feuille. `a supprimer.



Programmation fonctionnelle

23 nov. 2011 Un arbre binaire est ordonné (ou de recherche) par rapport `a une ... La suppression d'un élément x dans un arbre binaire de recherche.



ARBRES BINAIRES DE RECHERCHE

temps de ?(logn) au pire tableau trié : insertion/suppression en ?(n) au pire cas Dans un arbre binaire de recherche chaque nœud a une clé.



INF601 : Algorithme et Structure de données - Cours 2 : TDA Arbre

27 févr. 2010 6 Suppression d'un élément ... adjonction et suppression peuvent être en O(n) ... celle de l'arbre binaire de recherche ...



Les arbres binaires de recherche équilibrés

10 Correction d'un arbre rouge-noir après une suppression (cas 2) . La propriété d'arbre binaire de recherche permet de trouver d'insérer ou de.



INF421-a Bases de la programmation et de lalgorithmique Tas

7 oct. 2005 Arbres binaires de recherche. Supprimer dans un tas (la racine). On enl`eve la racine du tas. ? Retasser : le contenu du nœud le plus `a ...



Programmation avancée - Chapitre 1 : Complexité et les ABR

Recherche. Ajout aux feuilles. Ajout à la racine. Suppression. Analyse. Programmation avancée. Chapitre 1 : Complexité et les ABR (arbres binaires de.



Arbres binaires de recherche

Question 8 (Suppression). ´Ecrivez une fonction remove max prenant pour argument un arbre binaire de recherche non-vide a et qui retourne le couple (a z) 



Sommaire

Les arbres binaires de recherche (ABR) constituent une structure permettant de algorithmes d'accès d'insertion ou de suppression de données.



Cours 4 : Les arbres binaires - LRI

Un arbre binaire de recherche (ABR) est un arbre binaire dans lequel chaque nœud possède une clé telle que • chaque nœud du sous-arbre gauche possède une clé inférieure ou égale à celle du nœud considéré • chaque nœud du sous-arbre droit possède une clé supérieure ou égale à celle-ci



Les arbres binaires de recherche équilibrés

Un arbre binaire de recherche est une structure de donn ee qui permet de repr esen-ter un ensemble de valeurs si l’on dispose d’une relation d’ordre sur ces valeurs Les op erations caract eristiques sont l’insertion la suppression et la recherche d’une valeur Ces op erations sont peu cou^teuses si l’arbre n’est pas trop d es



ARBRES BINAIRES DE RECHERCHE - Université de Montréal

A l’aide d’un arbre de recherche on peut impl` ementer une table de symboles d’une´ maniere tr` es ef?cace ` Operations :´ recherche d’une valeur particuliere` insertion ou suppression d’une valeur recherche de min ou max et des autres Pour la discussion des arbres binaires de recherche on va considerer les pointeurs´



13 Table de symboles et arbres binaires de recherche

? tableau tri´e : recherche binaire — temps de (log n) au pire mais insertion/suppression en ( n) au pire cas 13 2 Arbre binaire de recherche (ABR) (fr) 9 6 12 3 8 11 15 1 4 7 19 chaque nœud interne poss`ede une cl ´e : les cl es sont´ comparables De?nition 13 1 ´ Dans un arbre binaire de recherche



Algo 2 séance 6 Arbres binaires de recherche (ABR (suite

Arbres binaires de recherche (ABR (suite) : suppression et arbres equilibr es Franck Hetroy et Denis Trystram mars 2017 1/37 ECOLE NATIONALE SUPERIEURE 1 / 37 D’INFORMATIQUE ET DE MATHEMATIQUES APPLIQUEES



Searches related to arbre binaire de recherche suppression PDF

Arbre binaire de recherche Un arbre binaire de recherche est un arbre binaire dans lequel chaque sommet est etiquet e par un couple (k;D) avec la propri et e suivante: I tous les sommets du sous-arbre gauche ont une cl e inf erieure a k droit ont une cl e sup erieure a k Exemple: 7 3 1 4 5 9 8 (Seules les cl es sont repr esent ees dans les

Comment définir un arbre binaire?

Un arbre binaire est : – soit l’arbre vide?; – soit un nœud A(g,r,d), où g désigne le sous-arbre gauche, d le sous-arbre droit, et r ? E les données satellites stockées dans le nœud. Dé?nition 2 (Arbre binaire de recherche).

Quand un arbre binaire est dit tasse ?

Un arbre binaire est dit tasse si Itous les niveaux sauf peut-^etre le dernier sont complets.

Comment reequilibrer un arbre ?

Iinserer, rechercher, supprimer, maximum, minimum s’e ectuent en temps O(log n). Remarque: reequilibrer un arbre Iapres une insertion, en fait une seule rotation, ou double rotation sut. Iapres une suppression, il peut y avoir jusqu’a h rotations ou double rotations.

Comment supprimer la racine d'un sous-arbre ?

IOn supprime la racine du sous-arbre correspondant: static ArbresupprimerRacine(Arbre a) { //Castrivial&Facile if (a.gauche==null) return a.droite; if (a.droite==null) return a.gauche; //Casmoinsfacile Arbre g= maximum(a.gauche); return new Arbre(supprimer(g.k,a.gauche),g.k,g.D,a.droite);} 20 Complexite des algorithmes

Arbres binaires de recherche [br]

Algorithmique

Karine Zampieri, Stephane Riviere

UniscielalgoprogVersion 21 mai 2018

Table des matieres

1 Denition, Parcours, Representation

2

2 Recherches

4

2.1 Recherche d'un element

4

2.2 Minimum et maximum

5

2.3 Successeur et predecesseur

5

3 Insertion d'un element

8

4 Suppression d'un element

9

5 Conclusion

1 2 Arbres binaires de rechercheMots-ClesArbres binaires de recherche RequisAxiomatique imperative, Recursivite des actions, Complexite des algorithmes,

Arbres enracines

Diculte• • ◦Introduction

Unarbre binaire de rechercheest une structure de donnee qui permet de represen- ter un ensemble de valeurs si l'on dispose d'une relation d'ordre sur ces valeurs. Les operations caracteristiques sont l'insertion, la suppression et la recherche d'une valeur. Ces operations sont peu co^uteuses si l'arbre n'est pas trop desequilibre. En pratique, les valeurs sont des cles permettant d'acceder a des enregistrements. Ce module les decrit puis denit les operations caracteristiques (recherche, insertion, suppression). 1 Unisciel algoprog { br00cours-texte, May 21, 20182

1 Denition, Parcours, RepresentationDenition d'un ABR

Unarbre binaire de recherche(abrege ABR) est un arbre binaire veriant la propriete suivante : soientxetydeux noeuds de l'arbre : •Siyest un noeud du sous-arbre droit dexalorscle(y)≥cle(x)Exemple L'arbre suivant est un ABR : pour tout noeudpdeA, la valeur depest strictement plus grande que les valeurs gurant dans son sous-arbre gauche et strictement plus petite que les valeurs gurant dans son sous-arbre droit.Remarque La denition suppose donc qu'une valeur n'appara^t au plus qu'une seule fois dans un arbre de recherche.Attention Bien que dierents, ces deux arbres ABRcontiennentexactementles m^emes valeurs.6 3 247
13 915
18 17206
3 247
13 915
17 18 20 Unisciel algoprog { br00cours-texte, May 21, 20183Parcours d'un ABR Le parcours inxe fournit la suite ordonnee des cles :Representation d'un ABR Un noeud sera representee par les champs :étiquette,filsdroit,filsgauche,père.Champ pere Il permet de traverseriterativementun ABR. Il permet egalement la recherche du successeuretpredecesseurd'un noeud. Unisciel algoprog { br00cours-texte, May 21, 20184

2 Recherches

2.1 Recherche d'un elementPrincipe

La recherche d'une valeur dans un ABR consiste, en partant de la racine, a parcourir une branche en descendant chaque fois sur le ls gauche ou sur le ls droit selon que la cle portee par le noeud est plus grande ou plus petite que la valeur cherchee. La recherche s'arr^ete des que la valeur est rencontree ou que l'on a atteint l'extremite d'une branche (le ls sur lequel il aurait fallu descendre n'existe pas).Algorithme de recherche Recherche d'une valeurka partir d'un noeudxd'un ABR :ABRRecherche(x,k)

DébutSix= Nil AlorsRetournerFaux

Sinon

Si k= cle (x)AlorsRetournerVrai

Sinon Si k< cle (x)AlorsRetournerABRRecherche(gauche(x),k)Sinon

RetournerABRRecherche(droit(x),k)FinSi

Fin Unisciel algoprog { br00cours-texte, May 21, 20185

2.2 Minimum et maximumPrincipe

Pour acceder a la cle la plus petite (resp. la plus grande) dans un ABR, il sut de descendre sur le ls gauche (resp. le ls droit) autant que possible. Le dernier noeud visite qui n'a pas de ls gauche (resp. ls droit), porte la valeur la plus petite (resp. la plus grande) de l'arbre.Algorithme Minimum Recherche du minimum a partir d'un noeudxd'un ABR :ABRMinimum(x) DébutTantQuegauche(x) <>Nil Fairex<- gauche (x)

FinTantQue

Retourner(x)Fin

Algorithme Maximum

Par symetrie :ABRMaximum(x)

DébutTantQuedroit(x) <>Nil Fairex<- droit (x)

FinTantQue

Retourner(x)Fin

2.3 Successeur et predecesseurPrincipe

Si toutes les cles dans l'arbre ABR sont distinctes, le successeur d'un noeudkest le noeud contenant la plus petite cle superieure ak. Considerons le fragment d'arbre presente sur la gure :k A B y x

De par la propriete des ABR :

Unisciel algoprog { br00cours-texte, May 21, 20186 1. L eso us-arbreAne contient que des cles inferieures ak: il ne peut pas contenir le successeur dek. 2. L eso us-arbreBne contient que des cles superieures ak: il peut contenir le suc- cesseur dekque s'il n'est pas vide.

3.ydesigne le plus proche anc^etre dekqui soit le ls gauche de son pere (y=ksi

kest ls gauche de son pere). Tous les anc^etres dekjusqu'aysont inferieurs ou egaux aket leurs sous-arbres gauches ne contiennent que des valeurs inferieures a k.

4.xest le pere dey. Sa valeur est superieure a toutes celles contenues dans son sous-

arbre gauche (de raciney) et donc aket a celles deB. Toutes les valeurs de son sous-arbre droit sont superieures ax. En resume : siBest non vide, son minimum est le successeur dek, sinon le successeur dekest le premier anc^etre (ascendant) dekdont le ls gauche est aussi anc^etre dek. Si cet ascendant n'existe pas c'est quekportait la valeur la plus grande dans l'arbre. Unisciel algoprog { br00cours-texte, May 21, 20187Exemple Remarquez qu'il est necessaire d'avoir pour chaque noeud un lien vers son pere pour mener a bien cette operation.Algorithme Successeur

ABRSuccesseur

x DébutSidroit(x) <>Nil AlorsRetournerABRMinimum(droit(x))Sinon y p re x

TantQuey<> Nil etx= droit (y)Fairex<- y

y p re x

FinTantQue

Retourner(y)FinSi

Fin Unisciel algoprog { br00cours-texte, May 21, 20188

3 Insertion d'un elementPrincipe

L'element a ajouter est insere la ou on l'aurait trouve s'il avait ete present dans l'arbre. L'algorithme d'insertion recherche donc l'element dans l'arbre et, quand il aboutit a la conclusion que l'element n'appartient pas a l'arbre (l'algorithme aboutit surNil), il insere l'element comme ls du dernier noeud visite.Algorithme d'insertion

ABRInsertion

T z

Débutx<- racine (T)

p re_de_x Nil

TantQuex<> Nil Fairepère_de_x<- x

Sicle(z) Sinon x droit x FinSi

FinTantQue

p re z p re_de_x

Sipère_de_x= Nil Alorsracine(T) <-z

Sinon si cle(z) Ecrivez une version recursive de l'operation.

Unisciel algoprog { br00cours-texte, May 21, 20189

4 Suppression d'un element

L'operation de suppression depend du nombre de ls du noeud a supprimer dans l'ABR. Les dierents cas de gure possibles sont les suivants (les noeuds a supprimer sont en gris fonce) :Cas 1 : Cas d'une feuille Le noeud a supprimer n'a pas de ls : on l'elimine simplement de l'arbre en modiant le lien de son pere. Si le pere n'existe pas, l'arbre devient l'arbre vide.Exemple

Cas 2 : Cas d'un unique ls

Le noeud a supprimer a un unique ls : on detache le noeud et on relie directement son pere et son ls. Si ce pere n'existe pas, l'arbre est reduit au ls unique du noeud supprime.Exemple Unisciel algoprog { br00cours-texte, May 21, 201810Cas 3 : Cas de deux ls Le noeud a supprimer a deux ls : on le remplace par son predecesseurqqui, dans ce cas, est toujours le maximum de son sous-arbre gauche (on peut prendre indieremment son successeur qui est alors le minimum de son sous-arbre droit). Puisque le noeudq a la valeur la plus grande dans le ls gauche, il n'a donc pas de ls droit, et peut ^etre decroche comme on l'a fait dans les cas 1 et 2.Exemple

Algorithme de suppression

Il tient compte des conditions aux limites (changement de racine).ABRSuppression(T,x) DébutSigauche(x) =Nil etdroit(x) =Nil AlorsSipère(x) =Nil Alorsracine(T) <-Nil Sinon Six= gauche (père(x))Alorsgauche(père(x)) <-Nil Unisciel algoprog { br00cours-texte, May 21, 201811Sinon droit p re x Nil FinSi FinSi Sinon Si gauche(x) =Nil Oudroit(x) =Nil AlorsSigauche(x) <>Nil Alorsfilsde_x<- gauche (x) Sinon filsde_x droit x FinSi p re filsde_x p re x

Sipère(x) =Nil Alorsracine(T) <-filsde_x

Sinon Sigauche(père(x)) =x Alorsgauche(père(x)) <-filsde_x Sinon droit p re x filsde_x FinSi FinSi Sinon xmin

ABRMinimum

droit x cle y cle xmin

ABRSuppression

T xmin FinSi

RetournerTFin

Unisciel algoprog { br00cours-texte, May 21, 201812quotesdbs_dbs9.pdfusesText_15
[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

[PDF] arbre de probabilité seconde

[PDF] arbre probabilité conditionnelle

[PDF] arbre de décision exercices corrigés

[PDF] arbre de décision data mining

[PDF] cours arbre de décision