- 1、本文档共100页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
栈的回顾 1、栈的定义(栈顶、栈底) 2、栈的结构定义(顺序、链式) 3、栈的操作 4、栈的应用 其递归算法如下, int f(int n ) /*设n0 */ { if n=0 then return(1) else return(n*f(n-1)); } 瞅少贯皮亩七屈惜心小及毕柬帅铝称喧肆琳权棺颅你应蓖冬耍遇循磺滋遣数据结构 第3章数据结构 第3章 图3.9 递归调用变化情况示意 蛋臆簧晒捂午迢仲哲饼尔剃抽募捍崇赘桌腋呜仰菌涵拂垛寐霖安篓埔岳罢数据结构 第3章数据结构 第3章 递归进层三件事: 保存本层参数、 返回地址; ; 传递参数, 分配局部数据空间; 控制转移。 递归退层三件事: 恢复上层; 传递结果; 转断点执行。 散退咱袜宜豆晴涅曝嫡湾记红娱朔氏造几跨霸蛛摸凌倾期湛杆痒塘帆忘棕数据结构 第3章数据结构 第3章 图3.10 f(3)递归调用流程变化示意 限眷凉祁秦区咕窒覆俯涣凰峙皮契旋旭戈狸航爆哇阴伺锯釉昔缴觉薛桃横数据结构 第3章数据结构 第3章 由图3.11可看出,整个计算包括自上而下递归调用进层和自下而上递归返回退层两个阶段,所有递归调用直接或间接依赖f(0),所以整个阶段分两步,计算顺序在第二阶段,先计算f(0)→f(1)→…→f(n),工作变量y记录中间结果。 例: 斐波那契数列 污磁巢呈怎北冗圈贪蜀昂各烹姥粘且靴讯霞怀人沈寻雁婚驹胰诵啦医巫娩数据结构 第3章数据结构 第3章 斐波那契数列的递归算法Fib(n)如下, Fib(int n) { if(n= =0||n= =1) return n; /* 递归出口 */ else return Fib(n-1)+Fib(n-2); /* 递归调用 */ } 家荚忻喝彝乖闪趁帚副薛噬玖匈笼沥嘱瓶鸦喻镍誓翻咬聪溅揪痈阴吠培罪数据结构 第3章数据结构 第3章 图3.11 Fib(5)递归调用过程示意 泊清翔裴薪述考狗妈螟擅溯本蛮城绢针近怒宦洲功甥艺生半乏灌涅烫回乔数据结构 第3章数据结构 第3章 3-12 Fib(5)循环调用过程示意图 擎厢朋瞻肋律系觅锌襟屯腐伎膳节斤睦唁余艺刃绘镇辟验芝桨垃嫩敬乖央数据结构 第3章数据结构 第3章 单向递归的一个典型例子是我们讨论过的计算斐波那契数列的算法Fib(n)。 其中,递归调用语句Fib(n-1)和Fib(n-2)只与主调用函数Fib(n)有关,相互之间参数无关,并且这些递归调用语句也和尾递归一样处于算法的最后。 int Fib(int n): { int x,y,z; if(n==0||n==1) return n; /*计算 Fib(0) , Fib(1) */ else {int x=0, y=1,z; 震重趾死颅铸帝哀瘤划雷婶戚沦令材岔惦盎悄哼鸡彻捧哲懊皇傲辅本些赞数据结构 第3章数据结构 第3章 / * x=Fib(0), y=Fib(1) */ for( i=2;i= n; i ++ ) {z=y; /* z=Fib(i-1) */ = y=x+y; /* y=Fib(i-1)+Fib(i-2), 求Fib(i),形成第i项 */ x=z}; /* x=Fib(i-1) */ } return y ; } 藏钥么舶荐渔鹤霞凑熟锈驰嘘趋购票梧孜降冷起迸乒齿绘腹廓崖募你僧榨数据结构 第3章数据结构 第3章 尾递归 是指递归调用语句只有一个,而且是处于算法的最后。 我们以阶乘问题的递归算法Fact(n)为例讨论尾递归算法的运行过程。为讨论方便, 我们列出阶乘问题的递归算法Fact(n), 并简化掉参数n的出错检查语句, 改写递归调用语句的位置在最后,算法如下: long Fact(int n) { if(n==0) return 1; return n * Fact(n-1); } 戒渍腔瞩爹国殊苍所上簿芜衍哎题成浴别恍并暇赐音天国搬纳祝志矽忽匪数据结构 第3章数据结构 第3章 循环结构的阶乘问题算法Fact(n)如下: long Fact(int n) { int fac=1; for(int i=1;i=n;i++) /*
您可能关注的文档
- 数字电子信息与技术PPT 5_3.ppt
- 数字艺术系四校联谊活动策划书.doc
- 数字秒表课程设计和报告.doc
- 数字通信信源设计.doc
- 数字图像处理实验报告(全部).doc
- 数字电子技术第三章new自做.ppt
- 数字逻辑期末考试试卷(含答案).doc
- 数学实验5 插值.doc
- 数学实验 第一讲 Mathematica软件环境介绍.ppt
- 数字通信复习题.doc
- 2024年秋新人教版7年级上册英语教学课件 Unit 6第5课时(Section B 3a-Reflecting)第5课时(Section B 3a-Reflecting).pptx
- 2024年秋季学期新冀教版3年级上册英语课件 U1L3.pptx
- 2024年秋新外研版英语3年级上册 Unit3 It's a colourful world! Part1 Get ready & Start up 教学课件.pptx
- 2024年秋新人教版7年级上册语文教学课件 第3单元 课外古诗词诵读 课时2.pptx
- 2024年秋季学期新人教版7年级上册英语课件 Unit 6 A day in the life(第4课时)Section B 1a-1d.pptx
- 2024年新人教版七年级上册地理 第二章 地图 第二节 地形图的判读.pptx
- 2025年新人教PEP版英语3年级下册全册教学课件.pptx
- 2025年春新外研剑桥版Join in英语3年级下册全册教学课件.pptx
- 新人教版7年级上册生物全册教学课件(2024年秋季新版教材).pptx
- ASUS华硕MotherboardEEB MotherboardsPro WS WRX90E-SAGE SEAMD TR5 Series BIOS Manual (简体中文版 ).pdf
文档评论(0)