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’eectuent 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
IFT2015Miklos Cs}uros 10 avril 2012
13 Table de symboles et arbres binaires de recherche
13.1 Table de symboles
Type abstraittable de symboles(symbol table) oudictionnaire: ensemble d"objets avec cl´es. Typique-
ment (mais pas toujours!) les cl ´es sont comparables (abstraction : nombres naturels). Op´eration principale :
?search(k): recherche d"un´el´ement`a cl´ek op´eration fondamentale - peutˆetre fructueuse ou
infructeuse. Op´erations souvent support´ees :
?insert(x): insertion de l"´el´ementx(cl´e+info) ?delete(k): supprimer´el´ement avec cl´ek ?select(i): s´election de l"i-`eme´el´ement (selon l"ordre des cl´es)Implantations
´el´ementaires
?liste chaˆın´ee ou tableau non-tri´e : recherche s´equentielle - temps de(n)au pire (mˆeme en moyenne),
mais insertion/suppression en(1)[si non-tri´e] ?tableau tri´e : recherche binaire - temps de(logn)au pire, mais insertion/suppression en(n)au pire cas13.2 Arbre binaire de recherche (ABR)(fr)961238111571419chaque noeud interne poss
`ede une cl´e : les cl´es sont comparables. D ´efinition 13.1.Dans unarbre binaire de recherche (ABR), les noeuds internes poss `edent des cl´es comparables, en respectant un ordre parmi les enfants gauches et droits : le parcours infixe´enum`ere les noeuds internes dans l"ordre
croissant de cl´es.
On sp´ecifie l"ABR par sa racineroot. Acc`es aux
noeuds : x: leftetx:rightpour les enfants dex (nullsi l"enfant est un noeud externe) x: parentpour le parent dex (null`a la racine) x: keypour la cl´e d"un noeud internex (en g´en´eral, un entier dans nos discussions)
Normalement, on indique les noeuds externes parnull(donc, p.e.,x:parentn"est pas valide quandxest un noeud externe). Th´eor`eme 13.1(Ordre d"ABR).Soitxun noeud interne dans un arbre binaire de recherche. Siy6=xest un noeud
interne dans le sous-arbre gauche dex, alorsy:key< x:key. Siy6=xest un noeud interne dans le sous-arbre droit de
x, alorsy:key> x:key. 113.3 Op
´erations sur l"ABR
Op ´erations : la structure ABR permet l"implantation efficace derecherched"une valeur particuli`ere (op´eration principale du TAD dictionnaire),insertionetsuppressiond"´el´ements (op´erations optionnelles
pour dictionnaires dynamiques), et m ˆeme recherche deminoumax(permettant l"implantation de file`a priorit´e), et beaucoup d"autres.Recherche.SEARCH(root;v)retourne (a) soit un noeud dont la cl´e est´egale`av, (b) soitnulls"il n"y a
pas de noeud avec cl ´ev. Th´eor`eme 13.1 m`ene`aux algorithmes suivants bas´es sur la mˆeme logique.Solution r
´ecursive Solution it´erativeSEARCH(x,v) //trouve cl´evdans le sous-arbre dexS1ifx=nullouv=x:keythen returnx
S2ifv < x:key
S3then returnSEARCH(x:left;v)
S4else returnSEARCH(x:right;v)SEARCH(x,v) //trouve cl´evdans le sous-arbre dexS1whilex6=nulletv6=x:keydo
S2ifv < x:key
S3thenx x:left
S4elsex x:right
S5returnx96123811157141914insertion de "14»Insertion.Pour ins´erer une cl´evil suffit d"attacher son
noeud interne en remplac¸ant un seul noeud externe, identifi ´e a l"´echec de SEARCH(v).INSERT(v) //ins`ere la cl´evdans l"arbreI1x root;y nouveau noeud;y:key v
I2ifx=nullthenroot y;return
I3loop//boucler : conditions d"arrˆet test´ees dans le corps I4ifv=x:keythen erreur//on ne permet pas de cl´es dupliqu´eesI5ifv < x:key
I6then ifx:left=null
I7thenx:left y;y:parent x;return//attacherycomme enfant gauche dexI8elsex x:left
I9else ifx:right=null
I10thenx:right y;y:parent x;return//attacherycomme enfant droit dexI11elsex x:right2
Suppressiondu noeud x.
0. triviale si xn"apas d"enfantsinternes : fairex:parent:left nullsixest l"enfant gauche de son parent, oux:parent:right nullsixest l"enfant droit 1. facile si xa seulement1 enfant: fairex:parent:left x:right;x:right:parent x:parentsixa unenfant droit etxest l"enfant gauche de son parent (il y a 4 cas en total d´ependant de la position dexet
celle de son enfant) 2. un peu plus compliqu ´e sixa2 enfants: on trouve d"abord remplacement (successeur ou pr´edecesseur dans le parcours infixe)9612381115714191314 (1) pour supprimer ce noeud x, on cherche un autre qui peut le remplacer (2) pour le remplacement, on peut utiliser le successeur de x c"est le min dans le sous-arbre droitLemme 13.2.Le noeud avec la cl´e minimale dans le sous-arbre droit dex n"a pas d"enfant gauche. )il est facile d"enlever le succes- seur (d"un noeud `a deux enfants)...DELETE(z) //supprime le noeudz D1ifz:left=nullouz:right=nullalorsy z//cas 1. ou 2.D2elsey MINz:right//cas 3.
//c"est le noeudyqu"on enl`eve physiquement : un de ses enfants est externe D3ify:left6=nullthenx y:leftelsex y:right//le noeudxremplacey`a son parentD4ifx6=nullthenx:parent y:parent
D5ify:parent=nullthenroot x//y´etait la racine
D6else//on remplace
D7ify=y:parent:lefttheny:parent:left x//yest enfant gaucheD8elsey:parent:right x//yest enfant droit
D9ify6=zthenremplacer noeudzparydans l"arbre //copier contenu :z:key y:keyExercice 13.1.I´Ecrire l"algorithmeSUCCESSEUR(x)qui trouve le successeur du noeudxdans le parcours infixe.IMontrer
que le temps de calcul deSUCCESSEUR(x)est(h)dans le pire cas o`uhest la hauteur de l"arbre.IMontrer que le temps de
calcul est(1)en moyenne (quandxest un noeud al´eatoire dans l"arbre).Indice: consid´erer un parcours infixe en utilisant l"it´eration
x SUCCESSEUR(x). 3 S´electionTh´eor`eme 13.1 sugg`ere imm´ediatement la d´emarche pour trouver le minimum ou le maxi-
mum.MIN(r) //noeud`a cl´e minimale dans le sous-arbre der1x r;y null
2whilex6=nulldoy x;x x:gauche
3returnyMAX(r) //noeud`a cl´e maximale dans le sous-arbre der
1x r;y null
2whilex6=nulldoy x;x x:droit
3returnyExercice 13.2.Pour implanter l"op´erationselect(i)(qui retourne lei-`eme´el´ement selon l"ordre de cl´es), on a besoin de stocker
la taille de chaque sous-arbre`a sa racine par la variablex:size:x:sizeest le nombre d"internes dans le sous-arbre enracin´e au noeud
internex.IDonner une d´efinition r´ecursive pourx:size.IDonner un algorithme r´ecursif pour initialiserx:sizepartout dans un
ABR donn
´e.IMontrer comment mettre`a jourx:sizelors d"une insertion ou suppression.13.4 Temps de calcul des op
´erations
Les op
´erations prennentO(h)au pire dans les implantations dex13.3.Hauteurs extr ˆemes.Par Th´eor`eme 7.2 (v. aussi Exercice 7.2), la hauteurhd"un arbre binaire avecn noeuds internes est born ´ee commelg(n+ 1)hnavec´egalit´es dans le cas d"un arbre binaire completa la borne inf´erieure, et l"arbre r´esultant de l"ins´ertion succ´essive d"´el´ements1;2;3;4;:::;n.Arbre"moyen».
D´efinition 13.2.UnABR al´eatoirese construit en ins´erant les valeurs1;2;:::;nselon une permutation al´eatoire,
choisie`a l"uniforme.REMARQUE. Notez que cette notion est tout`a fait diff´erente de celle d"une strcuture choisie`a l"uniforme : les 6 permutations des
cl ´esf1;2;3;gm`enent`a juste 5 arbres possibles.Th´eor`eme 13.3(Bruce Reed & Michael Drmota).La hauteur d"un ABR al´eatoire surncl´es estEh=lgn
lglgn+O(1)en esp´erance o`u2:99et=32lg(=2)1:35. La variance de la hauteur al´eatoire estO(1). Le th´eor`eme 13.3 applique au pire cas des op´erations (noeud externe le plus distant) d"un ABR al´eatoire.
Il montre que les op
´erations prennentO(logn)en moyenne. La preuve du th`eor`eme est trop compliqu´eepour les buts de ce cours.Profondeur moyenne.Le temps moyen de la recherche (ou d"insertion) correspond au niveau moyen
de noeuds internes parce que c"est o `u la recherche se termine. On va d´emontrer que la profondeur moyenneestO(logn). La preuve exploˆıte la correspondance`a une ex´ecution du tri rapide : le pivot du sous-tableau
correspond `a la racine du sous-arbre. D´efinition 13.3.Soitxun noeud interne d"un ABR, et soitTxle sous-arbre enracin´e`ax. Pour tout noeud interne
y2Tx, la distanced(x;y)est d´efinie comme la longueur du chemin dex`ay. On d´efinitd(x) =P y2Txd(x;y) comme la somme des profondeurs des noeuds internes dans le sous-arbreTxenracin´e`ax.Avec cette d
´efinition,d(root;y)est la profondeur (ou niveau) du noeudyetd(racine)n est la moyenne des profondeurs dans l"arbre. Th´eor`eme 13.4.SoitD(n) =Ed(root)l"esp´erance de la somme des profondeurs dans un arbre al´eatoire avecncl´es
comme en Th´eor`eme 13.3. Alors,D(n)=n=O(logn)
D ´emonstration.Preuve comme pour Th´eor`eme 12.1 (temps de calcul moyen du tri rapide). 413.5 Rotations
(en)Vu que la performance d"un ABR est d
´etermin´ee par sa hauteur, des implantations efficaces visent`a maintenir un arbre´equilibr´e.yx
ABC xy BCA Rotation droite à yRotation gauche à xLa technique principale dans l"´etablissement de l"´equilibre est la
rotation. Les rotations (gauche ou droite) - pr´eservent la propri´et´e
des arbres de recherche et prennent seulementO(1).ROTR(y)//rotation droite`ayR1x y:left;B x:right;p y:parent
R2x:right y;y:parent x
R3y:left B;ifB6=nullthenB:parent y
R4x:parent p
R5ifp6=nullthen
R6ify=p:leftthenp:left x
R7elsep:right xROTL(x)//rotation gauche`ax
L1y x:right;B y:left;p x:parent
L2y:left x;x:parent y
L3x:right B;ifB6=nullthenB:parent x
L4y:parent p
L5ifp6=nullthen
L6ifx=p:leftthenp:left y
L7elsep:right yIl existe de nombreuses implantations efficaces qui utilisent des rotations : (Randomisation)En maintenant une variablex:size`a chaque noeeud internex(v. Exercice 13.2) qui stocke le nombre de noeuds internes dans le sous-arbre dex, on peut simuler l"ABR al´eatoire de D´ef. 13.2, ind´ependamment de l"ordre des insertions. L"id´ee est de d´ecider lors de la descente dans
INSERT(v)au hasard quevdevienne la racine du sous-arbre1Pour un tel arbre, les op´erations prennent
O(logn)en moyenne(individuellement). (Mais un temps de calcul de(n)arrive avec une probabilit´e positive.) (Amortisation)Dans un arbresplay, on remonte un noeud jusqu"`a la racine par des rotations selon une logique analogue `a celle de compression de chemin par r´eduction`a moiti´e d"Union-find (path halving,v.x6.5). Dans un tel arbre, une s´equence quelconque demop´erations s"ex´ecute enO(mlogn)au pire
cas2, donc les op´erations prennentO(logn)detemps amorti.
(Optimisation)La hauteur estO(logn)au pire cas(individuellement) pour beaucoup de genres d"arbres de recherche ´equilibr´es : arbre AVL, arbre rouge-noir, arbre 2-3-4. Il faut toujours stocker au moins une variable additionnelle `a chaque noeud interne pour guider la d´emarche de rotations.1Plus pr´ecisement, au noeud internex, on performe une"insertion`a la racine»avec probabilit´e1=(x:size+ 1): apr`es avoir
inser´evdans le sous-arbre dexselon la d´emarche usuelle, on remonte`ax, en performant des rotations jusqu"`ax.
2ici,nest la taille maximal de l"arbre pendant la s´equence
5quotesdbs_dbs13.pdfusesText_19[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