solucionar ( actual, final )
{
sea máximo el número de discos total
sea destino el sitio final de máximo
sea disco = máximo
repita
mientras disco > 0 haga
si disco ya está en destino,
o bien, mover disco a destino tiene éxito entonces
si disco = máximo entonces
decremente máximo en 1
si máximo = 0 entonces
termine // solución lista
fin-si
sea destino el sitio final de máximo
fin-si
si_no
sea destino el sitio distinto de destino y del
sitio en donde está disco
fin-si
decremente disco en 1
fin-mientras
sean p y q los sitios distintos de destino
sea disco el menor de los discos de los topes de p y q
sea destino el sitio entre p y q con el mayor tope
fin-repita
}
algoritmo recursivo
Hanoi (dim N , p A, p B , p C)
// N, origen, destino , auxiliar
If N == 1
print Pasar disco de A a B
else
Hanoi(N-1 , A , C, B)
print Pasar disco de A a B
Hanoi(N-1 , C , B , A)
No hay comentarios:
Publicar un comentario