java数据结构和算法学习之汉诺塔示例

 更新时间:2014年02月10日 09:35:13   作者:  
这篇文章主要介绍了java数据结构和算法中的汉诺塔示例,需要的朋友可以参考下

复制代码 代码如下:

package com.tiantian.algorithms;
/**
 *    _|_1              |                |
 *   __|__2             |                |
 *  ___|___3            |                |            (1).把A上的4个木块移动到C上。
 * ____|____4           |                |
 *     A                B                C
 *
 *     |                |                |
 *     |               _|_1              |
 *     |              __|__2             |            要完成(1)的效果,必须要把1、2、3木块移动到B,这样才能把4移动到C
 * ____|____4        ___|___3            |            如:代码中的“调用(XX)”
 *     A                B                C
 *    
 *     |                |                |
 *     |               _|_1              |
 *     |              __|__2             |            此时,题目就变成了把B上的3个木块移动到C上,回到了题目(1)
 *     |             ___|___3        ____|____4        如:代码中的“调用(YY)”
 *     A                B                C
 *    
 *     然后循环这个过程
 *
 * @author wangjie
 * @version 创建时间:2013-3-4 下午4:09:53
 */
public class HanoiTowerTest {
    public static void main(String[] args) {
        doTowers(4, 'A', 'B', 'C');
    }

    public static void doTowers(int topN, char from, char inter, char to){
        if(topN == 1){
            System.out.println("最后把木块1从" + from + "移动到" + to);
        }else{
            doTowers(topN - 1, from, to, inter); // 调用(XX)
            System.out.println("把木块" + topN + "从" + from + "移动到" + to);
            doTowers(topN - 1, inter, from ,to); // 调用(YY)
        }

    }
}

相关文章

  • springboot全局异常处理详解

    springboot全局异常处理详解

    本篇文章主要介绍了springboot全局异常处理详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • java使用DOM对XML文档进行增删改查操作实例代码

    java使用DOM对XML文档进行增删改查操作实例代码

    这篇文章主要介绍了java使用DOM对XML文档进行增删改查操作实例代码,实例涉及对xml文档的增删改查,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • java网络编程之识别示例 获取主机网络接口列表

    java网络编程之识别示例 获取主机网络接口列表

    一个客户端想要发起一次通信,先决条件就是需要知道运行着服务器端程序的主机的IP地址是多少。然后我们才能够通过这个地址向服务器发送信息。
    2014-01-01
  • Java中实现双数组Trie树实例

    Java中实现双数组Trie树实例

    这篇文章主要介绍了Java中实现双数组Trie树实例,双数组Trie就是一种优化了空间的Trie树,本文给出了实现代码、测试代码和测试结果,需要的朋友可以参考下
    2015-01-01
  • 解决Spring Cloud Feign 请求时附带请求头的问题

    解决Spring Cloud Feign 请求时附带请求头的问题

    这篇文章主要介绍了解决Spring Cloud Feign 请求时附带请求头的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Java实现的简单数字处理类及用法示例

    Java实现的简单数字处理类及用法示例

    这篇文章主要介绍了Java实现的简单数字处理类及用法,涉及java数字运算相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Springmvc中的转发重定向和拦截器的示例

    Springmvc中的转发重定向和拦截器的示例

    本篇文章主要介绍了Springmvc中的转发重定向和拦截器的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • springboot表单提交之validator校验

    springboot表单提交之validator校验

    在前台表单验证的时候,通常会校验一些数据的可行性,比如是否为空,长度,身份证,邮箱等等,这篇文章主要给大家介绍了关于springboot表单提交之validator校验的相关资料,需要的朋友可以参考下
    2021-05-05
  • java Bean与json对象间的转换实例讲解

    java Bean与json对象间的转换实例讲解

    在本篇文章里小编给大家整理的是关于java Bean与json间的转换的实例内容,有需要的朋友们吧可以学习参考下。
    2020-01-01
  • Java实现TFIDF算法代码分享

    Java实现TFIDF算法代码分享

    这篇文章主要介绍了Java实现TFIDF算法代码分享,对算法进行了简单介绍,概念,原理,以及实现代码的分享,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11

最新评论