分享

关于递归实现过程的详解

 醉人说梦 2017-12-26

  最近在学数据结构的时候,碰到了递归,但由于自己一直对递归一知半解,所以不能全面的理解递归的过程到底是怎样实现的,下来研究了一下,觉得还是有所收获的。

 假设我们用递归实现一个数的阶乘。

  1. int fun(int n)  
  2. {  
  3.     if(n == 0)  
  4.         return 1;  
  5.     else  
  6.         return n*fun(n-1);        
  7. }  
这里递归调用的过程为:

递归调用 其实就是函数的调用而已,只不过这些函数名字一样罢了,记住一点:谁调用,返回谁。上面的递归调用中,刚开始一直“往下走”,知道走到了n==0,返回1,这是fun(0)函数的值,但调用fun(0)函数的是fun(1)函数,所以fun(0)函数的值1就返回给了fun(1)函数(谁调用,返回谁),同理一直返回到fun(5)函数,由于fun(5)函数在主函数中调用(并未写出),所以返回给主函数一个值,这个值就是5!,这里只要把我上面画的图看懂了,就差不多理解了,在我自己看来,递归的总结就一句话:谁调用,返回谁。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多