C/Visual C - algoritmo torres de hanoi

 
Vista:

algoritmo torres de hanoi

Publicado por javier (1 intervención) el 27/11/2002 06:44:47
Hola, de antemano gracias por la tencion prestada a la presente.
Pues miren, mi pregunta es la siguiente, me encargaron en la escuela un programa, y me dijeron que si buscaba en internet, podria encontrar el algoritmo, y asi pasarlo a C, el cual es del programa de las torres de hanoi, que usa tres PILAs, si me puedieran orientar de donde conseguirlo, o bien de un prog de ejemplo, muchos de los agradeceria.

ATTE
javier
:)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:algoritmo torres de hanoi

Publicado por chuidiang (677 intervenciones) el 27/11/2002 08:53:36
No sé si te vale para la escuela, pero el algoritmo es muy sencillo usando recursividad.
Para mover una torre de N pisos, por ejemplo, de la pila 1 a la 2, tienes que mover primero la de N-1 a la 3, luego mover la última pieza de la 1 a la 2 y luego volver a mover la de N-1 de la 3 a la 2.
Te haces una función recursiva que sea algo asi como

// origen es 1, 2 o 3 y es donde está la torre. final es 1,2 o 3 y es donde quieres mover la torre.
mover_pila (int origen, int final, int numero_pisos)
{
int intermedio = ... //1, 2 o 3, que no sea ni origen ni final. Tienes que calcularlo con unos ifs.
if (numero_pisos > 0)
{
mover_torre (origen, intermedio, numero_pisos-1);
... // realizar el movimiento del último piso de origen a final, gráficamente, escribiendo en pantalla o como sea.
mover_torre (intermedio, final, numero_pisos-1);
}
}

Espero que te sirva.
Sé bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar