C++递归函数知识.ppt

递 归 函 数 递归概念 设计方法步骤 执行过程 递归与迭代 典型案例;【引例1】赏麦粒; 【引例2】汉诺塔问题 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。;解决方法 要实现将64个圆盘从第一根柱子移到第三根柱子,首先要完成将最上面的63个圆盘移到第二根柱子上,然后再将最下面的一个圆盘移到第三根柱子上。这样,如何移动64个圆盘的问题就转换成了如何移动63个圆盘问题,依次类推,解决问题的规模可以逐步降低为解决移动62、61、60……3、2、1个圆盘的问题。;一、递归的概念 1、定义 2、特点 3、典型类型;1、定义 递归方法是指通过函数或过程调用自身,将问题转化为本质相同但规模较小的子问题的方法。如果是直接调用自身,称为直接递归;如果是通过其它函数或过程间接调用自身,则称为间接递归。递归方法是算法和程序设计中的一种重要技术,是许多复杂算法的基础。 ;2、特点 原始问题可转化为解决方法相同的新 问题; 新问题的规模比原始问题小; 新问题又可转化为解决方法相同的规模更小的新问题,直至终结条件为止。;3、典型类型;数据结构是递归的 如前面介绍的链表的结点结构定义: { ;

文档评论(0)

1亿VIP精品文档

相关文档