zoukankan      html  css  js  c++  java
  • 数据结构--汉诺塔递归Java实现

     1 /*汉诺塔递归
     2  * 1.将编号0-N-1个圆盘,从A塔座移动到B上面
     3  * 2.将编号N的1个圆盘,从A移动到C上面
     4  * 3.最后将B上面的N-1个圆盘移动到C上面
     5  * 注意:盘子的编号从上到下1-N
     6  * */
     7 public class HannoTower_Recursion {
     8 
     9     public static void main(String[] args) {
    10         int nDisk = 3;
    11         doTowers(nDisk,'A','B','C');
    12 
    13     }
    14 
    15     private static void doTowers(int topN, char from, char inter, char to) {
    16         if(topN == 1){
    17             //只有一个盘子编号为1,直接从A移动到C上面
    18             System.out.println("Disk 1 " + "from " + from + " to " + to);
    19         }
    20         else{
    21             //将前N-1个盘子从A移动到B---from-->inter
    22             doTowers(topN-1, from, to, inter);
    23             //将第N个盘子从A移动到C---from-->to
    24             System.out.println("Disk " + topN  + "from " + from + " to " + to);
    25             //将前N-1个盘子从B移动到C---inter-->to
    26             doTowers(topN-1, inter, from,to );
    27         }
    28     }
    29 
    30 }

    执行过程和结果

    Enter(3 disks,A B C)

      Enter(2 disks,A,C,B)

        Enter(1disk,A B C)

        Base case-->disk1 from A---C   //Disk 1 from A to C

        Return(1disk A B C)

        move disk 2 from A--B    //Disk 2from A to B

        Enter(1disk, C,A,B)

        Base case-->disk1 from C---B   //Disk 1 from C to B

        Return(1disk C A B)

      Return(2disk A C B)

      move disk 3 from A--C    //Disk 3from A to C

      Enter(2disk B A C)

        Enter(1disk B C A)

        Base case-->disk1 from B---A   //Disk 1 from B to A

        Return(1disk B C A)

        move disk 2 from B--C    //Disk 2from B to C

        Enter(1disk A B C)

        Base case-->disk1 from A---C   //Disk 1 from A to C

        Return(1disk A B C)

      Return(2disk B A C)

    Return(3 disks,A B C)

  • 相关阅读:
    MySQL(后篇)
    数据库
    Ajax
    JQuery
    BOM & DOM
    CSS
    HTML
    Python之IO多路复用学习
    vue-router小记
    js中运算符的优先级
  • 原文地址:https://www.cnblogs.com/sun1993/p/7811455.html
Copyright © 2011-2022 走看看