递归栈(hanoi问题)
来源:互联网 发布:秒赞秒评大师软件 编辑:程序博客网 时间:2024/06/08 16:43
下面以三层hanoi为例,说明递归过程运行的层次。
(一、)“三层hanoi问题”描述:
有三个分别命名为
1.)每次只能移动一个圆盘
2.)圆盘可以插在
3.)任何时刻都不能将一个较大的圆盘压在娇小的圆盘上。
(二、)算法如下:
(三、)具体执行步骤如下:
(0.)从主程序进入
(1.)将1,2从x 移到y ,z 为辅助(1245递归进下一层):
(1.1)将1从x 移到z (1239最内侧递归后,返回上一层)
(1.2)将2从x 移到y (67本层最大圆盘移完,移辅塔上的递归层)
(1.3)将1从z 移到y (1239最内侧递归后,返回上一层)
(2)将3从x 移到z (67本层最大圆盘移完,移辅塔上的递归层)
(3)将1,2从y 移到z ,x 为辅助(递归):
(3.1)将1从y 移到x (1239最内侧递归后,返回上一层)
(3.2)将2从y 移到z (67本层最大圆盘移完,移辅塔上的递归层)
(3.3)将1从x 移到z (1239最内侧递归后,返回上一层)
(四、)具体执行递归层栈的分配如下:
进入第一层,进入主程序
(1.)进入第二层,将1,2从x 移到y :
(1.1)进入第三层,将1从x 移到z
(1.2)从第三层退回到第二层,在第二层,将2从x 移到y
(1.3)从第二层进入第三层,在第三层,将1从z 移到y
(2)退回第二层,退回第一层,将3从x 移到z
(3)进入第二层,将1,2从y 移到z ,x 为辅助:
(3.1)进入第三层,将1从y 移到x
(3.2)从第三层退回到第二层,在第二层,将2从y 移到z
(3.3)从第二层进入第三层,在第三层,将1从x 移到z
退回到第二层
退回到第一层,回主程序
阅读全文
0 0
- 递归栈(hanoi问题)
- 汉诺塔问题 hanoi(递归)
- 数据结构:栈与递归(Hanoi塔问题)
- 栈和递归的应用:Hanoi问题
- 栈与递归实现Hanoi塔问题
- hanoi塔问题(经典递归)
- 简单递归—Hanoi(汉诺塔问题)
- Hanoi塔问题(递归解决)
- hanoi(汉诺)塔问题递归过程
- 汉诺塔(Hanoi)问题递归算法实现
- 汉诺塔问题 hanoi tower (递归)。
- 实现汉诺塔(Hanoi)问题(堆栈、递归)
- 递归-Hanoi塔问题
- Hanoi问题递归求解
- 递归---Hanoi塔问题
- C++ 数据结构 hanoi 汉诺塔(递归 栈)
- 汉罗塔hanoi问题之递归
- 算法-Hanoi塔问题+递归
- leetcode题目例题解析(六)
- Linux下安装jdk8步骤详述
- 南宁市第二届网络与信息安全技术竞赛——web200
- android微信登录的app签名 和 项目正式签名替换默认签名
- UVA 10815
- 递归栈(hanoi问题)
- 算法练习---跳跃游戏二(动态规划)
- NAND驱动分析--(一)
- JavaScript的原型模式
- 软件测试基础介绍
- IntelliJ IDEA基本用法
- 李宏毅机器学习课程笔记2:Classification、Logistic Regression、Brief Introduction of Deep Learning
- maven入门之将Jar安装到本地仓库
- 最长的单词