递归的分类

如题所述

可以细分为以下5种类型
线性递归(Linear Recursion)
二分递归(Binary Recursion)
尾递归(Tail Recursion)
互递归(Mutual Recursion)
嵌套递归(Nested Recursion)
一、线性递归
该递归最常用,它通过一种简单的方式调用自己,并通过一个终止条件终止自身.这个调用过程称之为“缠绕(Winding)”,当函数返回给调用者时称之为“解除缠绕(Un-Winding)”。递归终止条件是我们已知的基础条件.
二、二分递归
二分递归是一个函数一次调用两次而不是一次调用一次的过程。它主要用于数据结构中,如树的遍历、查找高度、合并等操作。
三、尾递归

四、互递归
函数相互调用。假设FunA调用FunB, FunB递归调用FunA。这实际上不是递归的,但它和递归是一样的。所以你可以说不支持递归调用的编程语言,相互递归可以应用在那里来满足递归的要求。基本条件可以应用于任意一个或多个函数或所有函数。
五、嵌套递归
它和所有递归非常不同。除嵌套递归外,所有递归都可以转换为迭代(循环)。你可以通过阿克曼函数的例子来理解这个递归。
温馨提示:答案为网友推荐,仅供参考
相似回答