数据结构基础:逆波兰式转换
来源:互联网 发布:java 方法命名规范 编辑:程序博客网 时间:2024/05/24 05:01
题目:点击打开链接
数据结构实验之栈二:一般算术表达式转换成后缀式
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。
Input
输入一个算术表达式,以‘#’字符作为结束标志。
Output
输出该表达式转换所得到的后缀式。
Example Input
a*b+(c-d/e)*f#
Example Output
ab*cde/-f*+
Hint
Author
革命尚为成功!
数据结构实验之栈二:一般算术表达式转换成后缀式
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。
Input
输入一个算术表达式,以‘#’字符作为结束标志。
Output
输出该表达式转换所得到的后缀式。
Example Input
a*b+(c-d/e)*f#
Example Output
ab*cde/-f*+
Hint
Author
代码:#include<iostream>#include<cstdio>#include<cstring>#include<stack>using namespace std;stack <int> s;int main(){ int i; char c[1000]; gets(c); while(!s.empty()){ s.pop(); } for(i=0;c[i]!='#';i++){ if(c[i]>='a'&&c[i]<='z'){///不是运算符直接输出 printf("%c",c[i]); } else{ if(c[i]=='(') ///括号之间的运算符保留在栈中 s.push(c[i]); else if(c[i]==')'){ ///输出括号之间的内容 while(s.top()!='('){ printf("%c",s.top()); s.pop(); } s.pop(); } else if(c[i]=='+'||c[i]=='-'){///空栈时进栈,否则弹栈直到空栈或弹完括号之间内容 while(!s.empty()){ if(s.top()=='(') break; printf("%c",s.top()); s.pop(); } s.push(c[i]); } else if(c[i]=='*'||c[i]=='/'){ ///乘除号直接进栈 s.push(c[i]); } } } while(!s.empty()){ ///遍历结束,弹完剩余在栈中的内容 printf("%c",s.top()); s.pop(); } cout<<endl; return 0;}
革命尚为成功!
0 0
- 数据结构基础:逆波兰式转换
- 【数据结构】中缀表达式转换后缀表达式(逆波兰式)
- 逆波兰式转换
- 波兰式转换为逆波兰式
- JAVA数据结构示例---逆波兰式求值!
- 【数据结构】逆波兰表达式
- 将表达式转换成逆波兰式
- 将表达式转换成逆波兰式
- 将表达式转换成逆波兰式
- 将表达式转换成逆波兰式
- 将表达式转换成逆波兰式
- 中缀式转换为逆波兰表达式
- 波兰式,逆波兰式
- 数据结构之逆波兰表达式
- 数据结构---栈--逆波兰算法
- 【数据结构和算法分析】栈与逆波兰式
- 数据结构之栈的应用(3)逆波兰式
- [数据结构]Stack_Calculator(中序波兰式转后序波兰式)
- windows 64 位 python2.7 64 位 安装 pygraphviz
- HDU 4156 Egypt
- SpringBoot配置属性之其他
- Python性能分析概述
- 让我们加密一切
- 数据结构基础:逆波兰式转换
- 1003. 我要通过!
- 函数的嵌套与调用
- Java并发编程学习(一)
- Hadoop 集群启动后,从节点的NodeManager没有启动解决
- 数据结构之循环单链表(C语言实现)
- java的I/O流
- 蓝桥杯1
- 今天是2016-11-25,新博客地址,好好维护ing!↖(^ω^)↗