当前位置:   article > 正文

尾递归(tail-recursive)

尾递归

1.释义

在普通递归中,我们先调用递归函数,待函数返回并从中获得部分结果后再往下处理。在这种情况下,程序的最终结果要在所有函数调用均逐一返回后才能得到。而在尾递归中,当前的这次调用先计算出程序的部分结果,在下一次递归调用时将该结果作为参数传递,那么到了最后一次调用,程序的最终结果就能得到。

如果把递归调用看作一条链,普通递归是链头通过逐次调用自身到达链尾,又由链尾开始逐层计算部分并向上返回,最终从链头获取最终结果。而尾递归则由链头开始逐层计算部分结果,并向下传递,在链尾获得最终结果。

2.例子

比如要计算sum(1+2+3),这是一个典型的可以使用递归解决的问题。

使用普通形式的递归,sum函数定义为Integer sum (bound),Integer是返回值数据类型,参数bound是界限。

伪代码:

Integer sum (bound)

    if bound == 0

        return 0;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/116207
推荐阅读
相关标签
  

闽ICP备14008679号