递归算法以及Hanoi(汉诺)塔问题及其详细解释

您所在的位置:网站首页 递归有什么用 递归算法以及Hanoi(汉诺)塔问题及其详细解释

递归算法以及Hanoi(汉诺)塔问题及其详细解释

2023-10-14 06:13| 来源: 网络整理| 查看: 265

递归在算法中是非常重要的,可以说几乎所有的循环算法都可以用递归来实现,这足以体现递归的重要性,利用递归的条件一般为一下:

定义是递归的

像有些数学函数就是递归定义的,例如大家熟悉的阶层函数;

    2.利用“分治法”

2.1 对于复杂问题,若能够分成几个相对简单却算法相同或类似的子问题来求解便可使用递归算法。2.2 能将一个问题转变成一个新问题,而新闻体育原问题的解法相同或类同,不同的仅是处理的对象,并且这些处理对象更小却变化有规律。2.3 可以通过上述转化使问题简单化2.4 必须有一个明确的递归出口,或称递归的边界

在数据结构中有些数据结构是递归的,这又怎么理解呢?

如, 对于链表,其结点 LNode 的定义由数据域 data 和指针域 next 组成, 而指针域 next 是一种 指向 LNode 类型的指针, 即 LNode 的定义中又用到了其自身, 所以链表是一种递归的数据结构。 对于递归的数据结构, 相应算法采用递归的方法来实现特别方便。链表的创建和链表结点的 . 遍历输出都可以采用递归的方法。算法 3.9 是从前向后遍历输出链表结点的递归算法, 调用此递 归函数前,参数 p 指向单链表的首元结点,在递归过程中,p 不断指向后继结点,直到 p 为 NULL 时递归结束。显然, 这个问题满足上述给出的采用 “分治法” 进行递归求解的问题需要满足的三 个条件

代码如下:

void TraverseList(LinkList p) { if(p==NULL) return;//递归终止 else { cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3