Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/05/2011, 21:07
reethok
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años, 6 meses
Puntos: 8
Pregunta Torres de hanoi usando recursividad en C ¿?

Utilizando lenguaje C

Bueno... lo que pasa es que en un ejercicio de mi libro me lo piden... pero pues no sé cómo hacerlo

Alguien me podría dar alguna ayuda... y notese que con ayuda NO me refiero a que me hagan el programa... solamente que me expliquen mejor, me den tips de cómo hacerlo... cosas así...

Aquí está la descripción del ejercicio:

Cita:
Podemos considerar mover los n discos en términos de movimiento de sólo n -1 discos (y por ende la recursividad) de la siguiente manera:

a) Mueva n - 1 discos del asta 1 al asta 2, utilizando el asta 3 como área de almacenamiento temporal.

b) Mueva el último disco (el mayor) del asta 1 al asta 3.

c) Mueva los n - 1, del asta 2 al asta 3, utilizando el asta 1 como área de almacenamiento temporal.

El proceso finaliza cuando la última tarea involucra el movimiento del disco n - 1. Es decir, el caso base. Esto se lleva a cabo mediante la tarea trivial de mover un disco, sin la necesidad del área de almacenamiento temporal.

Escriba un programa para resolver el problema de las Torres de Hanoi. Utilice una función recursiva con 4 parámetros:

a) El número de discos a mover.

b) El asta en el que se encuentran ensartados los discos.

c) El asta a la que se moverán los discos.

d) El asta que se utilizará como área de almacenamiento temporal.

Su programa debe imprimir las instrucciones precisas necesarias para mover los discos desde el asta inicial al asta de destino. Por ejemplo, para mover una pila con 3 discos del asta 1 al asta 3, su programa debe imprimir la siguiente serie de movimientos:

1 -> 3 (Esto significa mover un disco del asta 1 al asta 3).
1 -> 2
3 -> 2
1 -> 3
2 -> 1
2 -> 3
1 -> 3
Espero puedan orientarme un poco...

Muchas gracias, saludos!