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(); }
Partager