目前写过几千行代码
https://gitee.com/sybrjsjrg_br_jsj_rg/personal_project41634.git
一开始拿到题目时,也是想到通过判断拿到的字符串中是否含有“+、- 、*、/”运算符,来进行计算,但是这种算法没办法实现混合的四则运算,所以我查找了有关资料,包括后缀表达式,栈队有关知识等,并且借鉴了很多大神的博客,基本思路如下:
1.将表达式分解成操作数和操作符数组
2.将中缀表达式数组转换成后缀栈:按顺序遍历符号,如果是操作数直接输出,如果栈为空,或符号优先级比栈顶的符号优先级高,直接入栈,如果栈不为空,并且符号优先级小于等于栈顶符号优先级,先弹出并输出栈顶符号,直到栈为空或符号优先级比栈顶的符号优先级高,然后再将当前符号入栈,所有符号都遍历了,如果栈中还有符号,弹出并输出。
3.计算后缀表达式
4.应用操作符进行计算
基本过程如图:
算法的关键步骤:
l 将中缀表达式转换成后缀表达式
l 计算后缀表达式
原文:https://www.cnblogs.com/lx1106/p/9676002.html