]> git.llucax.com Git - z.facultad/75.29/susanita.git/blobdiff - src/backtracking.h
Agregar la capacidad como un atributo de Susanita.
[z.facultad/75.29/susanita.git] / src / backtracking.h
index 2a84d49182073b5ce12dacee21e269a29be8d3ec..3ecb237eafddb7af3187d1ccc87e1ef00cdff2cc 100644 (file)
@@ -2,16 +2,14 @@
 #define _BACKTRACKING_H_
 
 #include "persona.h"
+#include "hashtable.h"
 #include "susanita.h"
 #include "parser.h"
 #include <map>
 #include <deque>
 #include <string>
-
-#ifdef __VC++__
-/* find_if está en <algorithm> en VC++ */
 #include <algorithm>
-#endif
+#include <cassert>
 
 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_ */