• Aucun résultat trouvé

Arbres Binaire de Recherche (ABR)

N/A
N/A
Protected

Academic year: 2022

Partager "Arbres Binaire de Recherche (ABR)"

Copied!
23
0
0

Texte intégral

(1)

Arbres Binaire de Recherche (ABR)

definition

Un noeud a (au plus) deux fils.

Un noeud porte un étiquette entière.

Les étiquettes du sous arbre gauche d’un noeud sont plus petites que l’étiquete du noeud.

Les étiquettes du sous arbre droit d’un noeud sont plus grande que l’étiquete du noeud.

Intéret

Celà stoque efficacement des entiers :

recherche, insertion et supression en O(hauteur)

(2)

Exemple

1 2

3

4

5 6

7

Noeud 8 à gauche du noeud 7 c’est interdit

(3)

Contre-exemple

1 2

3

4

5 6

7

8

Noeud 8 à gauche du noeud 7 c’est interdit

(4)

Arbres Binaire de Recherche par Intervals (ABRI)

definition

Un noeud a (au plus) deux fils.

Un noeud portedeuxétiquettes entières (p,q).

On a toujours pq.

Les étiquettes du sous arbre gauche d’un noeud étiquetés par(p,q) sont strictement plus petites quep1.

Les étiquettes du sous arbre droit d’un noeud étiquetés par (p,q) sont strictement plus grandes quep+1.

Intéret

Le stoquage est plus éfficace en cas de contenus que se suivent.

(5)

Exemple

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

A

25 et 48 sont-ils dans l’arbre ?

(6)

25 est-il dans l’arbre ?

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

A

Oui car 122536

(7)

48 est-il dans l’arbre ?

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

A

Non car 45<48<50

(8)

Exemple

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

25 est-il dans l’arbre ? Oui

(9)

Contre-exemple

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

[99,99]

Noeud[99,99] à gauche du noeud[85,89]

c’est interdit

(10)

Contre-exemple

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

[80,78]

[80,75]n’est pas un interval c’est interdit

(11)

Contre-exemple

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

[80,86]

Les intervals[80,86]et[85,89]se recoupent c’est interdit

(12)

Contre-exemple

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

[80,84]

Les noeuds[80,84]et[85,89] se suivent c’est interdit

(13)

Recherche, insertion, suppression

Principe de la recherche

Le même que pour les ABR:

on teste dans l’interval courant,

s’il est trop petit on descend à gauche, s’il est trop grand, à droite.

Principe de la suppression de x

on recherchex,

si on ne le trouve trouve pas on arrète,

si on le trouve, on découpe l’interval en deux.

Principe de l’insertion dex

on descend comme pour une recherche,

si on trouve l’entier on arrète,

si l’entier inseré est adjacent au noeud on alonge le noeud et on regarde s’il y une fusion en dessous,

si on arrive à une feuille on rejoute un interval[x,x].

(14)

Recherche, insertion, suppression

Principe de la recherche

Le même que pour les ABR:

on teste dans l’interval courant,

s’il est trop petit on descend à gauche, s’il est trop grand, à droite.

Principe de la suppression de x

on recherchex,

si on ne le trouve trouve pas on arrète,

si on le trouve, on découpe l’interval en deux.

Principe de l’insertion dex

on descend comme pour une recherche,

si on trouve l’entier on arrète,

si l’entier inseré est adjacent au noeud on alonge le noeud et on regarde s’il y une fusion en dessous,

si on arrive à une feuille on rejoute un interval[x,x].

(15)

Recherche, insertion, suppression

Principe de la recherche

Le même que pour les ABR:

on teste dans l’interval courant,

s’il est trop petit on descend à gauche, s’il est trop grand, à droite.

Principe de la suppression de x

on recherchex,

si on ne le trouve trouve pas on arrète,

si on le trouve, on découpe l’interval en deux.

Principe de l’insertion dex

on descend comme pour une recherche,

si on trouve l’entier on arrète,

si l’entier inseré est adjacent au noeud on alonge le noeud et on

(16)

Exemple d’insertion dificile

On veut inserer 84:

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

[80,83]

(17)

Exemple d’insertion dificile

On compare à(p,q)=(50,75)

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

[80,83]

(18)

Exemple d’insertion dificile

Plus grand que 76

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

[80,83]

(19)

Exemple d’insertion dificile

On compare à(p,q)=(85,89)

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[85,89]

[80,83]

(20)

Exemple d’insertion dificile

Vaut 851, on alonge l’interval

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[84,89]

[80,83]

(21)

Exemple d’insertion dificile

Problème : [80,83]et[84,89] sont adjacent

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[84,89]

[80,83]

(22)

Exemple d’insertion dificile

Solution : on les fusionne

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[80,89]

(23)

Exemple d’insertion dificile

On a fini

[0,2]

[5-6]

[8,8]

[12,36]

[42,45]

[50,75]

[80,89]

Références

Documents relatifs

On appelle arbre binaire (au maximum deux enfants par noeud) de recherche (ABR) un arbre ayant la propriété que chaque noeud ait une valeur au moins aussi grande que tout noeud

On appelle arbre binaire (au maximum deux enfants par noeud) de recherche (ABR) un arbre ayant la propriété que chaque noeud ait une valeur au moins aussi grande que tout noeud

Chercher sur Internet l‘algorithme DSW (c’est un algorithme qui prend en entrée un arbre de recherche binaire afin de réaliser son équilibrage) et l’algorithme de

Mode d’emploi : À imprimer sur du papier à étiquettes blanches multi-usages A4 - 9,91 x 3,81 cm (planche de 14 étiquettes) disponible au rayon

Dans un arbre binaire de recherche, en général, est-ce qu'il est plus coûteux de trouver l’enfant d'un noeud ou de faire une rotation autour d'un

d- En supposant qu’il existe une fonction point/2 qui permette de dessiner un point de coordonn´ ees (x, y), d´ efinir une fonction qui dessine la repr´ esentation graphique

Pour un arbre binaire de recherche contenant des entiers, nous considérerons que les valeurs des noeuds des sous arbres gauche sont inférieur à la racine de ce noeud et les

“Past-pointing” = laisser du mou sur le brin libre (loop), passer le pousse- noeud au-delà du noeud et serrer le noeud..