递归的分类


可以细分为以下5种类型线性递归(Linear Recursion)二分递归(Binary Recursion)尾递归(Tail Recursion)互递归(Mutual Recursion)嵌套递归(Nested Recursion)一、线性递归该递归最常用,它通过一种简单的方式调用自己,并通过一个终止条件终止自身.这个调用过程称之为“缠绕(Winding)”,当函数返回给调用者时称之为“解除缠绕(Un-Winding)”。递归终止条件是我们已知的基础条件.二、二分递归二分递归是一个函数一次调用两次而不是一次调用一次的过程。它主要用于数据结构中,如树的遍历、查找高度、合并等操作。三、尾递归四、互递归函数相互调用。假设FunA调用FunB, FunB递归调用FunA。这实际上不是递归的,但它和递归是一样的。所以你可以说不支持递归调用的编程语言,相互递归可以应用在那里来满足递归的要求。基本条件可以应用于任意一个或多个函数或所有函数。五、嵌套递归它和所有递归非常不同。除嵌套递归外,所有递归都可以转换为迭代(循环)。你可以通过阿克曼函数的例子来理解这个递归。

文章标签:

本文链接:https://www.u1e.cn/baike/a/64b9f96b03e277be61092a7a [复制]

猜你喜欢

歇后语大全

还没有人回应过