zoukankan      html  css  js  c++  java
  • 中缀表达式变为后缀表达式

    中缀表达式“9+(3-1)*3+10/2”转化为后缀表达式“9 3 1-3*+ 10 2/+”

    中缀表达式转后缀表达式的方法:
    1.遇到操作数:直接输出(添加到后缀表达式中)
    2.栈为空时,遇到运算符,直接入栈
    3.遇到左括号:将其入栈
    4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。
    5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈
    6.最终将栈中的元素依次出栈,输出。

    实现9+(3-1)*3+10/2,栈=空
    1.9输出          表达式=9                         栈=空
    2.+入栈          表达式=9                         栈=+
    3.(入栈          表达式=9                         栈=+(
    4.3输出          表达式=9 3                       栈=+(
    5.-入栈          表达式=9 3                       栈=+(-
    6.1输出          表达式=9 3 1                     栈=+( -
    7.)比较栈顶      表达式=9 3 1 -                   栈=+
    8.*入栈          表达式=9 3 1 -                   栈=+*
    9.输出,         表达式=9 3 1 - 3                 栈=+*
    10.+比较栈顶     表达式=9 3 1 - 3 * +             栈=+
    11.10输出        表达式=9 3 1 - 3 * + 10          栈=+
    12./入栈         表达式=9 3 1 - 3 * + 10          栈=+ /
    13.2输出         表达式=9 3 1 - 3 * + 10 2        栈=+ /
    14.栈清空        表达式=9 3 1 - 3 * + 10 2 / +    栈=空

     

  • 相关阅读:
    xpath 获取表单的值
    更改Linux语言环境
    推送证书p12文件转换成pem的命令
    隐藏响应的server,X-Powered-By
    多维数组自定义排序
    Docker:Windows7下使用docker toolbox(1)
    FluentScheduler:开源轻量级定时任务调度架构
    IdentityServer3:.NET开源OpenID和OAuth2架构
    .NET拾忆:FormData文件上传
    正则表达式:各类数值
  • 原文地址:https://www.cnblogs.com/zsboy/p/3902642.html
Copyright © 2011-2022 走看看