6Fermer8
hibouLe 09/01/2005 à 12:47
Y'a une faille : a la troisieme etape de ton algo, y'a une couille tongue
graphe_err.GIF

Au niveau de l'ago recursif de GoldenCrystal, ca donnerai un truc dans le genre :

position = depart

do {

  parcours(position);

  position = orientation_not_set(); //donne une position dont on ne connait pas
                       // le sens d'un arc

while ( potision != NULL );




parcours(position) {

  fils = voisins(position);

  for (int i = 0 ; i < fils.size ; i++) {
     if (fils[i]==depart)  //on a fait le tour
       return TRUE;
     switch (orientation(position,fils[i]) {
       case 0: //arc non traité
         set_orientation(position,fils[i]);
         if ( ! parcours(fils[i]) ) { //echec
           reset_orientation(position,fils[i]);
           continue; //on cherche sur le noeud suivant
         } else { //succes
           return TRUE;
         }
         break;
       case 1: //deja traité et dans le bon sens
               //on a reussi a retomber sur le circuit
         return TRUE;
       case -1: //on irait en sens contraire : noeud suivant
         break;
  }

  if (i==fils.size) {
    //tous les arcs ont été traités, c'est qu'on est revenu en arrière
    return FALSE;
  }

}