Problème dans ma liste chainée
Bonjour,
je voudrais créer un petit programme pour naviguer sur les rames de métro parisien , je me base sur un TD que j'ai trouvé sur le site de polytech paris;
pour le moment je m'en sortais pas trop mal , mais je suis bloqué sur un exo, et j'ai besoin d'aide.
voici mes Class :
Code:
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
| public class ListeStations {
Station station;
ListeStations suivant;
public ListeStations(Station station, ListeStations suivant) {
//initialisation des champs
this.station=station;
this.suivant=suivant;
}
public void afficher() {
ListeStations suite = this;
while (suite != null) {
System.out.print(" " +suite.station.chaineLigneNom()+", ");
suite = suite.suivant ;
}
}
} |
Code:
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
| public class Station {
String nom; //nom de la station
String ligne; //ligne du métro
ListeStations voisines; //station suivante
int ordreDeVisite; //ordre sur la ligne
public Station(String nom, String ligne, ListeStations voisines) {
//initialisation des champs
this.nom=nom;
this.ligne=ligne;
this.voisines=voisines;
ordreDeVisite = 0;
}
public String chaineLigneNom() {
//affichage de la chaine de caractére
return ligne+"-"+nom ;
}
public void afficher() {
System.out.println("Station : "+nom);
System.out.println("Ligne : "+ligne);
if (ordreDeVisite == 0) {
System.out.println("ordre de visite : jamais visite. ");
}
else
{
System.out.println("ordre de visite : "+ ordreDeVisite);
}
if (voisines == null) {
System.out.println("Stations voisines : aucune ");
}
else
{
System.out.println("Stations voisines : "+voisines);
}
}
public void ajouterVoisine(Station s) {
voisines= new ListeStations(s, voisines);
}
} |
Code:
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
| public class TestListeStations {
public static void main(String[] args) {
Station[] station = new Station[4];
station[0] = new Station("Denfert-Rochereau", "6", null);
station[1] = new Station("Saint-Jacques", "6", null);
station[2] = new Station("Glacière", "6", null);
station[3] = new Station("Odéon", "10", null);
station[0].ordreDeVisite=1;
station[1].ordreDeVisite=2;
station[2].ordreDeVisite=3;
station[0].ajouterVoisine(station[1]);
station[1].ajouterVoisine(station[0]);
station[1].ajouterVoisine(station[2]);
station[2].ajouterVoisine(station[1]);
for (int i = 0; i < 4; i++)
station[i].afficher();
}
} |
et mon résultat :
Citation:
Station : Denfert-Rochereau
Ligne : 6
ordre de visite : 1
Stations voisines : ListeStations@1690726
Station : Saint-Jacques
Ligne : 6
ordre de visite : 2
Stations voisines : ListeStations@5483cd
Station : Glacière
Ligne : 6
ordre de visite : 3
Stations voisines : ListeStations@9931f5
Station : Odéon
Ligne : 10
ordre de visite : jamais visite.
Stations voisines : aucune
alors je tourne en rond , je comprend pas pourquoi il m'affiche ListeStations@9931f5.
Merci de votre aide.