数据结构实验之栈三:后缀式求值
2016-04-18 10:49
134 查看
<span style="font-family: 微软雅黑, 'Trebuchet MS', Helvetica, Arial, Geneva, sans-serif; background-color: rgb(255, 255, 255);">数据结构实验之栈三:后缀式求值</span>
Time Limit: 1000MS Memory limit: 65536K
题目描述
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。
输入
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。
输出
求该后缀式所对应的算术表达式的值,并输出之。
示例输入
59*684/-3*+#
示例输出
57
提示
基本操作数都是一位正整数!
来源
#include<bits/stdc++.h> using namespace std; int main () { char c; stack<int>s; int sum=0; while(cin>>c&&c!='#') { if(c>='0'&&c<='9') s.push(c-'0'); else { if(c=='*') { sum=s.top(); s.pop(); sum*=s.top(); s.pop(); s.push(sum); } else if (c=='/') { int v=s.top(); s.pop(); int t=s.top(); sum=t/v; s.pop(); s.push(sum); } else if (c=='+') { sum=s.top(); s.top(); sum+=s.top(); s.pop(); s.push(sum); } else if (c=='-') { int v=s.top(); s.pop(); int t=s.top(); sum=t-v; s.pop(); s.push(sum); } } } cout<<sum; return 0; }
相关文章推荐
- 数据结构与算法分析-c语言描述版 mark allen weiss
- 数据结构复习整理(易混点、易忘点)
- 数据结构之二分查找
- 【数据结构】 一个数组实现两个栈【面试】
- Java模拟有序链表数据结构的示例
- 数据结构--线性表.顺序表(C语言实现)
- 数据结构:红黑树java实现
- caffe(1)基础数据结构-Blob
- 数据结构-----树
- 数据结构与算法总论
- 常用的JVM数据结构
- MoFaDB 项目介绍
- Java数据结构与排序算法——堆和堆排序
- 数据结构(树转线性)最近公共祖先
- 数据结构杂谈(二)简单有趣的地精排序Gnome sort
- Structure.Hash(通过数组和链表实现一个简单的Hash)
- Sturcture.Heap 堆(最大堆实现(最小堆实现类似))
- Structure.Stack 栈(包含顺序栈、链表栈的实现)
- Structure.List 线性表(包含顺序链表,单链表,双链表,双向循环链表的实现)
- php面试题之二——数据结构和算法(高级部分)