- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构C++版杨秀金第3章栈和队列-2课件教学.ppt
数据结构 第3章 栈和队列 第2讲 本章分为(3)讲 第1讲 3.1 栈 3.2 栈的顺序存储结构及实现 3.3 栈的链表存储结构及实现 3.4 栈的应用 3.4.1表达式计算 3.4.2 子程序的嵌套调用 在各种程序设计语言中都有子程序(或称函数、过程)调用功能。一个子函数还可以调用另一函数。在系统软件中会自动使用栈,将返回地址管理起来。下图所示为由主程序开始的三层嵌套调用关系,以及返回地址栈的情况。 3.4.3 递归调用 一个子程序可以直接或问接地调用自身。这就是递归调用。 在一层层递归调用时,其返回地址和所在每一调用层的形参变量数据都需一一记下进栈。返回时,它们一一出栈并且被采用。 现以求阶乘的递归方法为例分析栈在递归中的应用。这样可以加深对递归调用的理解,提高运用递归方法进行程序设计的能力。 3.4.3 递归调用 求n!的递归方法思路是: n!= 与之相应的C函数框架是: float fac(int n) { float p; if ( n==0 || n==1) p=1; else p=n*fac(n-1); //递归调用 return p; } //求阶乘的递归函数float fac( int n) { float p; if (n==0) p=1; else p=n*fac(n-1); return(p); } 3.5 队列 3.5.1 队列的定义 3.5.2 队列的抽象数据类型 ADT Queue { 数据对象:D={ai | ai∈ ElemSet , i=1,2,…,n, n≥0 ;} 数据关系:R={ ai-1 ,ai | ai-1 ,ai∈≥D, i=2,3,…,n } 约定a1端为队头,an 端为队尾。 基本操作:初始化一个空队列; 判队空,空队返回True,否则返回False; 入队,在队尾插入一个元素; 出队,在队头删除一个元素; 取队头数据元素值; 置队列为空状态; 销毁队列; 等等; } ADT Queue; 3.6 队列的顺序存储结构及实现 注意: (d)因尾指针rear已到最后位置,所以再进队a7会发生假“溢出”。 (a)和(c)队列为空,均有: rear==front 。 图(a) 设想elem[0]接在elem[5]之后, 发生假溢出时,可把a7插入到第0个位置上。 图(b)元素a8和a9进队后队列已满(真),若还要插入元素就会发生上溢(真)。此时有: front=rear=2。 图(C)队列为空状态,有:front=rear=0。 队列只凭rear==front, 无法判别队空还是队满,矛盾? 解决矛盾方的法:循环队列 循环队列的进队: 循环队列的出队: 小 结 栈在现实中在系统软件中有广泛的应用。 经过栈的学习,要求对函数的递归调用原理有认识。逐步学会设计递归函数。 队列是一种特殊的线性结构。 限定在队尾处插入,而在队头处删除。 队列是先进先出(First In First Oout,FIFO)的线性表。 约定队列的头指针front指向队列头元素前一位置,而为指针rear指向队尾元素自身。 小 结 循环队列是重要数据结构,一般说到循环队列即指队列的顺序存储结构。凡是涉及队头或队尾指针的修改都要将其对MAXSIZE求模: front=(front+1) % MAXSIZE; rear=(rear+1) % MAXSIZE; 记住循环队列,队空的判定条件:rear==front 队满的的判定条件是: (rear+1)%MAXSIZE==front 馋死 PPT研究院 POWERPOINT ACADEMY
您可能关注的文档
- 数据库系统原理及应用教程第3版苗雪兰实验四:嵌套查询课件教学.ppt
- 数据库系统原理及应用教程第3版苗雪兰第1章数据库系统基本概念课件教学.ppt
- 数据库系统原理及应用教程第3版苗雪兰第2章数据模型与概念模型课件教学.ppt
- 数据库系统原理及应用教程第3版苗雪兰第3章数据库系统的设计方法课件教学.ppt
- 数据库系统原理及应用教程第3版苗雪兰第4章关系数据库课件教学.ppt
- 数据库系统原理及应用教程第3版苗雪兰第5章关系数据库标准语言——SQL课件教学.ppt
- 数据库系统原理及应用教程第3版苗雪兰第6章SQLServer2000关系数据库管理系统课件教学.ppt
- 数据库系统原理及应用教程第3版苗雪兰第7章关系数据库理论课件教学.ppt
- 数据库系统原理及应用教程第3版苗雪兰第8章数据库保护技术课件教学.ppt
- 数据库系统原理及应用教程第4版刘瑞第1章课件教学.ppt
- 2025年河北张家口智数建设发展集团有限公司公开招聘工作人员2名备考题库最新.docx
- 2025年宁德市供电服务有限公司招聘49人备考题库附答案.docx
- 2025广东肇庆四会市第三次招聘乡村公益性岗位工作人员备考题库最新.docx
- 2025广东深圳市文化广电旅游体育局面向市内选调公务员3人备考题库附答案.docx
- 2025广西农村投资集团有限公司公开招聘中层管理人员和业务骨考前自测高频考点模拟试题附答案.docx
- 2025年甘肃省武威市第二批高层次和急需紧缺人才引进298人参考题库最新.docx
- 2025年延安子长市事业单位定向招聘大学生退役士兵(11人)备考题库最新.docx
- 2025年西安市工业合作联社下属企业招聘(10人)笔试备考试题最新.docx
- 2025年天津市河西区卫生健康委所属事业单位公开招聘高层次人才5人备考题库最新.docx
- 2025年山东能源集团西北矿业有限公司技能操作岗位招聘(笔试备考试题附答案.docx
原创力文档


文档评论(0)