NYOJ 467 中缀式变后缀式【栈】
来源:互联网 发布:淘宝全屏主页 编辑:程序博客网 时间:2024/05/16 07:00
中缀式变后缀式
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
- 人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更“习惯于”后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式。
- 输入
- 第一行输入一个整数n,共有n组测试数据(n<10)。
每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式的中缀式,每个运算式都是以“=”结束。这个表达式里只包含+-*/与小括号这几种符号。其中小括号可以嵌套使用。数据保证输入的操作数中不会出现负数。
数据保证除数不会为0 - 输出
- 每组都输出该组中缀式相应的后缀式,要求相邻的操作数操作符用空格隔开。
- 样例输入
21.000+2/4=((1+2)*5+1)/4=
- 样例输出
1.000 2 4 / + =1 2 + 5 * 1 + 4 / =
- 来源
- 数据结构
- 上传者
- mix_math
#include <iostream>#include<cstdio>#include<cstring>#include<stack>#define maxn 1010using namespace std;stack<char>op;int main(){ int n,f; char s[maxn]; scanf("%d",&n); while(n--) { scanf("%s",s); int lens=strlen(s); for(int i=0;i<lens;++i) { f=0; while((s[i]>='0'&&s[i]<='9')||s[i]=='.') f=1,printf("%c",s[i++]); if(f) printf(" "); if(s[i]=='(') op.push(s[i]); else if(s[i]==')') { while(op.top()!='(') { printf("%c ",op.top()); op.pop(); } op.pop(); } else if(s[i]=='=') { while(!op.empty()) { printf("%c ",op.top()); op.pop(); } printf("=\n"); } else if(op.empty()) op.push(s[i]); else { if(s[i]=='+'||s[i]=='-') { while(!op.empty()&&op.top()!='(') { printf("%c ",op.top()); op.pop(); } op.push(s[i]); } else { while(!op.empty()&&op.top()!='('&&op.top()!='+'&&op.top()!='-')//这类型的判断要记得先判断栈非空 否则可能会出现非法访问 RE { printf("%c ",op.top()); op.pop(); } op.push(s[i]); } } } } return 0;}
0 0
- NYOJ 467 中缀式变后缀式
- NYOJ-467 中缀式变后缀式
- 中缀式变后缀式(nyoj 467)
- NYOJ 467 中缀式变后缀式
- NYOJ 467 中缀式变后缀式
- NYOJ 467 中缀式变后缀式
- NYOJ 467 中缀式变后缀式
- NYOJ 467 中缀式变后缀式
- nyoj 467 中缀式变后缀式
- NYOJ 467 中缀式变后缀式
- NYOJ 467 中缀式变后缀式【栈】
- NYOJ 467 中缀式变后缀式(栈)
- NYOJ--中缀式变后缀式
- NYOJ-467 中缀式变后缀式【逆波兰法】
- NYOJ-467 中缀式变后缀式
- nyoj 题目467 中缀式变后缀式
- NYOJ-467-中缀式变后缀式(模拟)
- nyoj 467 中缀式变后缀式 nyoj 257 郁闷的C小加(一)
- 内部排序稳定性总结
- ServletContext获取文件真实路径
- Java学习日记-对象与类
- 请问在java中定义字符串时要加上final修饰吗?
- HDU 1166 敌兵布阵【树状数组入门题】
- NYOJ 467 中缀式变后缀式【栈】
- hdu 1754 线段树入门(单点替换,区间最值)
- 40. Combination Sum II
- JTA 分布式事务
- Python--字符串
- Web组件之Servlet
- C++静态多态CRTP
- LA 4058 ACM Puzzles dp(插头)
- 搭建android系统开发环境