X-Git-Url: https://git.llucax.com/z.facultad/75.29/susanita.git/blobdiff_plain/ded3be7064779d67ca83084d6479f270c3fe955f..48e5fe7766ed449568d5e5949c0621d5ffe5897b:/src/backtracking.h diff --git a/src/backtracking.h b/src/backtracking.h index 2a84d49..3ecb237 100644 --- a/src/backtracking.h +++ b/src/backtracking.h @@ -2,16 +2,14 @@ #define _BACKTRACKING_H_ #include "persona.h" +#include "hashtable.h" #include "susanita.h" #include "parser.h" #include #include #include - -#ifdef __VC++__ -/* find_if está en en VC++ */ #include -#endif +#include struct BackTracking : Susanita { @@ -23,11 +21,21 @@ struct BackTracking : Susanita private: - /* Llamada recursiva: Ensaya una alternativa con el N-ésimo hombre */ + /// Llamada recursiva: Ensaya una alternativa con el N-ésimo hombre void Ensayar(personas_type::iterator iH); - /* Determina si la pareja es estable */ + /// Determina si la pareja es estable bool ParejaEstable(personas_type::iterator Mujer, personas_type::iterator Hombre); + + /// Guarda el resultado cuando llega a resolver el BT, para no perderlo + /// en el unwind + void GuardarResultado(); + + /// Recupera el resultado para poder imprimirlo bien cuando termina. + void RecuperarResultado(); + + /// Tabla de hash para guardar los resultados + HashTable< Persona* > resultado; }; #endif /* _BACKTRACKING_H_ */