青岛大学 王卓老师
栈 先进后出 stack
队列 先进先出
栈和队列是限定插入和删除只能在端点的线性表
栈的相关概念
1.定义:限定只能在我表的一端进行插入和删除运算的线性表(只能在栈顶操作)
2.逻辑结构:与同线性表相同,仍为一对一关系。
3.存储结构:用顺序栈和链栈存储均可,但以顺序栈更常见。
4.运算规则:只能在栈顶运算,访问时按照后进先出的原则。
5.实现方式:关键是编写入栈和出栈的函数,具体实现按照顺序栈和链栈的不同而不同。
队列的定义和特点:
1.定义只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表(头删尾插)
2.逻辑结构:与同线性表相同,仍为一对一关系。
3.存储结构:顺序队或者链队,以循环顺序队列更常见。
4.运算规则:只能在队首和队尾运算,且访问结点时按照先进先出的原则。
5.实现方式:关键是掌握入队和出队操作,具体实现依顺序队或链队的不同而不同。
案例:1.进制转换 栈的性质
2.括号匹配的检验 栈的性质
3.表达式求值 栈的性质{
先设置两个栈
1.寄存运算符。OPTR
2.寄存运算数和运算结果 OPND
从左到右扫描表达式的每一个字符
*当扫描的是运算数,将其压入栈OPED
*当是运算符时,若这个运算符比OPED栈顶运算符高,则入栈OPTR,继续向后处理。
*如这个运算符优先级低,则从OPED中弹出两个运算符,从栈OPTR中弹出栈顶运算符进行运算,并将运算结果压入栈OPND中
*继续处理当前字符,知道遇到结束符为止
4.舞伴问题
结束于2022/2/17 p52 0:39