数据结构第三章栈教学ppt.ppt

数据结构第三章栈教学ppt.ppt

数据结构课程的内容 第三章 栈和队列 3.1 栈(Stack) 3.2 队列(Queue) 1. 定义 栈的存储结构 顺序栈 实现:一维数组s[M] Q1:堆栈是什么?它与一般线性表有什么不同? Q2:顺序表和顺序栈的操作有何区别? Q3:什么叫“向上生成”的栈? “向下生成”又是何意? Q4:为什么要设计堆栈?它有什么独特用途? 例1一个栈的输入序列为1,2,3,若在入栈的过程中允许出栈,则可能得到的出栈序列是什么? 例2: 设依次进入一个栈的元素序列为c,a,b,d,则可得到出栈的元素序列是: A)a,b,c,d B)c,d,a,b C)b,c,d,a D)a,c,d,b 基本操作 顺序栈的入栈操作——例如用堆栈存放(A,B,C,D) 顺序栈出栈操作——例如从栈中取出‘B’ 链栈的入栈操作和出栈操作 栈的应用举例 例1、多进制输出: 回文游戏:顺读与逆读字符串一样(不含空格) 例3、表达式求值 限于二目运算符的表达式定义: 表达式::=(操作数)+(运算符)+(操作数) 操作数::=简单变量|表达式 如何从原表达式求后缀式? 例如a*b+(c-d/e)*f 后缀式(逆波兰式):ab × cde/-f ×+ 1)设立运算符栈; 2)设表达式的结束符为#,予设运算符栈的栈底为# 3)

文档评论(0)

1亿VIP精品文档

相关文档