Bonjour,

J'ai une liste chainée dont je voudrait inscrire les éléments dans une String. Celle-ci doit être de la forme : [3,2,1,0]. J'ai en fait le résultat suivant chaque fois que s'insère un élément dans ma liste :
[0] puis [1,0] là c'est bon.
Puis [2,0] alors que je devrais obtenir [2,1,0].

Quelqu'un pourrait me dire comment je dois procéder, j'avoue avoir du mal à comprendre le fonctionnement.

Merci

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 Pile4 implements PileI, Cloneable {
    /** la liste des Maillons/Elements */
    private Maillon stk;
    /** la capacité de la pile */
    private int capacite;
    /** le nombre */
    private int nombre;
 
    /**
     * Classe interne "statique" contenant chaque élément de la chaine c'est une
     * 
     */
    private static class Maillon implements Cloneable {
        private Object element;
        private Maillon suivant;
 
        public Maillon(Object element, Maillon suivant) {
            this.element = element;
            this.suivant = suivant;
        }
 
        public Maillon suivant() {
            return this.suivant;
        }
 
        public Object element() {
            return this.element;
        }
 
        public Object clone() throws CloneNotSupportedException {
            Maillon m = (Maillon) super.clone();
            m.element = element;
            return m;
        }
    }
 
    /**
     * Création d'une pile.
     * 
     * @param taille
     *            la taille de la pile, la taille doit être > 0
     */
    public Pile4(int taille) {
        if (taille <= 0)
            taille = CAPACITE_PAR_DEFAUT;
        this.stk = null;
        this.capacite = taille;
 
    }
 
    public Pile4() {
        this(PileI.CAPACITE_PAR_DEFAUT);
    }
 
    public void empiler(Object o) throws PilePleineException {
        if (estPleine())
            throw new PilePleineException();
        if (this.stk == null){
            this.stk = new Maillon(o, null);
            this.nombre = 1;
          }
          else {
            Maillon pere = this.stk;
            this.stk = new Maillon (o, pere);
            nombre ++;
            }
 
    }
public String toString() {
        StringBuffer sb = new StringBuffer("[");
        //Maillon fils = null;
        sb.append(this.stk.element());
        if (this.stk.suivant() != null)
            {
                sb.append(", " + this.stk.suivant.element());
                this.stk = this.stk.suivant();
            }
 
        sb.append("]");
        return sb.toString();
    }