(转)字符串表达式求值(C#)

表达式表达法:

算术表达式中常见的表示法形式有 中缀、前缀和后缀表示法。中缀表示法是书写表达式的常见方式,而前缀和后缀表示法主要用于科学领域。

中缀表示法:

中缀表示法是算术表达式的常规表示法。称它为 中缀表示法是因为每个操作符都位于其操作数的中间,这种表示法只适用于操作符巧好对应两个操作数的时候(在操作符是二元操作符如加、减、乘、除以及取模的情况下)。对以中缀表达法书写的表达式进行语法分析时,需要用括号和优先规则排除多义性。

Syntax:operand1 operator operand2

Example:(A+B)*C-D/(E+F)

前缀表示法:

前缀表示法中,操作符写在操作数的前面。这种表示法经常用于计算机科学,特别是编译器设计方面。为纪念其发明家——Jan Lukasiewicz,这种表示法也称 波兰表示法。

Syntax:operator operand1 operand2

Example:-*+ABC/D+EF

后缀表示法

在后缀表示法中,操作符位于操作数后面。后缀表示法也称 逆波兰表示法(reverse Polish natation,RPN),因其使表达式求值变得轻松,所以被普遍使用。

Syntax:operand1 operand2 operator

Example:AB+C*DEF+/-

前缀表示法和后缀表示法有三项公共特征:

<>操作数的顺序与等价的中缀表达式中的操作数的顺序一致

<>不需要括号

<>操作符的优先级不相关

中缀表达式到后缀表达式的转换

要把表达式

注:转自http://www.cnblogs.com/souso/articles/1643365.html

原文地址:https://www.cnblogs.com/hongjiumu/p/2617588.html