Bonjour à tous,

Je suis actuellement étudiant en licence professionnelle informatique à Rodez, et pour les vacances on nous a donné un exercice pour remettre tout le monde à niveaux. Il s'agit de réinventer la roue et de développer la LinkedList de java. Enfin les principales méthodes comme l'ajout, la suppression etc.

Je trime depuis hier, et là j'en suis à la méthode qui ajoute en queue de liste.
Mon problème vient de l'utilisation de l'objet courant this lorsque je fais ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ListeDoublementChainee<E> nouveauChainon = 
            new ListeDoublementChainee<E>(aAjouter,null,this);
je vais créer un nouvel objet mais je ne pourrais jamais passer à l'élément suivant (toujours à null).

Voilà le code entier du début de ma classe:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
public class ListeDoublementChainee<E> implements Liste<E> {
 
    /**
     * Elément précédent initial par défaut
     */
    private final static ListeDoublementChainee PRECEDENT_DEFAUT = null;
 
    /**
     * Elément suivant initial par défaut
     */
    private final static ListeDoublementChainee SUIVANT_DEFAUT = null;
 
    /**
     * Element de la liste doublement chaînée 
     */
    private static Object element;
 
    /**
     * Référence vers l'élément précédent
     */
    private ListeDoublementChainee<E> precedent;
 
    /**
     * Référence vers l'élément suivant
     */
    private ListeDoublementChainee<E> suivant;
 
    /**
     * Initialise la liste doublement chaînée comme premier et dernier
     * maillon de la chaîne
     * => precedent = null
     * => suivant = null
     * Initialise le premier élément à null
     */
    public ListeDoublementChainee(E elem) {
        this(elem, PRECEDENT_DEFAUT, SUIVANT_DEFAUT);
    }
 
    private ListeDoublementChainee(E elem, ListeDoublementChainee<E> prec, 
                                  ListeDoublementChainee<E> suiv) {
        element = elem;
        precedent = prec;
        suivant = suiv;
    }
 
    /**
     * Permet de reculer d'un élément dans la liste
     */
    private void precedent() {
        if (precedent!=null) element = precedent;
    }
 
    /**
     * Permet d'avancer d'un élément dans la liste
     */
    public void suivant() {
        if (suivant!=null) element = suivant;            
    }
 
    /**
     * Permet de se positionner sur le premier élément de la liste
     */
    public void premierElement() {
        while (precedent != null) {
            precedent();
        }
    }
 
    /**
     * Ajoute l'élément en queue de liste
     * @param aAjouter l'élément à ajouter
     */
    public void ajoutEnQueue(E aAjouter) {
        // création du nouveau chainon avec sa valeur aAjouter
        ListeDoublementChainee<E> nouveauChainon = 
            new ListeDoublementChainee<E>(aAjouter,null,this);
        // on se repositionne sur l'élément du début
        suivant();
        // precedent de l'élément courant prend la valeur du nouveau chainon
        precedent = nouveauChainon;
    }
}
Voilà j'espère avoir été clair avec mon probème.

Merci d'avance!