- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
                        查看更多
                        
                    
                递归调用.doc
                    课程名称  数据结构 02 
授课题目
递归调用
授课日期
2003  年  9  月  3  日
授课班级
生物医学工程
授课时数
4
授课方式
理论课
授
课
重
点
、
难
点
1.	掌握递归调用的含义,优点,缺点和三个要点
2.	掌握递归调用基本方法
3.	掌握几个重要的例题
4.	掌握递归调用的流程图
授课内容
、
教具与时间分配
授课内容
、
教具与时间分配
1.5 递归
    递归调用的含义:
    优点:程序结构紧凑清析,可读性强,易于编写。
    缺点:在占用内存空间、程序执行时间方面花费较大。
    设计递归调用函数的三个要点:
1.	必须有递归调用的结束条件。反复递归调用,逐步收敛接近结束条件。不能发散无限递归。
        2.每次递归调用,系统就引进一组完全独立于其它变量的新的局部变量。
          在程序 pritoa.c 中,每次递归调用,新生的局部变量 n,nl 都不相同,占用各自的内存空间。
2.	每次递归调用,实参都不相同。在程序 pritoa.c 中,递归调用时实参 n 在变化,最后 n=1。
1.5.1简单变换
例题:P24 把一个整数分解成组成该整数的单个字符形式的数字。
一、用循环语句方法 
    思考题:
1.	程序 pritoa.c (循环方法)有缺点,输入 123、12345 能执行,输入1234不能运行。何故,改正之。
    2.改写程序,输入 1234 或 -1234 ,打印出数组 s[] 中的元素。
    3.改写程序,输入 123456789 。
二、用递归调用方法                        程序 pritoa.c 递归调用过程分解
主要做了二件事:
1.用 n/10 (整数/整数向零取整)分离出整数 n 的前面高位,反复递归调用,最后只剩下一位最高位。
 2.用 n%10 分离出最低的一位,并打印。
                  《数据结构》补充讲义  Hanoi塔  P.26            hanoi.rtf
                                                              A 轴           B 轴           C 轴
hanoi.c 的递归调用算法                   
移动一叠盘     后移动底盘+先移动上层盘
                             后移动底盘+先移动上层盘
                                              
                                             :
                                        后移动2号盘+先移动1号盘
使用递归函数movetow                  每次调用在变化
函数:       movetow (       盘数  , 出发轴, 到达轴,辅助轴 )
总任务:     movetow (      height  ,  ’A’,  ’C’, ’B’ )
                                                             movetow ( height-2,出,到,辅 )
分解为:1.    movetow (    height-1  ,  ’A’,  ’B’, ’C’ )      send (单个底盘号,出,到 )
                                                             movetow ( height-2,出,到,辅 )
        2.    send    (  单个底盘号 ,  ’A’,  ’C’  )
                                                             movetow ( height-2,出,到,辅 )       
        3.    movetow (    height-1  ,  ’B’,  ’C’, ’A’ )      send (单个底盘号,出,到 )    
                                                             movetow ( height-2,出,到,辅 )       
执行程序  c:\tc\userhanoi  4                                     一共移动24
                您可能关注的文档
最近下载
- 九年级语文上册期中测试卷.docx VIP
- 如何提高培智学校课堂教学的有效性-最新资料.pptx VIP
- 人教版小学六年级下册数学精品教学课件 第二单元 百分数(二) 2.2 成数.ppt VIP
- 1访谈记录不忘初心方得始终.pdf VIP
- 八年级期中考试质量分析报告.doc VIP
- 2023年郑州中牟事业单位笔试参考答案 - 副本.pdf VIP
- 机器人滚压包边DPCA F12 001-2008.doc VIP
- (完整版)水电、风电效益测算分析表.xls VIP
- 甘教版初中八年级信息技术第四章《多媒体作品的规划与设计》说课课件.ppt VIP
- 人教版小学六年级下册数学精品教学课件 第二单元 百分数(二) 2.1 折扣.ppt VIP
 原创力文档
原创力文档 
                        

文档评论(0)