把中缀表达式转化为后缀表达式
2017-12-13 11:18
239 查看
#include<iostream> #include<stdio.h> #include<string.h> using namespace std; #define size 100 typedef struct stack{ char a[size]; int top; }stack; stack st; char get[size]; void tran(char *a){ int t=strlen(a),j=0; for(int i=0;i<t;i++){ if(a[i]<='9'&&a[i]>='0') get[j++]=a[i]; else if(a[i]=='(') st.a[++st.top]=a[i]; else if(a[i]==')'){ while(st.a[st.top]!='(') get[j++]=st.a[st.top--]; st.top--; } else if(a[i]=='-'||a[i]=='+') st.a[++st.top]=a[i]; else { while(st.a[st.top]!='('&&st.top!=0&&st.a[st.top]!='*'&&st.a[st.top]!='/') get[j++]=st.a[st.top--]; st.a[++st.top]=a[i]; } } while(st.top!=0) get[j++]=st.a[st.top--]; get[j]='\0'; } int main(){ char a[100]; while(scanf("%s",a)!=EOF){ tran(a); printf("%s",get); } }
相关文章推荐
- 中缀表达式转化为后缀表达式的算法分析
- 后缀式与中缀式的恩怨-->中缀表达式转化为后缀表达式
- 中缀表达式转化为后缀表达式
- 中缀表达式转化成后缀表达式
- [Swust OJ 322]--东6宿舍灵异事件(中缀表达式转化为后缀表达式的简单运用)
- 中缀表达式转化为后缀表达式——觉得蛮好的题目着实想了半天
- 将中缀表达式转化为后缀表达式
- 中缀表达式转化为后缀表达式
- 将中缀表达式转化成后缀表达式(逆波兰式)
- 中缀表达式转化为后缀表达式,并计算后缀表达式
- 将中缀表达式转化为后缀表达式进行加减乘除解析求值
- 将中缀表达式转化为后缀表达式
- 逆波兰计算器与中缀表达式向后缀表达式的转化实例
- 中缀表达式转化为后缀表达式、后缀表达式求解(栈)
- 中缀表达式转化为后缀表达式
- 前缀表达式,中缀表达式,后缀表达式转化和计算
- 将中缀表达式转化为后缀表达式
- 用堆栈把中缀表达式转化为后缀表达式
- 中缀表达式转化为后缀表达式,计算中缀表达式,计算后缀表达式(有注释)(逆波兰表达式)
- 将中缀表达式转化为后缀表达式