Bonjour ,

Voici une classe ListeTriee , ils ' agit d' une liste chainée , je n' utilise pas la classe LinkedList:

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
30
31
32
33
public class ListeTriee {
    private int element;
    private ListeTriee suivant;
    
    //Constructeur
    public ListeTriee (int premier , ListeTriee reste){
        element = premier;
        suivant = reste;
        
    }

Methode Ajouter un element A la liste 
public ListeTriee ajoutListeTriee (int val){
        ListeTriee ref = this;
        ListeTriee pred = null;
       
        //Parcours 
        while (ref !=null && ref.element <= val ){
            pred = ref;//avance pred
            ref =ref.suivant;//avance ref 
        }
        
       
       if (pred == null ){
            return new ListeTriee (val , this);
            
            
        }else {
            
            ListeTriee nouvel = new ListeTriee(val, ref);
            pred.modifieReste(nouvel);
            return this;
    }

Il y a une chose que je ne comprends pas :

Lorsque j' entre dans la méthode j ' ai ref = this; .Or ici il s 'agit d objet auquel j' applique la méthode , si je modifie ref je modifie également l' objet ??

Pourtant lorsque j' entre dans le while je modifie bien ref donc this???

merci