- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构_栈和队
第二章 常用数据结构及其运算 * * 2.3 栈 与 队 2.3.1 栈的结构和运算 栈的定义 ? 是只能在表的一端进行插入和删除操作的 线性表。允许插入和删除的一端称为栈顶 (top),另一端称为栈底(bottom)。 ? 设栈s=(a1,a2,...,an),a1称为栈底元素, an称为栈顶元素。 ? 栈中元素按a1,a2,...,an次序进栈,又按 an,...,a2,a1次序退栈。因此栈的操作特点 是:后进先出(LIFO);n=0时称为空栈。 ? 栈的存储结构:顺序和链式 ? 栈的种类:顺序栈、链栈、对顶栈 a1 a2 a3 …… an 栈底 栈顶 进栈 出栈 例1:一个栈的入栈序列是abcde,则栈的不可能的输出 序列是( C ) A. edcba B. decba C. dceab D. abcde 例2:栈的输入序列为abcdef,则不可能的输出序列有: aedfbc,…… 顺序栈 ? 用向量作为存储结构,可用一维数组s[1:m] 表示。 m-栈的最大容量。 Top-栈顶指示器。top=0,栈空;top=m,栈满。 2.3 栈 与 队 2.3.1 栈的结构和运算 a1 a2 …… top 1 2 a1 a2 …… 1 2 3 top 进栈:top+1 a1 a2 …… 1 2 退栈:top-1 top a1 a2 a3 …… am 栈满 top …… 0 top 栈空 ? 插入(进栈):先令top加“1”,再将元素送入s[top]中。当top=m时若再有元素进栈,则产生“上溢”。算法如下: Push(s,m,top,x) {if(top=m){ “上溢”; return; }top++; s[top]-x; return; } 2.3 栈 与 队 删除(退栈):只要将top减 “1”即可。算法如下: Pop(s,top,y){ if(top=0){ “下溢”; return; } y-s[top]; top--; return;} 链栈 ? 链栈是用链表作为栈的存储结构,top为栈顶指 针,指示栈顶元素位置,若top=nil,则表示栈 空。链栈一般不会出现上溢,除非内存中已不 存在可用空间。 2.3 栈 与 队 2.3.1 栈的结构和运算 top ^ 栈底 top 空栈 ? 链栈的插入(进栈): ? 链栈的删除(退栈): top ┄ x ^ p data(p)-x; next(p)-top; Top-p; top ┄ ^ P-top; top-next(top); RET(p); 4. 对顶栈 2.3 栈 与 队 2.3.1 栈的结构和运算 栈底1 a1 a2 a3 a4 a5 栈底2 a1 a2 top1 top2 特点:共享栈空间 若A(1: m), 则每栈最大空间 m/2 5. 栈的应用 (1) 表达式求值(用于高级语言的编译程序) ?运算符:** / * + - ; 优先数:3 2 2 1 1 0 2.3 栈 与 队 2.3.1 栈的结构和运算 ?小括号优先数: θ1 θ2 ( 其它符号,=“)” ( 其它符号 ) 其它符号 ) 其它符号 需建立两个栈:操作数(NS)、运算符(OS)。 ? 算法思想:置NS为空, “; ”作为OS的栈底元素。自左至右扫描表达式: ① 若为操作数,将其压入NS栈 ② 若为运算符,与OS栈顶元素比较优先级: OS栈顶,则将当前运算符压入OS栈。 = OS栈顶,则从NS栈中弹出两个操作数x、y,再从OS栈中弹出一个运算符θ,构成一条机器指令:xθy→T,将结果T送入NS栈。 = “;”,且OS栈顶也为“;”,则表示表达式处理结束,此时NS栈顶的元素即为此表达式的值。 (1) 表达式求值 ? 举例:设表达式为:A / B ** C + D; 过程为: C B A ** / ; D T2 + ; B**C--T1 T1 A / ; T2+ D--T3 T3 ; ; A/T1 --T2 T2 得到表达式的值T3 2.3 栈 与 队 2.3.1 栈的结构和运算 ? 过程嵌套--多重嵌套时,用栈将各层断点信息依次入栈,当各层子过程返回时,以相反的次序从栈顶取出(FILO, or, LIFO) 2.3 栈 与 队 2.3.1 栈的结构和运算 r 主过程 r s t r s r s t r s r 子程A 子程B 子程C ? 递归调用--一个过程通过过程调用语句
您可能关注的文档
- 小榄侨中实际问题和一元一次方程(销售问题).ppt
- 工业产品售后服务和技能训练(PPT 56).ppt
- 岗位责任制应用学习资料之目标管理和绩效考核.pdf
- 川端康成和雪国.ppt
- 工业控制计算机产业现状和发展策略.doc
- 嵌入式系统专业教学实施方案-课程体系和教学改革.pdf
- 工程事故分析和处理 第7章 渗漏事故处理.ppt
- 工业生产中机械加工 时间 定额和其组成 切削 用量的计算和选择原则 车削 刨削、插削 钻削.doc
- 嵌入式系統組织架構和设计培训课程.pdf
- 岳麓版第5课 爱琴文明和古希腊城邦制度.ppt
- 深度解析(2026)《GBT 5634-2008扩口式组合弯通三通管接头》.pptx
- 53短视频推广5新媒体短视频营销66课件讲解.pptx
- 深度解析(2026)《GBT 5635-2008扩口式锥螺纹三通管接头》.pptx
- 深度解析(2026)《GBT 5639-2008扩口式三通管接头》.pptx
- 深度解析(2026)《GBT 5641-2008 扩口式四通管接头》.pptx
- 深度解析(2026)《GBT 5643-2008扩口式过板直通管接头》.pptx
- 深度解析(2026)《GBT 5642-2008扩口式焊接管接头》.pptx
- 52绿色化学原理00课件讲解.pptx
- 深度解析(2026)《GBT 5374-2023摩托车和轻便摩托车可靠性试验方法》.pptx
- 深度解析(2026)《GBT 5449-2015烟煤罗加指数测定方法》.pptx
最近下载
- 内浮顶罐安全管理规范.pdf VIP
- 最新子宫颈高级别上皮内病变管理的中国专家共识2022(完整版).pdf VIP
- 2025年建筑工程副高面试题及答案.docx VIP
- 2023年嘉兴学院计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 四川省德阳市2023-2024学年高一下学期教学质量监测 化学试卷含答案.docx VIP
- 流量积算仪瞬时流量不确定度评定与流量理论值的误差分析.pdf
- CASS编码、图层、图块名称、属性对照表.pdf VIP
- 2023年浙江万里学院计算机科学与技术专业《计算机网络》科目期末试卷A(有答案).docx VIP
- 《中国药典》2020年版 二部 注射用水.pdf VIP
- 沈阳建筑大学《计算机网络》2025 学年第二学期期末试卷.pdf VIP
原创力文档


文档评论(0)