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

    转自:https://blog.csdn.net/iteye_4185/article/details/82574934

    1.假定有中缀表达式1 + (( 2 + 3)* 4 ) – 5,请将它转化为后缀表达式。

    方法一:利用表达式树

    方法二:利用辅助栈

    从左到右遍历中缀表达式的每个操作数和操作符。

    当读到操作数时,立即把它输出,即成为后缀表达式的一部分;

    若读到操作符,判断该符号与栈顶符号的优先级,若该符号优先级高于栈顶元素,则将该操作符入栈,否则就一次把栈中运算符弹出并加到后缀表达式尾端,直到遇到优先级低于该操作符的栈元素,然后把该操作符压入栈中。

    如果遇到”(”,直接压入栈中,如果遇到一个”)”,那么就将栈元素弹出并加到后缀表达式尾端,但左右括号并不输出。最后,如果读到中缀表达式的尾端,将栈元素依次完全弹出并加到后缀表达式尾端。

    上述链接中给出了图解。

    224. 基本计算器,可练习。

  • 相关阅读:
    POJ 3177 Redundant Paths(无向图缩点)
    POJ 1502 MPI Maelstrom
    LightOJ 1094
    POJ 1564 Sum It Up(深搜)
    C语言复习6_doWhile循环
    进阶学习
    C语言复习5_调试
    C语言复习4_while循环
    C语言复习3_条件结构
    C语言复习2_运算符
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/15227712.html
Copyright © 2011-2022 走看看