第三章 栈和队列(3.4)

3.4栈与递归

3.4.1采用递归算法解决的问题

1.递归的定义:

若一个对象部分地包含它自己, 或用它自己给自己定义, 则称这个对象是递归的;

若一个过程直接地或间接地调用自己, 则称这个过程是递归的过程。

long Fact ( long n ) {
    if ( n == 0) return 1;
    else return n * Fact (n-1); }

2.使用递归方法的情况:

2.1定义是递归的

很多数学函数是递归定义的,如:

2.2数据结构是递归的

某些数据结构本身具有递归的特性,则他们的操作可递归的描述,如

2.3问题的解法是递归的

还有一类问题,虽然问题本身没有明显的递归结构,但用递归求解比迭代求解更简单

3.4.2递归过程与递归工作栈

3.4.3递归算法效率分析

1、时间复杂度的分析

2、空间复杂度的分析

posted @ 2022-02-10 16:35    阅读(33)  评论(0)    收藏  举报