欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【数据结构45】分治算法-汉诺塔

程序员文章站 2024-03-24 14:51:58
...

1.分值算法介绍

【数据结构45】分治算法-汉诺塔
【数据结构45】分治算法-汉诺塔
【数据结构45】分治算法-汉诺塔

2.汉诺塔

【数据结构45】分治算法-汉诺塔
【数据结构45】分治算法-汉诺塔

3.代码实现

public class Hanoitower {
    public static void main(String[] args) {
        hanoiTower(5,'A','B','C');
    }

    public static void hanoiTower(int num,char a,char b,char c){
        //如果只有一个盘
        if(num==1){
            System.out.println("第1个盘从 "+a+"->"+c);
        }else{//如果我们有 n >= 2 情况,我们总是可以看做是两个盘 1.最下边的盘 2. 上面的盘
            //1.先把上面的所有盘从a移动到b,移动过程中使用到c
            hanoiTower(num-1,a,c,b);
            //2.把下面的盘从a移动到c
            System.out.println("第"+num+"个盘从 "+a+"->"+c);
            //3.把b盘的所有盘从b移动到c,移动过程中使用a
            hanoiTower(num-1,b,a,c);
        }
    }
}