[PDF] Arbres binaires ensembles Un contre-exemple d'arbre





Previous PDF Next PDF



INF421-a Bases de la programmation et de lalgorithmique Tas

7 oct. 2005 Un tas en Java. Arbres binaires de recherche. Définition des tas. Un arbre binaire est tassé quand tous ses niveaux sont enti`erement.



Listes et arbres binaires

Arbres binaires arbre binaires de recherche Comment représenter les listes en java ? ... Chainon.java:20: cannot assign a value to final variable this.



• Piqûre de rappel sur les références • Evaluation dexpressions

Les arbres binaires en Java class Arbre {. Arbre filsG; int contenu;. Arbre filsD;. Arbre(Arbre a int v



Arbres binaires ensembles

Un contre-exemple d'arbre binaire de recherche Java fournit les ensembles d'objets réalisés par des arbres équilibrés : la classe TreeSeta (package ...



TP 8 : Arbres binaires de recherche

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 



TD 6 Arbres binaires 1 Exercices

10 nov. 2005 heureusement java encapsule automatiquement l'entier param`etre dans un Integer ... 2.5 Exo 5 : chercher un élément dans un arbre binaire.



ITI 1521. Introduction à linformatique II - subtitle

pour ajouter et retirer un élément d'un arbre binaire de recherche. Discuter l'efficacité du traitement récursif des arbres en Java notamment par.



Mise en œuvre des ensembles (II) Mise en œuvre no3 : arbres de

3. les arbres binaires de recherche (classe TreeSet). 2. Interface Set (rappel) une simplification de celle de la bibliothèque Java.



1 Les arbres binaires en Java

– objets de parcours. 1 Les arbres binaires en Java. L'orientation Objet de Java impose de compliquer légèrement la structure des pointeurs qui.



Parcours dun arbre binaire

Un arbre binaire est un arbre avec racine dans lequel tout noeud a au plus deux fils : un éventuel fils gauche et un éventuel fils droit. On illustrera avec l' 



[PDF] Les structures de données Les arbres (binaires) - LACL

Arbres binaires Des arbres où chaque nœud a au plus 2 descendants Notez qu'un arbre vide est un arbre et donc si un descendant est un arbre vide (branche)



[PDF] Listes et arbres binaires - LIRMM

Arbres binaires arbre binaires de recherche Listes et arbres binaires IV 2 Listes chaînées Utile si le nombre d'éléments n'est pas connu à l'avance et 



[PDF] Parcours dun arbre binaire

Un arbre binaire est un arbre avec racine dans lequel tout noeud a au plus deux fils : un éventuel fils gauche et un éventuel fils droit On illustrera avec l' 



[PDF] Les arbres

Cas particulier des arbres binaires ? Type abstrait ? Implantation en JAVA (structure parcours) ? Arbres binaires de recherche 



[PDF] TP 5 : Arbres Binaires - Denis PALLEZ

L'objectif de cette séance est de pratiquer la programmation d'arbres un compte rendu de l'activité réalisée pendant la séance au format PDF dans



[PDF] Algorithmique et Structure de données

Algorithmique et programmation en Java Aide-Mémoire de Java un arbre binaire possède au plus deux fils un sous-arbre gauche



[PDF] Arbres binaires ensembles - Inria

On définit les arbres binaires de recherche : ? L'arbre vide est un ABR ses clefs sont ? Java fournit les ensembles d'objets réalisés par des arbres



[PDF] Algorithmique Les arbres

(nœud-)racine sous-arbre gauche sous-arbre droit ; l'arbre vide notion récursive d'arbre binaire valué (ou étiqueté) ; notion récursive de sous-arbre



[PDF] Chapitre 2: Arbres - IGM

15 sept 2015 · composé d'une racine avec deux arbres binaires de T disjoints appelés sous-arbres droit et gauche Java en poss`ede une dans Swing



[PDF] arbres de recherche - Pratique de la programmation OO

3 les arbres binaires de recherche (classe TreeSet) 2 Interface Set (rappel) une simplification de celle de la bibliothèque Java

:
-1-

INF 421 - 07 Luc Maranget

Arbres binaires,ensembles

Luc.Maranget@inria.fr

informatique/Luc.Maranget/421/ -2-

Ensembles

?Avec des listes, ?Non-tri´ees, tri´ees. ?Avec des arbres, ?Quelconques, ´equilibr´es. ?Un cas particulier,le tas. -3-

R´ealisation des ensembles avec les listes

On peut repr´esenter leensemblespar des listes.

Il suffit de maintenir la condition :

