Bonjour,
J'ai un soucis au niveau de l'affichage d'une structure de données.
(Voir le code ci-dessous)
On doit créer une méthode affiche() qui affiche dans l'ordre la totalité des chaînes contenues dans la structure Curseur. L'utilisation préalable de gauche() ou droite() ne doit pas changer l'effet de cette méthode.
Je vais tenter de m'expliquer.
A savoir que dans le code, j'utilise dans l'ordre, la méthode affD(), puis affiche(), puis affD().
Je n'obtiens pas la même chose avant et après affiche(), avec la méthode affD(). Et après, j'utilise les méthodes gauche() et affD(), et là j'ai le droit à un affichage en boucle.
Par contre, si j'enlève affiche(), je n'ai pas de soucis.
Donc je pense que c'est évident, il y a un soucis dans ma méthode affiche(). Mais je me creuse la tête depuis un certain moment, et je n'arrive pas à trouver mon erreur.
En espérant avoir été précise dans mon explication.
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 import java.util.Scanner; public class curseur { private class chainage { String elt; chainage suiv; } chainage avant; chainage apres; curseur() { avant=null; apres=null; } public void droite() { chainage aux=apres; apres=apres.suiv; aux.suiv=avant; avant=aux; } public void gauche() { chainage aux=avant; avant=avant.suiv; aux.suiv=apres; apres=aux; } public void affD() { chainage aux=apres; while (aux!=null) { System.out.print(aux.elt); aux=aux.suiv; } System.out.println(); } public void insert (String s) { chainage aux=new chainage(); aux.elt=s; aux.suiv=avant; avant=aux; } public void delete() { avant=avant.suiv; } public void affiche() { chainage a=avant; chainage b=apres; chainage aux = new chainage(); while (b!=null) { aux=b; b=b.suiv; aux.suiv=a; a=aux; } while (a!=null) { System.out.print(a.elt); a=a.suiv; } System.out.println(); } public static void main (String args[]) { Scanner scan=new Scanner(System.in); curseur c = new curseur(); c.insert("Ra"); c.insert("Ta"); c.gauche(); System.out.print("Avant affichage :"); c.affD(); System.out.print("Affiche : "); c.affiche(); System.out.print("Après affichage :"); c.affD(); c.gauche(); System.out.print("Appuyez sur une touche et sur entrée"); scan.next(); c.affD(); /*scan.next(); System.out.print("Affiche : "); c.affiche(); scan.next(); c.droite(); c.affD(); System.out.print("Affiche : "); c.affiche(); scan.next(); c.delete(); c.affD(); System.out.print("Affiche : "); c.affiche(); scan.next(); c.droite(); c.affD(); System.out.print("Affiche : "); c.affiche(); scan.next(); c.insert("pis"); c.gauche(); c.affD(); System.out.print("Affiche : "); c.affiche(); scan.next(); c.gauche(); c.affD(); System.out.print("Affiche : "); c.affiche();*/ } }
Partager