标签:code 实用代码 targe 入栈 lang bsp out alt 输入
栈是 OI 中常用的一种线性数据结构,栈的修改是按照后进先出的原则进行的,因此栈通常被称为是后进先出(last in first out)表,简称 LIFO 表。
1.初始化
2.判空
3.求栈中实际元素个数
4.进栈
5.出栈
6.取栈顶元素
此处只给出了其中三步骤
stack <数据类型> 栈名//初始化
s.top()//返回栈顶
s.empty()//返回是否为空
s.size()//返回元素数量
s.push()//插入传入的参数到栈顶
s.pop()//弹出栈顶
注意:这些函数都需要在头文件stack下
比如说A题---------后缀表达式求值
不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行,不再考虑运算符的优先规则,如:(2 + 1) * 3 , 即2 1 + 3 。这样的表达式称为后缀表达式,也叫逆波兰表达式。它是为了方便在计算机中进行表达式求值而出现的。给出一个仅由整数 、+、-、、/等组成的后缀表达式,符号之间用空格分开,计算它的值。"/" 表示整除。
第1行:1个字符串,即后缀表达式。
第1行:1个整数,表示运算结果。
2 1 + 3 *
9
1.数字直接保存进后缀表达式
2.操作符需要判断
(1)栈空则入栈;
(2)栈非空则比较当前op和栈顶op的优先级
当前‘(’大于所有栈顶op;
当前‘)’等于栈顶‘(‘,小于其它栈顶op;
当前op与栈顶op同级时,当前op小于栈顶op;
当前op是+-小于栈顶/
当前op是/大于栈顶+-
(3)判断结果做处理
大于:当前op入栈
等于:此时为左右括号相遇,将栈顶op弹出且当前op不作处理
小于:栈顶op出栈并且存入后缀表达式,当前op继续与新的栈顶op比较。
标签:code 实用代码 targe 入栈 lang bsp out alt 输入
原文地址:https://www.cnblogs.com/386tt/p/14455320.html