9,10 .-insercin de n datos la pila 1(torre1); 11.- llamada de la funcin recursiva Hanoi donde la Torre3 es modificada. 12, 13.-mostramos los datos de la pila 3 (Torre3); 16-25.- funcin recursiva de la torre de hanoi
Otra manera de resolver el problema, sin utilizar la recursividad, se basa en el hecho de
que para obtener la solucin ms corta, es necesario mover el disco ms pequeo en todos los pasos impares, mientras que en los pasos pares slo existe un movimiento posible que no lo incluye. El problema se reduce a decidir en cada paso impar a cul de las dos pilas posibles se desplazar el disco pequeo:
El algoritmo en cuestin depende del nmero de discos del problema.
Si inicialmente se tiene un nmero impar de discos, el primer movimiento debe
ser colocar el disco ms pequeo en la pila destino, y en cada paso impar se le
Univ. Huallpa Quentasi Juan Carlos 2
Torre de Hanoi- recursivo
mueve a la siguiente pila a su izquierda (o a la pila destino, si est en la pila
origen). La secuencia ser DESTINO, AUXILIAR, ORIGEN, DESTINO, AUXILIAR, ORIGEN, etc.
Si se tiene inicialmente un nmero par de discos, el primer movimiento debe ser
colocar el disco ms pequeo en la pila auxiliar, y en cada paso impar se le mueve a la siguiente pila a su derecha (o a la pila origen, si est en la pila destino). La secuencia ser AUXILIAR, DESTINO, ORIGEN, AUXILIAR, DESTINO, ORIGEN,
Una forma equivalente de resolverlo es la siguiente: coloreando los discos pares de un
color y los impares de otro; se resuelve el problema aadiendo la siguiente regla: no colocar dos discos del mismo color juntos. De esta manera slo queda un movimiento posible (adems del de volver hacia atrs).