博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DS-011 栈-递归
阅读量:4100 次
发布时间:2019-05-25

本文共 501 字,大约阅读时间需要 1 分钟。

递归指在一个函数、过程或数据结构的定义中应用到了它自身。递归的精髓在于能否将原始问题转换为属性相同但规模较小的问题。

下面的代码最后会返回4。(f(0)=2,f(1)=1*f(0) = 2, f(2)=2*f(1) = 4)

if f(int x){return ((x>0)? x*f(x-1):2); //条件表达式}int i;i = f(f(1));//if (x>0) return x*f(x-1);//else return 2;

 

已知程序如下:

int S(int n){return (n<=0)?0:S(n-1)+n;}voidSmain(){cout<

程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息一次对应的是(A

A.main()->S(1)->S(0)    B.S(0)->S(1)->main()

C. main()->S(0)->S(1)     D.S(1)->S(0)->main()

解析:递归调用函数时,在系统栈里保存的信息需满足先进后出的特点。依次调用了main()、S(1)、S(0)。入栈顺序,栈底到栈顶信息都是main()->S(1)->S(0) 。

转载地址:http://oeeii.baihongyu.com/

你可能感兴趣的文章
责任链模式 Chain of Responsibility
查看>>
高并发与大数据解决方案概述
查看>>
解决SimpleDateFormat线程安全问题NumberFormatException: multiple points
查看>>
MySQL数据库存储引擎简介
查看>>
处理Maven本地仓库.lastUpdated文件
查看>>
CentOS7,玩转samba服务,基于身份验证的共享
查看>>
计算机网络-网络协议模型
查看>>
计算机网络-OSI各层概述
查看>>
Java--String/StringBuffer/StringBuilder区别
查看>>
mySQL--深入理解事务隔离级别
查看>>
分布式之redis复习精讲
查看>>
数据结构与算法7-栈
查看>>
Java并发编程 | 一不小心就死锁了,怎么办?
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
(python版)《剑指Offer》JZ06:旋转数组的最小数字
查看>>
(python版)《剑指Offer》JZ13:调整数组顺序使奇数位于偶数前面
查看>>
(python版)《剑指Offer》JZ28:数组中出现次数超过一半的数字
查看>>
(python版)《剑指Offer》JZ30:连续子数组的最大和
查看>>
(python版)《剑指Offer》JZ32:把数组排成最小的数
查看>>
(python版)《剑指Offer》JZ02:替换空格
查看>>