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:

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 : 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;
  }
}
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 : 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;
  }
}
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