中缀转后缀

从左到右扫描这个中缀表达式,如果遇到操作数,就直接写出来;如果遇到运算符,就将其入栈。

入栈之前,首先将当前运算符与栈顶运算符比较优先级,如果当前运算符优先级小于等于栈顶运算符的优先级,则将栈顶运算符出栈,并写入结果表达式中,(这是一个循环的过程),然后继续和新的栈顶运算符比较,这样一直进行下去,直到比较结果为大于,则将扫描到的运算符入栈。栈空时,直接将运算符入栈。

对于表达式中含有括号的情况,当遇到左括号,直接入栈。当栈顶为左括号时,所有扫描到的运算符都入栈。当扫描到右括号时,则进行一系列出栈操作,将当前栈中从栈顶到左括号的元素全部出栈,并将其写入结果表达式中(括号除外,出栈的括号直接扔掉)。

最后,当扫描完表达式中所有字符时,如果栈中还有运算符,则将其全部出栈,并写入结果表达式中。

数据结构:用栈实现表达式的转换,详细步骤(中缀转后缀)

举个例子

数据结构:用栈实现表达式的转换,详细步骤(中缀转后缀)

相关文章:

  • 2021-07-05
  • 2022-12-23
  • 2021-12-30
  • 2021-10-22
  • 2021-05-24
  • 2021-10-23
  • 2022-01-02
猜你喜欢
  • 2022-12-23
  • 2022-01-19
  • 2022-12-23
  • 2021-06-23
  • 2022-12-23
  • 2021-12-19
相关资源
相似解决方案