收藏 分享(赏)

蔡明志数据结构java版第5章.ppt

上传人:hwpkd79526 文档编号:12257206 上传时间:2021-12-06 格式:PPT 页数:12 大小:822KB
下载 相关 举报
蔡明志数据结构java版第5章.ppt_第1页
第1页 / 共12页
蔡明志数据结构java版第5章.ppt_第2页
第2页 / 共12页
蔡明志数据结构java版第5章.ppt_第3页
第3页 / 共12页
蔡明志数据结构java版第5章.ppt_第4页
第4页 / 共12页
蔡明志数据结构java版第5章.ppt_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、1 第5章递归 5 1n阶乘5 2斐波纳契数5 3将输入的词组以先进后出法打印5 4一个典型的递归范例 汉诺塔5 5程序集锦5 6思考题 2 第5章递归 一个调用它本身的函数称为递归函数 5 1n阶乘n n n 1 n 1 n 1 n 2 n 2 n 2 n 3 1 1从上述公式可得知其相同的规则为 某一数A的阶乘为本身A乘以 A 1 的阶乘 其程序如下 3 5 1n阶乘 publicintfact intn intans if n 1 ans 1 elseans n fact n 1 returnans 在编写递归程序时 千万要记住必须有一个结束点 可以使函数往上追溯直到结束 如上例中 当n

2、 1时 1 1即为其结束点 4 5 2斐波纳契数 斐波纳契数 Fibonaccinumber 表示某一数为其前两个数的和 假设n0 1 n1 1 则n2 n1 n0 1 1 2n3 n2 n1 2 1 3 所以ni ni 1 ni 2 5 5 1n阶乘 其递归程序如下 publicintfibon intn intans if n 0 n 1 ans 1 elseans fibon n 1 fibon n 2 return ans 6 5 3将输入的词组以先进后出法打印 编译程序在处理递归时 会借助栈将调用本身函数的下一个语句的地址存储起来 待执行完后 再将栈的数据一一出栈处理 下面以一范例说

3、明 此例是将输入的词组 word 以先进后出的方式打印出来 其程序如下 publicstaticvoidpush f 新增函数DataInputStreamin newDataInputStream System in 7 5 3将输入的词组以先进后出法打印 if top MAX 1 当栈已满 则显示错误System out print nStackisfull n else top System out print nPleaseenteritemtoinsert System out flush try stack top in readLine catch IOExceptione Sy

4、stem out println 8 5 4一个典型的递归范例 汉诺塔 19世纪在欧洲有一游戏称为汉诺塔 TowersofHanoi 有64个大小不同的金盘子 3个镶钻石的柱子分别为A B C 现要求把64个金盘子从A柱子借助B柱子移到C柱子 游戏规则为 1 每次只能移动一个盘子 2 盘子有大小之分 大盘子必须在下 小盘子在上 假设有n个金盘子 1 2 3 n 1 数字越大表示重量越重 其搬移的算法如下 9 5 4一个典型的递归范例 汉诺塔 假设n 1则搬移第1个盘子从A到C否则 搬移n 1个盘子从A到B 借助C 搬移第n个盘子从A到C 搬移n 1个盘子从B到C 借助A编写的程序如下 10 5

5、 4一个典型的递归范例 汉诺塔 publicstaticvoidHanoiTower intn charfrom charaux charto if n 1 System out print Movedisk n from from to n else 将A上n 1个盘子借助C移到BHanoiTower n 1 from to aux System out print Movedisk n from from to n 将B上n 1个盘子借助A移到CHanoiTower n 1 aux from to 11 5 5程序集锦 1 利用递归的方式计算n阶乘2 利用递归方式计算斐波纳契数3 利用递归方式解汉诺塔问题 12 5 6思考题 1 请举几个使用递归的例子 并详细说明其递归的做法 2 继续上题 将所举的例子以C语言来执行 3 试计算出有n个金盘子在汉诺塔B柱子 共需移动多少次

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报