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
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 desObject
-4-La classe des listes (d"entiers)
Air connu...
class List int valList next
List (int valList 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 staticList add
(int a,List p
if( mem (a, p)) { return p }else{ return new List (a, p) ; -6-Op´eration ensembliste : union
?R´ecursif. staticList union
(List pList q
if( p ==null) { return q }else{ return add (p.val union (p.next q)) ; ?It´eratif. staticList union
(List pList 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 ListeO(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
654897
1 -12-
Un contre-exemple d"arbre binaire de recherche
1 264897
-13-
Classe
Tree des arbres binaires de recherche class Tree int keyTree left
right Tree (Tree left ,int keyTree 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 staticTree 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´ementairesIl 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 8Un 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´eP(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=112np+n?
p=112nn=3n+ 1
4quotesdbs_dbs44.pdfusesText_44[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