Mover N discos de origen a destino
Enviado por Jorge García • 25 de Febrero de 2019 • Informe • 791 Palabras (4 Páginas) • 72 Visitas
Mover N discos de origen a destino
- Mover (N-1) discos de origen a auxiliar
- Mover 1 disco origen a destino
Mover (N-1) disco de auxiliar a destino
[pic 1]
Pseudocodigo
- si origen [pic 2] entonces
- mover el disco 1 de pila origen a la pila destino (insertarlo arriba de la pila destino)
- terminar
- si no
- hanoi([pic 3],origen,destino, auxiliar) //mover todas las fichas menos la más grande (n) a la varilla auxiliar
- mover disco n a destino //mover la ficha grande hasta la varilla final
- hanoi (auxiliar, origen, destino) //mover todas las fichas restantes, 1…n–1, encima de la ficha grande (n)
- terminar
Programa en lenguaje de alto nivel JAVA
package hanoi;
public class Hanoi {
/**Este método permite determinar qué torre se puede utilizar como auxiliar
* para los movimientos intermedios dadas unas torres de orígen y destino
static public char torreDisponible(char origen,char destino){
char auxiliar;
if((origen !='A')&& (destino!='A')){
auxiliar='A';
}else if ((origen !='B')&& (destino!='B')){
auxiliar='B';
}else{
auxiliar='C';
}
return auxiliar;
}
/**Resolución del problema de las Torres de Hanoi para el caso de tener n discos y unas torres de origen y destino arbitrarias
static public void resolverHanoi(int n,char origen,char destino){
/**n es el número de discos a resolver*/
if(n>1){
...