我们的最终目标是将磁盘
n 从源移动到目标,然后将所有其他 (n1) 磁盘放在上面。我们可以想象以递归方式对所有给定的磁盘集应用相同的方法。
要遵循的步骤是-
Step 1 − Move n-1 disks from source to auxStep 2 − Move nth disk from source to destStep 3 − Move n-1 disks from aux to dest
汉诺塔的递归算法可以驱动如下-
START
Procedure Hanoi(disk, source, dest, aux)
if disk == 1, THEN
move disk from source to dest
ELSE
Hanoi(disk-1, source, aux, dest) // Step 1
move disk from source to dest // Step 2
Hanoi(disk-1, aux, dest, source) // Step 3
END IF
END Procedure
STOP
我们的最终目标是将磁盘
n 从源移动到目标,然后将所有其他 (n1) 磁盘放在上面。我们可以想象以递归方式对所有给定的磁盘集应用相同的方法。
要遵循的步骤是-
Step 1 − Move n-1 disks from source to auxStep 2 − Move nth disk from source to destStep 3 − Move n-1 disks from aux to dest
汉诺塔的递归算法可以驱动如下-
START
Procedure Hanoi(disk, source, dest, aux)
if disk == 1, THEN
move disk from source to dest
ELSE
Hanoi(disk-1, source, aux, dest) // Step 1
move disk from source to dest // Step 2
Hanoi(disk-1, aux, dest, source) // Step 3
END IF
END Procedure
STOP