zoukankan      html  css  js  c++  java
  • 中缀表达式计算

    双栈法(数字栈和运算符栈)

    1.从前向后遇见数字就压入数字栈

    2.遇见左括号压栈

    3.遇见右括号则弹出数字栈顶两个数字,和一个运算符栈一个运算符进行计算,直至遇见左括号,退括号,计算结果压栈

    4.遇见运算符,若符号栈顶的元素小于当前运算符优先级,则入栈;若相等或大于则数字弹出俩,符号弹出一个计算,直至符号栈顶元素优先级小于当前运算符,入栈当前运算符; 

     注意各个运算符号的优先级:

    除法 4  乘法 3  减法 2 加法 1

    这里将除法的优先级高于乘法是要处理 6 / 3 * 6的问题,减法也类似,处理 2 - 6 + 3 的问题

    也可以将中缀表达式转化为后缀表达式进行计算

    规则:

    从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;

    若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于找顶符号(乘除优先加减)则栈顶元素依次出找并输出,并将当前符号进栈,一直到最终输出后缀表达式为止。

    左括号直接入栈,比较优先级时左括号优先级低于加减乘除

  • 相关阅读:
    解决uc浏览器不支持vw单位的方法
    调整网页适应移动端设备
    鼠标滚轮事件
    Sublime Text 3 快捷键总结(拿走)
    HTML+CSS图文排版
    焦点轮播图(一)
    前端各种库的在线引入地址
    HTML表格的基本操作
    23 服务的绑定启动Demo3
    23 服务的启动Demo2
  • 原文地址:https://www.cnblogs.com/userrain/p/8930211.html
Copyright © 2011-2022 走看看