洛谷 1449——后缀表达式(线性数据结构)
2017-02-11 15:53
246 查看
题目描述
所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。
如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。
输入输出格式
输入格式:
输入:后缀表达式
输出格式:
输出:表达式的值
输入输出样例
输入样例#1:
3.5.2.-*7.+@
输出样例#1:
16
说明
字符串长度,1000内。
很简单
‘.’为读入
‘+’将前面a[ans]+a[ans-1]
‘-‘a[ans-1]-a[ans]
‘*’a[ans]*a[ans-1]
‘/’a[ans-1] div a[ans]
代码如下:
dd31
所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。
如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。
输入输出格式
输入格式:
输入:后缀表达式
输出格式:
输出:表达式的值
输入输出样例
输入样例#1:
3.5.2.-*7.+@
输出样例#1:
16
说明
字符串长度,1000内。
很简单
‘.’为读入
‘+’将前面a[ans]+a[ans-1]
‘-‘a[ans-1]-a[ans]
‘*’a[ans]*a[ans-1]
‘/’a[ans-1] div a[ans]
代码如下:
var x,ans:longint;c:char;a:array[1..600]of longint; begin x:=0; repeat read(c); case c of '0'..'9': x:=x*10+ord(c)-48; '+': begin dec(ans); a[ans]:=a[ans]+a[ans+1]; end; '-': begin dec(ans); a[ans]:=a[ans]-a[ans+1]; end; '*': begin dec(ans); a[ans]:=a[ans]*a[ans+1]; end; '/': begin dec(ans); a[ans]:=a[ans] div a[ans+1]; end; '.': begin inc(ans); a[ans]:=x; x:=0; end; end; until c='@'; writeln(a[1]); end.
dd31
相关文章推荐
- 【Bzoj3631】松鼠的新家
- 洛谷 1739——表达式括号匹配(线性数据结构)
- 重言式判别
- 洛谷 1115——最大子段和(线性数据结构)
- 夕拾-数据结构-计数排序
- HDU 3498 舞蹈链精确覆盖
- hdu 4393 优先队列
- 5.3稀疏矩阵的十字链表存储
- 【数据结构】二叉树
- 数据结构之用递归和非递归方法计算斐波那契数列的第n项
- 数据结构与算法系列 目录
- java数据结构-二叉树-Compute the depth of a binary tree.
- 哈希表
- 数据结构实验之链表九:双向链表
- 数据结构实验之栈六:下一较大值(二)
- 数据结构实验之栈:行编辑器
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 大话数据结构7 - 排序
- 大话数据结构6 - 查找
- 大话数据结构5 - 图