栈和队列

给出一个中缀表达式求前缀表达式和后缀表达式:
a+bc-(d+e)
第一步:按照运算符的优先级对所有的运算单位加括号,
式子变成了:((a+(bc))-(d+e))
第二步:转换前缀与后缀表达式
前缀:把运算符号移动到对应的括号前面
则变成了:-( +(a (bc)) +(de))
把括号去掉:-+abc+de 前缀式子出现
后缀:把运算符号移动到对应的括号后面
则变成了:((a(bc)* )+ (de)+ )-
把括号去掉:abc*+de+- 后缀式子出现
后缀表达式逆向求解中缀表达式
1 2 3 + 4 *5 - +
基本思路和上面的一样:递归,碰到操作符就进入递归。
从左往右扫描先碰到+号,取+号前面两个操作数:2,3 得到:2+3.
继续往下扫碰到号,取4 和2+3 得到:(2+3)4
-号,取(2+3)4和5得到::(2+3)4-5
+号:取(2+3)4-5和1得到::1+(2+3)4-5
后缀表达式逆向求解中缀表达式
基本思路和上面的一样,变成从右往左扫描
- 本文标题:栈和队列
- 本文作者:寜静致逺
- 创建时间:2021-01-18 17:07:06
- 本文链接:https://hujiahao6.gitee.io/2021/01/18/栈和队列/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论