从头到尾读取中缀表达式的每个对象,对不同对象按不同的情况处理。
① 运算数: 直接输出;
② 左括号: 压入堆栈;
③ 右括号: 将栈顶的运算符弹出并输出, 直到遇到左括号(出栈,不输出);
④ 运算符:
• 若优先级大于栈顶运算符时,则把它压栈;
• 若优先级小于等于栈顶运算符时,将栈顶运算符弹出并输出;再比较新的栈顶运算符,直到该运算符大于栈顶运算符优先级为止,然后将该运算符压栈;
⑤ 若各对象处理完毕,则把堆栈中存留的运算符一并输出。
中缀表达式 -> 后缀表达式
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 中缀表达式(infix): 数学里面的公式就是中缀表达式,是我们生活中里面常用的表达式,比如说 a*(b+c), ...
- 在某些情况下,我们需要对输入字符串表达式进行计算,例如一个字符串为:“1 + 2 * 3”,我们需要计算出它的结果...
- 参考了http://blog.csdn.net/zhangkunrun/article/details/41699...