Les ´el´ements d"un ensemble sont deux `a deux distincts. Il faut donc pouvoir d´eterminer l"´egalit´e de deux ´el´ements. Dans la suite, nos ´el´ements sont desint, mais cela pourrait facilement ˆetre des objets quelconques (par red´efinition de la m´ethode equals des

Object

-4-

La classe des listes (d"entiers)

Air connu...

class List int val

List next

List (int val

List next

this. val val ;this. next next -5-

Op´erations ´el´ementaires

?Test d"appartenance. static boolean mem (int x,

List p

for( ; p !=null; p p.next if( x p.val )return true; return false; ?Ajout static

List add

(int a,

List p

if( mem (a, p)) { return p }else{ return new List (a, p) ; -6-

Op´eration ensembliste : union

?R´ecursif. static

List union

(List p

List q

if( p ==null) { return q }else{ return add (p.val union (p.next q)) ; ?It´eratif. static

List union

(List p

List q

List r

q for( ; p !=null; p p.next r add (p.val r) ; return r -7-

Bilan des coˆut

Quel est alors le coˆut asymptotique dans le cas le pire : ?Du test d"appartenance ?O(n) (penser `a l"´echec, compter les appels de fonction). ?De l"ajout ?O(n) (comme mem ?De l"union (de deux ensembles de cardinauxnetm) ?

O(n×(n+m)) (nfois

add -8-

Une id´ee

Normaliser les listes : repr´esenter un ensemble par la liste tri´ees (ordre croissant) de ses ´el´ements.

Appartenance

On peut utiliser l"ancienne m´ethode

mem o`u une m´ethode un peu am´elior´ee. static boolean mem (int x,

List p

if( p ==null|| x p.val return false; }else{ return p.val x mem (x, p.next -9-

Ajout et union

?Ajout ? Insertion dans une liste tri´ee (cf. insertion sort). ?Union ? Fusion de deux listes tri´ees (cf. merge sort).

Bilan des coˆuts

mem add union Liste

O(n)O(n)O(n2)

Liste tri´eeO(n)O(n)O(n)

RemarquerL"impl´ementation??liste tri´ee??favorise l"op´eration ensembliste, mais n"am´eliore pas les autres op´erations. -10-

Repr´esenter les ensembles avec les arbres

On d´efinit lesarbres binaires de recherche:

?L"arbre vide est un ABR, ses clefs sont∅. ?SiT0etT1sont des ABR, de clefs respectivesC0etC1et : ? xmajore (strictement) toutes les clefs deC0; ? xminore (strictement) toutes les clefs deC1; alors (T0,x,T1) est un ABR et ses clefs sontC0? {x} ?C1. -11-

Un exemple d"arbre binaire de recherche

654
897
1 -12-

Un contre-exemple d"arbre binaire de recherche

1 264
897
-13-

Classe

Tree des arbres binaires de recherche class Tree int key

Tree left

right Tree (Tree left ,int key

Tree right

this. left left ;this. right right this. key key Tree (int key this. key key left right =null; -14-

Test d"appartenance dans un ABR

C"est simple si on pense r´ecursivement.

static boolean mem (int x,

Tree t

if( t ==null) { return false; }else{ if(x t.key return mem (x, t.keft // Chercher `a gauche }else if( x t.key return mem (x, t.right // Chercher `a droite }else{ // x == t.key return true; // Trouv´e ici -15-

Test d"appartenance dans un ABR II

Finalement assez simple `a programmer it´erativement, penser que l"on suit un chemin dans un arbre. static boolean mem (int x,

Tree t

while( t !=null) { if( x t.key t t.left }else if( x t.key t t.right }else{ // x == t.key return true; return false; -16- Ajouter un ´el´ement : insertion dans un ABR static

Tree add

(int x,

Tree t

if( t ==null) { return new Tree (x) ; }else{ if( x t.key return newTree (add (x, t.left t.key t.right // ajouter `a gauche }else if( v t.key return new Tree (t.left t.key add (x, t.right // ajouter `a droite }else{ // v == t.key, d´ej`a l`a return t Programmation it´erative possible, mais trop complexe. -17- Coˆut des deux op´erations ´el´ementaires

Il est facile de voir que le coˆut de

mem et add , est enO(h) o`uhest la hauteur de l"ABR. Mais on veut borner le coˆut fonction dencardinal de l"ensemble... Il faut donc exprimer la hauteurhen fonction du cardinaln. -18-

Un arbre (tr`es) ´equilibr´e

1 3 2 5 7 6 4 9 11 10 13 15 14 12 8

Un arbre `a peu pr`es ´equilibr´e

1 2 4 3 8 7 6 10 11 13 14 15 12 9 5 -19-

Un arbre (tr`es) d´es´equilibr´e

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 -20-

Hauteur minimale d"un arbre binaire

Ou nombre maximal de sommets pour une hauteur donn´ee : arbre binairecomplet -21-

Hauteur maximale d"un arbre binaire

Ou nombre minimal de sommets pour une hauteur donn´ee : arbre d´eg´en´er´e en liste. h=n -22-

Complexit´e en moyenne

Sur un universEqui regroupe des ´ev´enementsede probabilit´e

P(e), soit une fonctionX(e).

L"esp´erance (moyenne) deXest d´efinie par :

E(X) =?

e?EProb(e)·X(e)

Par exemple :

?Xest le nombre d"appels r´ecursifs `a mem , effectu´es lors du test d"appartenance dek`a la liste (tri´ee) des entierspairscompris entre 2 et 2n. -23-

Appartenance dans les listes, coˆut en moyenne

?Cas du mem qui ne sait pas que la liste est tri´ee.

X(2p) =p, X(2p-1) =n

Et donc :

E(X) =n?

p=11

2np+n?

p=11

2nn=3n+ 1

4quotesdbs_dbs44.pdfusesText_44
[PDF] retour ? l'unité proportionnalité

[PDF] le timbre d'un son

[PDF] psychologie criminelle cours pdf

[PDF] passage ? l'acte psychologie

[PDF] cours de criminologie générale pdf

[PDF] livre criminologie pdf

[PDF] tétraèdre régulier propriétés

[PDF] passage ? l'acte

[PDF] tétraèdre propriétés

[PDF] grille d'estimation de la dangerosité d'un passage ? l'acte suicidaire pondération

[PDF] intervenir auprès de la personne suicidaire ? l'aide de bonnes pratiques

[PDF] grille estimation dangerosité suicidaire

[PDF] grille d'évaluation de l'urgence suicidaire

[PDF] rapport d'intervention auprès de la personne suicidaire

[PDF] estimation de la dangerosité suicidaire