中缀式转化为前缀式,中缀式转化为后缀式
2015-06-05 20:56
176 查看
1 中缀式转化为前缀式: 从左向右读取中缀式, 当读取到(";直接压栈; 当读取的(”将"(前的全部取出,存到结果字符串中; 当读取的‘为’操作符时,将其与栈顶元素比较, 当栈顶元素小于或等于当前操作符时,将其压栈, 与中缀式转后缀式不同。//后缀式中,栈顶元素小于操作符时才可将其压栈; string fun(string a,string b)//中缀转前缀 { int len=a.length(); stacks; s.push('#'); for(int i=len-2; i>=0; ) { if(a[i]==')') { s.push(a[i]); i--; } else if(a[i]=='(') { while(s.top()!=')') { b+=s.top(); s.pop(); b+=' '; } s.pop(); i--; } else if(a[i]=='*'||a[i]=='-'||a[i]=='/'||a[i]=='+') { while(cmp(s.top())>cmp(a[i])) { b+=s.top(); s.pop(); b+=' '; } s.push(a[i]); i--; } else { while( (a[i]<='9'&&a[i]>='0')||a[i]=='.') { b+=a[i]; i--; } b+=' '; } } while(s.top()!='#') { b+=s.top(); s.pop(); if(s.top()!='#') b+=' '; } // reverse(b.begin(),b.end()); b+=' '; b+='='; return b; }
相关文章推荐
- 【矩阵乘】【NOI 2012】【cogs963】随机数生成器
- SAE开发 大小写问题
- 5.给出设计类图
- X-UA-Compatible
- SVG基础——如何使用可缩放矢量图形(SVG)
- 第十四周项目 小玩文件
- HDU 不容易系列之一
- 多wan示意图
- 黑马程序员-关于生产者消费者和火车票出售的线程问题
- 黑马程序员——Java基础——异常
- H.264/ACC音视频编码流的RTP/RTSP传输实现(3)
- ubuntu下python opencv搭建
- HDU 献给杭电五十周年校庆的礼物
- Linux 目录流管理
- Java间隔计时触发器
- MATLAB产生的导频经QPSK调制后的精度的问题
- C#分割字符串split()方法
- Mybatis-spring整合源码解析
- 【c++】智能指针
- apache commons-io相关介绍-monitor包