利用顺序栈计算后缀表达式(逆波兰表达式)
来源:互联网 发布:网络即时通讯工具 编辑:程序博客网 时间:2024/06/02 03:31
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define MaxSize 50struct SeqStack{ double data[MaxSize]; int top;};bool InitStack(SeqStack *S){ S->top=-1; return true;}bool Push(SeqStack *S,double x){ S->top++; S->data[S->top]=x; return true;}bool Pop(SeqStack *S,double &s){ s=S->data[S->top]; S->top--; return true;}void DoOperator(SeqStack *S,char ch){ double left,right,value; Pop(S,right); Pop(S,left); switch(ch) { case '+':value=left+right;Push(S,value);break; case '-':value=left-right;Push(S,value);break; case '*':value=left*right;Push(S,value);break; case '/': if(right==0) cout<<"错误"<<endl; else value=left/right;Push(S,value);break; } return ;}int main(){ SeqStack S; InitStack(&S); double operand,result; char ch; while(cin>>ch) { if(isdigit(ch)) {cin.putback(ch); //是操作数则将字符放回输入流(可能要输入的是12,2.5等等大于10或者非整数,用double变量保存 cin>>operand; //重新读取操作数 Push(&S,operand); //操作数压栈 } else DoOperator(&S,ch); } Pop(&S,result); cout<<result<<endl; return 0;}
0 0
- 利用顺序栈计算后缀表达式(逆波兰表达式)
- 数据结构-------计算逆波兰表达式(后缀表达式)
- 数据结构----顺序栈实现逆波兰表达式(后缀表达式)求解
- 逆波兰表达式(后缀表达式)及其计算
- 中缀表达式转化为后缀表达式,计算中缀表达式,计算后缀表达式(有注释)(逆波兰表达式)
- 【数据结构】动态栈+括号匹配+逆波兰表达式(后缀表达式计算)
- 逆波兰表达式(后缀表达式)2
- 逆波兰表达式(后缀表达式)
- 后缀表达式(逆波兰表达式)
- 逆波兰-后缀表达式
- 使用栈解决逆波兰表达式(后缀表达式)
- 逆波兰表达式,后缀表达式
- 利用逆波兰表达式(后缀表达式)解析四则运算表达式的详细源代码及解释
- 中缀表达式转后缀表达式(逆波兰表达式)
- 数据结构--中缀表达式转为后缀表达式(逆波兰表达式)
- 中缀表达式转后缀表达式(逆波兰表达式)
- 逆波兰表达式 中缀表达式 后缀表达式
- 逆波兰式(后缀表达式)
- 【GoogleCodeJam2016A】【暴力】Counting Sheep x的倍数从小向大增加直到出现0~9所有数的最小倍增终点
- 机房重构——退卡
- MySQL 高可用:mysql+proxy主从读写分离
- CSS3学习之选择器篇
- AJAX跨域调用相关知识-CORS和JSONP
- 利用顺序栈计算后缀表达式(逆波兰表达式)
- 一个通讯录 完成增删查找
- 我看过的好书推荐
- SpringMVC中controller返回图片
- Java中获取路径的各种方法
- hadoop yarn配置的一点小问题
- 考试总结
- [python之数据分析] 基础篇1- Numpy,Scipy,Matplotlib 快速入门攻略
- 【GoogleCodeJam2016B】【贪心】Revenge of the Pancakes -+改变并翻转 最小操作次数使得字符串变为全+