[C++]利用逆波兰式,简单实现下加减乘除的混合运算
来源:互联网 发布:linux命令行创建进程 编辑:程序博客网 时间:2024/05/02 01:05
测试代码
此处显示之前逆波兰式求法后的增量代码!
http://blog.csdn.net/u010989191/article/details/53135563
//简单加减乘除法运算 因为数据是放在堆栈中 所以前一个操作数是opB 后一个操作数是opAint simpleCalculate(int opA, int opB, char op) { switch (op) { case '+': return opB + opA; case '-': return opB - opA; case '*': return opB * opA; case '/': return opB / opA; default: return 0; }}//计算表达式的值int calculate(string polish) { stack<int> values; bool lastIsNum = false; for (int i = 0; i < polish.length(); i++) { char c = polish.at(i); if (c == ' ') { lastIsNum = false; continue; } else if (c >= '0'&&c <= '9') { if (lastIsNum) { int last = values.top(); values.pop(); last = last * 10 + (c - '0'); values.push(last); } else { values.push(c - '0'); lastIsNum = true; } } else { lastIsNum = false; int opA = values.top(); values.pop(); int opB = values.top(); values.pop(); int calResult = simpleCalculate(opA, opB, c); values.push(calResult); } } return values.top();}int main(){ string str; cout << "请输入表达式: "; cin >> str; string result = reversePolish(str); cout << result << endl; int calResult = calculate(result); cout << "计算结果: " << calResult << endl; system("pause"); return 0;}
测试结果
0 0
- [C++]利用逆波兰式,简单实现下加减乘除的混合运算
- 利用Lemon实现的加减乘除四则混合运算
- 简单的逆波兰式 c语言
- 简单的加减乘除运算
- 利用JavaScript实现加减乘除运算
- C++-----利用括号递归实现的加减乘除
- C语言实现的简单的逆波兰计算器
- JavaScript 简单实现加减乘除运算
- 使用Object-c类实现简单地加减乘除运算
- C实现矩阵加减乘除运算
- C实现矩阵加减乘除运算
- 利用栈实现计算器,先转换为逆波兰式之后运算
- 逆波兰式算法(加减乘除,小数)
- 逆波兰式--利用栈实现
- 利用栈实现逆波兰式求值
- javascript简单的加减乘除运算
- 大数的加减乘除运算(C++)
- 利用逆波兰式进行四则表达式运算
- hdu 1394 Minimum Inversion Number
- Java爬虫(4)——HttpGet vs HttpPost
- 文章标题 POJ 3278 : Catch That Cow(BFS)
- addToBackStack使用和Fragment执行流程
- HDU 2021
- [C++]利用逆波兰式,简单实现下加减乘除的混合运算
- 数据库存储之Sharedpreference和SQLite
- 基于深度学习的目标检测研究进展
- RecyclerView的监听
- LeetCode 342. Power of Four
- 【mini2440】ARM汇编指令2
- 面向对象基本原则
- 网络安全是一门平衡的艺术
- 小白的python笔记(进阶)