后缀算术表达式

核 心 : \color{red}{核心:}

以 栈 结 构 为 基 , 根 据 运 算 符 的 优 先 级 来 决 定 什 么 什 么 出 栈 \color{red}{以栈结构为基,根据运算符的优先级来决定什么什么出栈}

举例:A+(B*C-D)+E

  1. A
    读A【栈空】

  2. A
    +号入栈【+】

  3. A
    左括号入栈【+ ( 】

  4. AB
    读B 无符号入栈【+( 】

  5. AB
    乘号入栈【+( *】

  6. ABC
    读C 无符号入栈【+( *】

  7. ABC *
    减号, 不 比 栈 顶 的 符 号 ( ∗ ) 优 先 级 高 \color{red}{不比栈顶的符号(*)优先级高} ,则把栈顶元素出栈
    循 环 进 行 \color{red}{循环进行} ,直到无法出栈时,减号入栈【+( -】

  8. ABC*D
    读D 无符号入栈【+( -】

  9. ABC*D
    右括号会与左括号匹配,这时需要出栈

  10. ABC*D-
    减号出栈【+( 】

  11. ABCD -
    左括号出栈【+】(左括号不用写在中缀表达式中)

  12. ABC*D - +
    中缀表达式的加号,不比栈顶的符号优先级高,则加号出栈【栈空】

  13. ABC*D - +
    直到出完栈为止(出栈之后会有新的栈顶,继续比较,如果满足条件则继续出栈,周而复始)
    然后中缀表达式的加号入栈【+】

  14. ABC*D - + E
    读E 无符号入栈【+】

  15. ABC * D - + E+
    中缀表达式结束,把剩余元素出栈【栈空】

故 ABC * D - + E+ 为最终答案

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值