表达式树—中缀表达式转换成后缀表达式

Posted 码农皮邱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表达式树—中缀表达式转换成后缀表达式相关的知识,希望对你有一定的参考价值。

前缀、中缀、后缀表达式的转换举例

  • 前缀表达式:/+A*BCD。
  • 中缀表达式:A+B*C/D。
  • 后缀表达式:ABC*+D/。

中缀表达式转换后缀表达式算法

  1. 将栈初始化为空栈;
  2. 从左到右扫描表达式的每一个字符,执行下面操作:

    2.1  遇到操作数:直接输出(添加到后缀表达式中)

    2.2  栈为空时,遇到运算符,直接入栈

    2.3  遇到左括号:将其入栈

    2.4  遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。

    2.5  遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈

    2.6  最终将栈中的元素依次出栈,输出。

  例如:(A+B*C)/D

  

参考:http://www.cnblogs.com/mygmh/archive/2012/10/06/2713362.html

以上是关于表达式树—中缀表达式转换成后缀表达式的主要内容,如果未能解决你的问题,请参考以下文章

中缀表达式转换前\后缀表达式的总结

将中缀表达式转换成后缀表达式

中缀表达式转换成后缀表达式并求值

前缀中缀后缀表达式

3-6 中缀表达式转换成后缀表达式

中缀表达式转换成前缀表达式和后缀表达式的极其简单方法