在java中使用递归的河内塔

河内塔中的每个堆栈如何问题如何逐行执行我不太明白每个堆栈的创建方式???


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');

    }

}


波斯汪
浏览 83回答 1
1回答

DIEA

这个应该工作: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);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java