飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2982|回复: 6

[C/C++] 关于递归的一补充

[复制链接]
  • TA的每日心情
    无聊
    2017-3-9 21:22
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-6-15 12:28:28 | 显示全部楼层 |阅读模式
    个人理解,不对的地方请指出来,共同学习。

    int hlt(int n , char a ,char b ,char c ){
            if (n<=0)
            return 0;
                     hlt(n-1,a, c ,b);
                    cout << a << " to " << c << endl;
                    hlt(n-1,b, a ,c);
            }
    1、递归函数实际上只处理最简单的情况,也就是说我们要解决的问题是N个这样的基本情况。(这就是先决条件)。
             处理的基本情况    hlt(n-1,a, c ,b);
    2、递归函数内有两部分,一部分是处理部分,处理的是基本情况。
                         hlt(n-1,a, c ,b);
                    cout << a << " to " << c << endl;
                    hlt(n-1,b, a ,c);
                      另一部是不处理部分(不处理部分要有return这样是为了结束递归)       
                         if (n<=0)
                      return 0;
    3、为了使递归结束,要函数每次调用自己时要使问题越来越细,最终到基本情况使递归结束。
                        hlt(n-1,a, c ,b);
                     n-1就是使问题越来越细,最终到基本情况使递归结束(n==1)。
    4、递归调用必需要能回到基本情况,因每次调用就会产生一个新的函数副本,要是不能回基本情况结束递归,最终会使内存耗尽而死机。

    [ 本帖最后由 ABCdiyPE 于 2009-6-15 18:09 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-6-15 23:32:08 | 显示全部楼层
    有一个入口,一个明确的出口即明确的结束条件
    这是我的理解
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-29 07:52
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2009-6-16 01:16:22 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2021-3-27 09:12
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2009-6-16 09:11:23 | 显示全部楼层
    递归上我也有点乱。同楼上
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2022-2-23 17:43
  • 签到天数: 92 天

    [LV.6]常住居民II

    发表于 2009-6-16 22:53:02 | 显示全部楼层
    看看书吧,那个问5个人年龄的问题的解释的还是比较容易理解的。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-5-7 20:40:18 | 显示全部楼层
    向回贴的弟兄们敬礼!











            
            
            
            
            


    wow gold  wow gold   wow gold   wow gold   wow gold
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-5-23 20:10:59 | 显示全部楼层
    所以,在写服务器类型的程序时,要慎用递归,否则,会导致递归工作栈消耗很多资源
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表