- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法应用教程资源4
数据结构与算法实用教程 主编 高佳琴 第4章 栈与队列 本章要点: 1)栈的定义和结构特点,栈的存储方式(顺序存储与链接存储)和基本操作的实现算法。 2)队列的定义和结构特点,队列的存储方式和基本操作的实现算法。 3)栈和队列的应用。 本章难点: 1)栈的特性,栈的存储结构,栈的基本操作实现算法。 2)队列基本操作的实现算法。 3)栈和队列的应用。 4.1 栈 4.1.1 栈的基本概念4.1.2 栈的存储方式和基本操作的实现算法 4.1.1 栈的基本概念 栈(stack)是限定在表的一端进行插入或删除操作的线性表。插入元素操作称为入栈,删除元素操作称为出栈。 1)顺序栈为空,这是初始化栈后的结果。2)元素A入栈,此时top=0。3)元素B、C、D入栈,此时top=3。4)执行两次出栈操作,元素D、C出栈,此时top=1。5)再执行两次出栈操作后,栈回到初始状态,top=-1。 4.1.1 栈的基本概念 图4-1 栈的示意图 4.1.1 栈的基本概念 图4-2 栈顶指针和栈中元素之间的关系 4.1.2 栈的存储方式和基本操作的实现算法 (1)初始化栈 InitStack(S)。(2) 入栈 PushStack(S,x)。(3) 出栈 PopStack(S)。(4) 获取栈顶元素内容 GetTopStack(S)。(5) 判断栈是否为空 IsNullStack (S)。1.栈的顺序存储2.栈的链式存储 1.栈的顺序存储 图4-3 顺序栈 (1)栈空(2)栈满(3)入栈操作(4)出栈操作 1.栈的顺序存储 图4-4 入栈操作算法流程 1.栈的顺序存储 图4-5 出栈操作算法流程 2.栈的链式存储 图4-6 栈的链式存储结构 图4-7 链栈的操作a)含有两个元素的栈 b)插入元素后的栈 c)删除两个元素后的栈 2.栈的链式存储 (1)空栈(2)栈满(3)入栈操作(4)出栈操作 图4-8 出栈操作算法流程 4.2 队列 4.2.1 队列的基本概念4.2.2 队列的基本操作4.2.3 队列的存储方式和基本操作的实现算法 4.2.1 队列的基本概念 图4-9 队列示意图 队列(queue)是一种特殊的线性表。它的特点是插入操作限定在表的一端进行,而删除操作则限定在表的另一端进行。允许删除操作的一端称为队头(front),允许插入操作的一端称为队尾( rear), 4.2.2 队列的基本操作 (1) 初始化队列 InitQueue(q)。(2) 入队 EnterQueue(q,x)。(3) 出队 DelQueue(q,x)当队列中有元素存在时,删除队头元素,返回队头元素的值,且其后继为新的队头元素,队列减少一个元素。(4) 获取队头元素内容 getfirstQueue(q,x)。(5) 判断队列是否为空 IsNullQueue(q)。 4.2.3 队列的存储方式和基本操作的实现算法 1.顺序队列的数据类型2.顺序队列中的溢出现象3.循环队列的结构及实现 1.顺序队列的数据类型 (1)初态(2)队空状态(3)队满状态(1)入队操作(2)出队操作 2.顺序队列中的溢出现象 (1)“下溢”现象 当队列为空时,作出队运算产生的溢出现象。(2)“真上溢”现象 当队列满时,做入队运算产生空间溢出的现象。(3)“假上溢”现象 顺序队列的入队和出队并不是完全像现实生活中的排队,一个人出队后,其他人依次向前移动,而是队头位置在移动。 图4-10 “假上溢”示意图 3.循环队列的结构及实现 图4-11 循环队列示意图 3.循环队列的结构及实现 图4-12 第二种方法示意图 3.循环队列的结构及实现 图4-13 入队操作算法流程图 3.循环队列的结构及实现 图4-14 出队操作算法流程图 4.3 栈与队列的应用 4.3.1 栈的应用4.3.2 队列的应用 4.3.1 栈的应用 1) 若N≠0,则将N%r压入栈s中,执行2);若N=0,将栈s的内容依次出栈,算法结束。2) 用N/r代替N。1)当栈已空,串中还有右括弧,说明已检测部分的右括弧多于左括弧,不配对;2)当括号串已检测空,栈还有左括弧,说明左括弧多于右括弧,不配对;3)当括号串检测完时,栈也空了,说明左括弧等于右括弧,配对。 2) 用N/r代替N。 表格 4.3.2 队列的应用 1)栈是一种只允许在一端进行插入和删除的线性表,栈顶元素总是最后入栈的,因而最先出栈;栈底元素总是最先入栈的,因而也是最后出栈。2)栈的顺序存储结构。3)栈的链式存储结构。4)队列。 习题 1.填空题2.简答题3.写出下列程序段的运行结果(程序中的元素类型是char)4.算法设计题1.实验目的2.实验要求3.实验内容
您可能关注的文档
- 数值算法 2拉格朗日插值.ppt
- 数值电磁学期中报告.ppt
- 数值算法 4分段插值.ppt
- 数值算法 5最小二乘法.ppt
- 数值算法 6二分法.ppt
- 数值算法 三角分解、追赶法.ppt
- 数值算法 3牛顿插值.ppt
- 数值算法 雅克比迭代法解线性方程组.ppt
- 数值算法 高斯-赛德尔迭代法.ppt
- 数值计算方法第3章.ppt
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
最近下载
- 新人教版高中物理必修第一册学案:2.2匀变速直线运动的速度与时间的关系.doc VIP
- 新生儿低氧血症的常规管理PPT课件.pptx VIP
- 高考英语句子成分及句子基本结构(共32张PPT).pptx VIP
- 药物成瘾教案.ppt VIP
- 广东省广州市五校2022-2023学年高一下学期期末联考物理试卷及参考答案.pdf VIP
- 海砂混凝土工程施工方案(3篇).docx VIP
- 2024年湖北省执业药师继续教育处方审核—中西药联合用药(3)答案.docx VIP
- 冷热疗法的效应.ppt VIP
- 卫生院优质服务基层行创建资料(4.8.1 信息公开).docx VIP
- 呼吸衰竭病人护理查房.pptx VIP
文档评论(0)