前缀、中缀、后缀的相互转换
2017-08-24 02:19
204 查看
前缀 中缀 后缀 波兰式 通常表达方式(计算机看不懂) 逆波兰式
中缀—>后缀
方法一:
先将每一步用括号括起来,再将运算符移至括号后面,最后去掉括号。
X=A+B*(C-D)/E ——> (X=(A+((B*(C-D))/E))) ——> (X(A((B(CD)-)*E)/)+)= ——> XABCD-*E/+=
方法二:
初始化两个栈,s1存放操作数,s2存放运算符;
从表达式左边开始遍历,数字放在s1,运算符放在s2。
运算符放入s2中的规则:
如果s2为空,或者栈顶是“(”,则直接放进去;
如果当前运算符优先级大于栈顶元素优先级,则直接放入;
如果当前运’算符优先级小于栈顶元素优先级,则栈顶元素出栈,放入s1;
如果遇到“)“,运算符出栈,入s1,直到遇到”)“;
如果遇到“()”,丢掉,且把“()”之间的运算符放入s1;
s1中的元素出栈,放入s2栈;
s2出栈重新组成表达式。
中缀—>前缀
方法一:先将每一步用括号括起来,再将运算符移至括号前面,最后去掉括号。
方法二:
初始化两个栈,s1存放操作数,s2存放运算符;
从表达式右边开始遍历,数字放在s1,运算符放在s2。
运算符放入s2中的规则:
如果s2为空,或者栈顶是“)”,则直接放进去;
如果当前运算符优先级大于等于栈顶元素优先级,则直接放入;
如果当前运’算符优先级小于栈顶元素优先级,则栈顶元素出栈,放入s1;
s2中的元素出栈,放入s1栈;
s2出栈重新组成表达式。
相关文章推荐
- 前缀---中缀--后缀 表达式的相互转换
- 面试题77:前缀、中缀、后缀表达式的相互转换
- 中缀 前缀 后缀表达式 相互转换
- 中缀表达式转换成前缀表达式和后缀表达式的极其简单方法
- 栈和二叉树--中缀/后缀表达式的相互转换
- 中缀表达式转换成前缀表达式和后缀表达式的极其简单方法【转】
- (转)前缀、中缀、后缀表达式及转换与应用
- 中缀表达式转换为前缀及后缀表达式并求值【摘】
- [数据结构]前缀、中缀、后缀表达式求值以及相互转换
- 前缀、中缀、后缀表达式及其相互转化的Java实现
- IT笔试题中经常出现的前缀、中缀、后缀表达式转换问题-----阿冬专栏
- 【中缀转换成后缀或者前缀的思想、过程以及算法实现】
- 中缀表达式 转换为 前缀 后缀表达式
- 前缀中缀后缀表达式及其互相转换
- 一天一个算法: 前缀,中缀,后缀表达式的转换
- python数据结构与算法 9 中缀后前缀、后缀的转换思路
- 前缀、中缀、后缀表达式转换
- 栈实例(3):前缀、中缀、后缀转换
- [整合]中缀表达式、前缀表达式、后缀表达式的相互转换
- PTA 表达式转换 算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。