Bonjour à tous,
voici mon problème....
Je fais une structure chainée dont voici le prototype:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
voici le code: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
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
Pour mon exemple, j'aimerais avoir:
Sotha est relié à Sunkeep
Sotha est relié à Bosmora
Voici donc la procédure que j'ai faite:
Malheureusement ca ne marche pas ! Ca ne m'affiche la première liaison. En l'occurence:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
Sotha est relié à Sunkeep
Je ne sais pas pourquoi ca ne marche pas....
Merci de me filer un coup de main !
Philippe
Partager