Test en parcourant une structure chainée...
Bonjour à tous,
voici mon problème....
Je fais une structure chainée dont voici le prototype:
Code:
1 2 3 4 5 6 7 8 9 10
| typedef struct liste_liaisons;
typedef liste_liaisons*pt_ll;
struct liste_liaisons {
char *ville_source;
int energie;
bool endommage;
int type;
char *ville_desti;
pt_ll lien;
}; |
Le résultat de l'affichage de cette structure est le suivant:
Citation:
Ville source: Skywatch -- Ville destination: Narsis
Ville source: Sotha -- Ville destination: Sunkeep
Ville source: Chorrol -- Ville destination: Haven
Ville source: Alten -- Ville destination: Blackmoor
Ville source: Bosmora -- Ville destination: Sotha
Ville source: Blackmoor -- Ville destination: Greenvale
Ville source: Sunchal -- Ville destination: Longvale
Ville source: Bosmora -- Ville destination: Thorn
voici le code:
Code:
1 2 3 4 5 6
| void afficher_liaisons(pt_ll liais) {
while(liais){
cout << "Ville source: " << liais->ville_source << " -- Ville destination: " << liais->ville_desti << endl;
liais = liais->lien;
}
} |
Ca, pas de problème, ca marche... Mais en fait, ce que je voudrais, c'est récupérer les villes liées à une ville, passée en paramètre.
Pour mon exemple, j'aimerais avoir:
Sotha est relié à Sunkeep
Sotha est relié à Bosmora
Voici donc la procédure que j'ai faite:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| void retourner_liais_villes(pt_ll liais, char *ville) {
while(liais) {
if(liais->ville_source == ville || liais->ville_desti == ville )
cout << ville << " est relié à " << liais->ville_desti << endl;
if(liais->ville_desti == ville ) cout << ville << " est relié à " << liais->ville_source << endl;
liais = liais->lien;
}
} |
Malheureusement ca ne marche pas ! Ca ne m'affiche la première liaison. En l'occurence:
Sotha est relié à Sunkeep
Je ne sais pas pourquoi ca ne marche pas....
Merci de me filer un coup de main !
Philippe