- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 栈和队列 第三章 栈和队列 一、栈的逻辑结构 第三章 栈和队列 一、栈的逻辑结构 例题:假设有A , B , C , D 四个元素;它们入栈的次序为A一> B 一>C 一>D 出栈次序任意,请问不可能得到下面哪些出栈序列? ( 1 ) A B C D ( 2 ) D B C A ( 3 ) C D B A ( 4 ) C B A D ( 3 ) A C B D ( 6 ) D B A C ( 7 ) A D C B ( 8 ) C A B D 第三章 栈和队列 一、栈的逻辑结构 第三章 栈和队列 一、栈的逻辑结构 5)进栈操作Push(S, e)功能:元素e进栈; 6)退栈操作Pop(S, e) 功能:栈顶元素退栈,并用e返回; 7)判空操作StackEmpty(S) 功能:若栈S为空,则返回True,否则返回False; 第三章 栈和队列 二、栈的ADT描述 §3.2栈的顺序存储结构及实现 1 、存储方式:同一般线性表的顺序存储结构完全相同。是利用一组连续的内存单元依次存放自栈底到 栈顶的数据元素,栈顶元素的位置由一个称为栈顶 指针的变量指示 。 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 2 、特点:简单、方便,但易产生溢出。 上溢(Overflow ) 栈已经满,又要压入元素; 下溢(Underflow ) 栈已经空,还要弹出元素; §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.2栈的顺序存储结构及实现 §3.3栈的链式存储结构及实现 1 、存储方式:同一般线性表的单链式存储结构完全相同。但是应该确定链表的哪端对应于栈顶,如果链表尾作为栈顶,则入、出栈操作的时间复杂性为O( n ) . §3.3栈的链式存储结构及实现 栈链式存储结构下各运算的虚拟实现 1 、栈初始化S =(LStack * ) malloc ( sizeof ( LStack ) ) ; s . next = NULL ; §3.3栈的链式存储结构及实现 栈链式存储结构下各运算的虚拟实现 if ( S 一>next=NUULL ) return (OVERfLOW)//下溢 else p = s 一>next ; e=p 一>data ; s 一>next = p 一>n ext ; free(p); §3.3栈的链式存储结构及实现 栈链式存储结构下各运算的虚拟实现 顺序表与链表的比较:顺序栈需要固定空间长度,存在溢出问题,但链式栈的每个元素都有指针域,增加了空间开销。另外,求链栈的大小时间复性为O(n ) §3.4 栈的应用举例 §3.4 栈的应用举例 由上述求解过程可以看出,在计算过程中是从低位到高位顺序产生八进制数的各个数位,而显示时按照我们的习惯是从高位在前,低位在后,即按从高位到低位的顺序输出, 即后计算出的(高)位数先输出,具有后进先出的特点,因此可将计算过程中得到的八进制数顺序进栈,出栈序列打印输出的就是对应的八进制数。 3.4 栈的应用举例 3.2 栈的应用举例 3.2 栈的应用举例 3.4 栈的应用举例 3.4 栈的应用举例 我们看到:进行运算的算符?i是当前扫描过的运算符中优先级最高者,同时,也是到当前最后被保存的运算符,由此可见,可以利用两个栈分别保存扫描过程中遇到的操作数和运算符。 3.4 栈的应用举例 栈与递归(补充) 栈与递归 栈与递归 栈与递归 栈与递归 栈与递归 栈与递归 栈与递归 §3.5队列的逻辑结构及操作实现 一 队列的逻辑结构 §3.5队列的逻辑结构及操作实现 一 队列的逻辑结构 §3.5队列的逻辑结构及操作实现 一 队列的逻辑结构 5)取队头元素操作GetHead(Q,e) 功能:取队头元素,并用e返回;6)入队操作EnQueue( Q, e ) 功能:将元素e插入Q的队尾;7)出队操作DeQueue( Q, e)
您可能关注的文档
- 市场营销技术管理知识(29页)详解.ppt
- 市场营销培训讲座(25页)详解.ppt
- 市场营销调查、预测与(78页)详解.ppt
- 市场营销调研(39页)详解.ppt
- 市场营销调研报告(33页)详解.ppt
- 市场营销调研的程序(20页)详解.ppt
- 市场营销调研的程序与问题(84页)详解.ppt
- 市场营销调研--二手与定性调研法(65页)详解.ppt
- 市场营销调研方案(14页)详解.ppt
- 市场营销调研概述(46页)详解.ppt
- 2025年青岛版7年级下册数学期末试卷附完整答案详解【名校卷】.docx
- 2025年青岛版7年级下册数学期末试卷带答案详解(基础题).docx
- 2025年青岛版7年级下册数学期末试卷带答案详解(精练).docx
- 2025年青岛版7年级下册数学期末试卷含答案详解(轻巧夺冠).docx
- 网络安全靶场平台相关项目实施方案.docx
- 2025年青岛版7年级下册数学期末试卷含答案详解(基础题).docx
- 2025年青岛版7年级下册数学期末试卷含答案详解(精练).docx
- 2025年青岛版7年级下册数学期末试卷含答案详解【考试直接用】.docx
- 2025年青岛版7年级下册数学期末试卷(全优)附答案详解.docx
- 2025年青岛版7年级下册数学期末试卷含答案详解【典型题】.docx
文档评论(0)