c++实现将简单的中缀表达式转化为…
来源:互联网 发布:jenkins php持续集成 编辑:程序博客网 时间:2024/06/05 03:52
不多说了,都在代码里了,假设只有加法和乘法,除法和减法类似
#include <iostream>#include <stack>using namespace std;bool isNotOperator(char c) { return c != '*' && c != '+'&& c!= '(' && c != ')';}//获取符号的优先级int getPriority(char c) { int priority = -1; switch (c) { case '+': priority = 1; break; case '*': priority = 2; break; case '(': priority = 3; break; default: break; } return priority;}int main() { char *s = "a+b*c+(d*e+f)*g"; stack stk; while (*s != '\0' || !stk.empty()) { char current = *s; //如果字符串完毕,只有栈里面有元素,那么就全部弹出并输出 if (current == '\0') { while(!stk.empty()) { cout << stk.top(); stk.pop(); } break; } // 说明不是操作符,直接输出 if(isNotOperator(current)) { cout<< current; } else if (current ==')') { //1.弹出元素并输出直到'(' while(stk.top() != '(') { cout << stk.top(); stk.pop(); } //2.将"("也出栈 stk.pop(); } else { //下面是普通操作符的情况 //1.弹出栈元素直到发现优先级更低的元素 while(!stk.empty() && getPriority(current) <=getPriority(stk.top()) && stk.top() != '(') {cout << stk.top();stk.pop(); } //将本操作符入栈 stk.push(current); } s++; } cout << endl; return 0;}
- c++实现将简单的中缀表达式转化为…
- 将中缀表达式转化为前缀表达式
- 将中缀表达式转化为后缀表达式
- 将中缀表达式转化为后缀表达式
- 将中缀表达式转化为后缀表达式
- 将中缀表达式转化为后缀表达式
- 将中缀表达式转化为后缀表达式
- 将中缀表达式转化为后缀表达式
- 将中缀表达式转化为后缀表达式
- 将中缀表达式转化为后缀表达式
- 将中缀表达式转化为后缀表达式
- 将中缀表达式转化为逆波兰式(c++实现)
- 中缀转化为后缀表达式
- 中缀表达式转化为后缀表达式(栈的应用)
- 中缀表达式转化为后缀表达式的算法分析
- 将中缀表达式转化成后缀表达式
- 栈应用之将中缀表达式转化为后缀表达式(逆波兰表达式)
- 中缀式转化为后缀式的步骤 (简单计算器 的实现)
- 知识引擎WolframAlpha
- 为了更好地与大家交流,现决定将博…
- C++中关于理解dynamic_cast和stati…
- c++巧用非类型模板形参求数组长度
- 多重继承和虚继承的内存布局,超级…
- c++实现将简单的中缀表达式转化为…
- 【编程之美】寻找发帖水王课后习题
- Union-Find 按大小求并算法
- c++实现图的邻接表(带有权值和入度…
- [编程之美]子数组的最大乘积
- c++实现树的广度搜索和深度搜索完…
- crontab命令详解
- c++实现0-1背包问题完整源码(动态…
- DM8168芯片级资源(一)