数据结构小结——递归

递归定义:若一个对象部分地包含它自己, 或用它自己给自己定义, 则称这个对象是递归的;若一个过程直接地或间接地调用自己, 则称这个过程是递归的过程。
在以下三种情况下,常常用到递归方法。
(1)定义是递归的
(2)数据结构是递归的
(3)问题的解法是递归的
设计思想:寻找递归关系,确定递归出口。
递归关系:将整个问题分解成若干个子问题,通过分别求解子问题,最后获得整个问题的解,其中部分子问题的解决方法和解决整个问题的方法一样,这就是递归关系。
递归出口:整个问题分解成若干个子问题,子问题继续分解,如此反复进行,直到子问题无需再分解或不能再分解,直接得到结果时,这就是递归出口。
递归算法的设计:首先判断是否满足出口条件,满足执行出口操作;否则用同样的方法解决子问题。
每一次递归调用进入下一层时,为了能正确返回并继续操作,需要存储返回地址及过程中使用的参数、局部变量等。层层向下递归,返回时的次序与进入的次序正好相反,由于需要保存的每层信息满足后进先出的原则,因此利用栈的组织空间存储每层信息,从而形成递归工作栈。

猜你喜欢

转载自blog.csdn.net/liusisi_/article/details/105012159