Java|Java 数据结构与算法系列精讲之汉诺塔
概述
从今天开始, 小白我将带大家开启 Java 数据结构 & 算法的新篇章.
文章图片
汉诺塔
汉诺塔 (Tower of Hanoi) 是一个源于印度的古老益智玩具. 汉诺塔由三根柱子和若干大小不同的圆盘组成. 目标是把圆盘从最左边的柱子移到最右边的柱子上. 如图:
文章图片
递归
递归 (Recursion) 指的是在函数中调用自身. 递归可以帮助我们简化问题, 使用更少的代码达成目标.
文章图片
汉诺塔实现
public class 汉诺塔 {// 汉诺塔实现private static void hanoi(int num, char a, char b, char c) {String str = ""; // 判断是否为最后if(num==1) {str = "盘1从: " + a + "->" + c; System.out.println(str); } else {// 2^(n-1)次, 把除第n个盘从A移动到Bhanoi(num - 1, a, c, b); str = "盘" + num + "从: " + a + "->" + c; System.out.println(str); // 2^(n-1)次, 把除第n个盘从B移动到Chanoi(num - 1, b, a, c); }}// mainpublic static void main(String[] args) {hanoi(3, 'A', 'B', 'C'); }}
输出结果:
盘1从: A->C【Java|Java 数据结构与算法系列精讲之汉诺塔】到此这篇关于Java 数据结构与算法系列精讲之汉诺塔的文章就介绍到这了,更多相关Java 汉诺塔内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
盘2从: A->B
盘1从: C->B
盘3从: A->C
盘1从: B->A
盘2从: B->C
盘1从: A->C
推荐阅读
- Java数据结构之线段树详解
- 一篇文章带你了解Java|一篇文章带你了解Java SpringBoot Nacos
- Java|Java String之contains方法的使用详解
- 基于Java+SpringBoot+vue+element实现扶贫助农政策平台系统
- ⑥(数据结构篇)、《史上最全iOS八股文面试题》2022年|⑥(数据结构篇)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》面试题(包含
- 【面经】Java面试突击
- C语言数据结构之图书借阅系统
- Java使用System.currentTimeMillis()方法计算程序运行时间的示例代码
- 程序员|普通二本的辛酸Java面试之路,实战篇
- 程序员|【深度思考】普通二本的辛酸Java面试之路,含答案解析