Bonjour,

Nous arrivons à la fin de la session de mon cours prog 2 avancé Java...

Comme son nom l'indique, je suis rendu aux arbres binaires de recherches

La compréhension va quand même bien mais sauf pour une méthode du corrigé de mon professeur, car elle fait une erreur de compilation...et misère

Voici un peu comment fonctionne la création de mon arbre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
 
// Le nom de ma classe -> Oui notre prof nous fait coder en français...
public class ABRNoeud < E extends Comparable <E> >{
 
 
//mon constructeur
public ABRNoeud (E element){        
        this.elementArbre = element;
        this.gaucheArbre = null;
        this.droiteArbre = null;
    }
 
// Je pense que j'en comprend le principe, on prend chaque élément de l'arbre et on le modifi par la function caller dans la Classe principale du programme
 
// Parcontre, j'ai de la misère à saisir l'utilisation des « ? »
public <R extends Comparable< R > > ABRNoeud<R> map( Function< ? super E,? extends R> f ) {
        ABRNoeud< R > resultat = new ABRNoeud<>( f.apply( elementArbre ) );
 
        if( gaucheArbre != null ) {
            resultat.gaucheArbre = gaucheArbre.map( f );
        }
 
        if( droiteArbre != null ) {
            resultat.droiteArbre = droiteArbre.map( f );
        }
 
        return resultat;
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 
// exemple de création
ABRNoeud<Integer> monArbre = new ABRNoeud<>(10);
 
                                                      //Ici j'ai une erreur de «incompatible types : inference variable R has incompatible bounds
ABRNoeud< Double > arbreModif = monArbre.map( (x) -> 2 * x + 1 );
Merci d'éclairer mes lanternes