• 利用栈将中缀表达式转化成后缀表达式


    目的:将中缀表达式(即标准形式的表达式)转换为后缀式。

    例子:a+b*c+(d*e+f)*g转换成abc*+de*f+g*+

    转换原则

    1. 遇到操作数, 直接输出

    2. 操作符的优先级为 () 最大, * / 次之, +- 最小. 遇到操作符后, 假如操作符堆栈为空, 则直接压入操作符, 否则判断当前操作符与栈顶操作符的优先关系, 假如栈顶操作符的优先级大于 等于当前操作符的优先级, 那么弹出栈顶操作符, 持续弹出, 直到栈顶操作符优先级小于当前操作符优先级或栈为空. 最后将当前操作符入栈

    3. 如果遇到右括号, 那么将栈顶操作符弹出, 持续弹出直到遇到左括号, 左括号弹出但不输出

    4. 表达式读入完毕, 若栈不为空, 则持续弹出栈顶操作符, 直到栈为空

    题目

    1. 九度题目1019:简单计算器

    2. 九度题目1101:计算表达式

    3. 九度题目1498:寻找表达式

  • 相关阅读:
    愤怒的小鸟(angry bird )
    1101模拟
    1029模拟题解
    1028题解
    图床
    数据结构
    博弈论
    差分
    前缀和
    快读和快写
  • 原文地址:https://www.cnblogs.com/xinsheng/p/3591781.html
Copyright © 2020-2023  润新知