数据结构实验之栈二:一般算术表达式转换成后缀式
来源:互联网 发布:淘宝好的第三方活动 编辑:程序博客网 时间:2024/06/18 03:20
数据结构实验之栈二:一般算术表达式转换成后缀式
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。
输入
输入一个算术表达式,以‘#’字符作为结束标志。
输出
输出该表达式转换所得到的后缀式。
示例输入
a*b+(c-d/e)*f#
示例输出
ab*cde/-f*+
#include<stdio.h>#include<string.h>char a[1000],b[1000],c[1000];void f(){ int p=0; int q=-1; int k=0; while(a[p]!='#') { if(a[p]=='(') { q++; b[q]='('; } else if(a[p]==')') { while(b[q]!='(') { c[k]=b[q]; k++; q--; } q--; } else if((a[p]=='+'||a[p]=='-')&&(b[q]=='+'||b[q]=='-'||b[q]=='('||q==-1)||a[p]=='*'||a[p]=='/') { q++; b[q]=a[p]; } else if((a[p]=='+'||a[p]=='-')&&(b[q]=='*'||b[q]=='/')) { c[k]=b[q]; q--; k++; p--; } else { c[k]=a[p]; k++; } p++; } while(q>=0) { c[k]=b[q]; q--; k++; } for(int i=0;i<k;i++) printf("%c",c[i]);}int main(){ while(~scanf("%s",a)) { f(); printf("\n"); }}
0 0
- SDUT2132数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(手写栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- [SDUT](2132)数据结构实验之栈二:一般算术表达式转换成后缀式 ---栈
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT 2132 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT OJ 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT 2132 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- PS基础——自由变换
- javascript语法之函数案例练习
- AngularJS jqLite详情
- Spark函数讲解:coalesce
- 九宫格算法
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 中科院NLPIR中文分词java版应用方法
- vi和vim使用(二)
- Android ListView.setEmptyView
- 9——PHP循环结构foreach用法
- 深入理解Docker Volume(二)
- 压力测试和性能测试的区别
- thrift开发的例子(一)---python为例
- C3P0数据源