栈和队列
寜静致逺 Lv3

给出一个中缀表达式求前缀表达式和后缀表达式:

a+bc-(d+e)
第一步:按照运算符的优先级对所有的运算单位加括号,
式子变成了:((a+(b
c))-(d+e))
第二步:转换前缀与后缀表达式
前缀:把运算符号移动到对应的括号前面
则变成了:-( +(a (bc)) +(de))
把括号去掉:-+a
bc+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 许可协议。转载请注明出处!
 评论