递归有什么特点?

如题所述

递归函数的特点:函数定义中直接或间接地调用了本函数,必定存在可使递归调用终止的条件,否则导致出现无限递归。

函数定义中所具有的这些特点是判断函数是否为递归函数的基本要素。

绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循环。

扩展资料:

数据类型可以通过递归来进行定义,比如一个简单的递归定义为自然数的定义:“一个自然数或等于0,或等于另一个自然数加上1”。Haskell中可以定义链表为:

   
data ListOfStrings = EmptyList | Cons String ListOfStrings

这一定义相当于宣告“一个链表或是空串列,或是一个链表之前加上一个字符串”。可以看出所有链表都可以通过这一递归定义来达到。

参考资料来源:百度百科——递归算法

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-22
递归函数的特点: 函数定义中直接或间接地调用了本函数,必定存在可使递归调用终止的条件,否则导致出现无限递归。
函数定义中所具有的这些特点是判断函数是否为递归函数的基本要素。

换言之,能用递归解决的问题通常具有两个特点:
1 有退出条件
2 外层需要用到内层算出的结果(也可能是内层需要外层的计算结果,但比较少见)
最难的地方是找出外层利用内层结果的方法,这往往需要在思考问题的过程中发现规律,纸笔是不可缺少的。
另外退出条件需要拿捏准确,这也是一个容易出错的地方。本回答被网友采纳
第2个回答  2013-03-31
函数内调用它本身,看起来优雅易懂
第3个回答  2021-01-17

相似回答