[Java算法分析与设计]利用栈操作中缀表达式和后缀表达式的转换和运算
来源:互联网 发布:python range函数 编辑:程序博客网 时间:2024/06/06 01:44
概念:
后缀表达式:不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:(2 + 1) * 3 , 即2 1 + 3 *。
中缀表达式:(2 + 1) * 3就是中缀表达式。
算法:
计算机运用后缀表达式的具体做法(摘自百度百科):
建立一个栈S 。从左到右读表达式,如果读到操作数就将它压入栈S中,如果读到n元运算符(即需要参数个数为n的运算符)则取出由栈顶向下的n项按操作数运算,再将运算的结果代替原栈顶的n项,压入栈S中 。如果后缀表达式未读完,则重复上面过程,最后输出栈顶的数值则为结束。
中缀表达式转换为后缀表达式的方式:
遇到数字:直接输出 遇到'(':压栈 遇到')':持续出栈,如果出栈的符号不是'('则输出,否则终止出栈。 遇到符号则判断该符号与栈顶符号的运算优先级,如果栈顶符号的运算优先级高,则出栈并输出,直到优先级相等或栈为空;如果栈顶符号的运算优先级低于或等于当前符号的运算优先级,则将当前符号压栈。 处理完字符串后将栈中剩余的符号全部输出。
阅读全文
0 0
- [Java算法分析与设计]利用栈操作中缀表达式和后缀表达式的转换和运算
- 中缀和后缀表达式之间的转换
- 《数据结构和算法》之中缀表达式、后缀表达式转换
- 栈和二叉树--中缀/后缀表达式的相互转换
- 算法之中缀表达式和后缀表达式
- 算法之中缀表达式和后缀表达式
- 栈和队列6|中缀表达式转换为后缀表达式 – 数据结构和算法28
- 中缀和后缀表达式
- 利用栈将中缀表达式转换成后缀表达式,并将得到的后缀表达式求值
- 四则运算的中缀表达式和后缀表达式
- 四则运算的中缀表达式和后缀表达式
- 利用JAVA实现中缀表达式向后缀表达式的转换,并求出表达式的值
- 【转】中缀表达式转换成前缀表达式和后缀表达式
- 中缀表达式转换成前缀表达式和后缀表达式
- 中缀表达式转换成前缀表达式和后缀表达式
- 中缀表达式转换成前缀表达式和后缀表达式 --技巧
- [ZZ]中缀表达式转换成前缀表达式和后缀表达式
- 中缀表达式转换成前缀表达式和后缀表达式
- 【hdu1255】覆盖的面积(矩形面积交+线段树+扫描线)
- Activiti 简单demo (2)
- Uva 10132 File Fragmentation
- FastJSON、Gson和Jackson性能对比
- 实现TCP/IP协议
- [Java算法分析与设计]利用栈操作中缀表达式和后缀表达式的转换和运算
- I2C 小结
- linux-011中休眠函数以及唤醒函数的分析(sleep_on,wake_up)
- 使用Deferred新功能实现新客户端
- Kaggle入门模板:以手写识别Digit Recognizer为例
- 发一个ssh免密码登录的链接,试了很多个,就这个好使
- 为什么PCB上的单端阻抗控制50欧姆?
- 数据接口
- android JNi开发简介