java中使用递归的河内塔
河内塔中的每个堆栈是如何执行的?问题是它是如何逐行执行的?我不太明白每个堆栈的创建方式java中使用递归的河内塔,java,recursion,Java,Recursion,河内塔中的每个堆栈是如何执行的?问题是它是如何逐行执行的?我不太明白每个堆栈的创建方式 public class TowerOfHanoi { public static void towerOfHanoi(int disks, char source, char auxiliary, char destination) { if (disks == 0) { return; } towerOfHanoi(dis
public class TowerOfHanoi {
public static void towerOfHanoi(int disks, char source, char auxiliary, char destination) {
if (disks == 0) {
return;
}
towerOfHanoi(disks - 1, source, destination, auxiliary);
System.out.println(source + " " + destination);
towerOfHanoi(disks - 1, auxiliary, source, destination);
}
public static void main(String[] args) {
towerOfHanoi(4, 'a', 'b', 'c');
}
}
这一条应该有效:
private static void hanoiTower(int n, char from_rod, char to_rod, char aux_rod){
if(n == 1){
System.out.println("Move disk 1 from rod " + from_rod + " to rod " + to_rod);
return;
}
hanoiTower(n-1, from_rod, aux_rod, to_rod);
System.out.println("Move disk " + n + " from rod " + from_rod + " to rod " + to_rod);
hanoiTower(n-1, aux_rod, to_rod, from_rod);
}
你了解它吗?每个堆栈是按什么顺序创建的?当你深入观察时,它实际上是如何工作的?每个磁盘是如何移动的\