主题
Search

逆波兰表示法


逆波兰表示法 (RPN) 是一种表示表达式的方法,其中运算符符号放在被操作的参数之后。波兰表示法,其中运算符在操作数之前,是由波兰数学家 Jan Lucasiewicz 在 20 世纪 20 年代发明的。在 20 世纪 50 年代后期,澳大利亚哲学家和计算机科学家 Charles L. Hamblin 建议将运算符放在操作数之后,因此创建了逆波兰表示法。

例如,以下 RPN 表达式将产生 2 和 3 的和,即 5:2 3 +。

逆波兰表示法,也称为后缀表示法,与标准算术表达式的“中缀表示法”形成对比,在标准算术表达式中,运算符符号出现在操作数之间。

RPN 具有无需括号即可表示求值顺序或项的分组的特性。RPN 表达式只需从左到右求值,这大大简化了计算机程序中表达式的计算。例如,算术表达式 (3+4)×5 可以用 RPN 表示为 3 4 + 5 ×

在实践中,RPN 可以使用堆栈结构方便地进行求值。从左到右读取表达式,执行以下操作

1. 如果下一个是值,则将此值压入堆栈

2. 如果下一个是运算符,则从堆栈顶部弹出两个项,并将运算结果压入堆栈

标准的中缀算术表达式可以使用解析算法(如递归下降解析)转换为 RPN 表达式。

RPN 用于惠普和一些德州仪器计算器,以及某些计算机语言的内部。


另请参阅

堆栈

此条目由 Mark McIlroy 贡献

使用 Wolfram|Alpha 探索

参考文献

计算器主页。“逆波兰表示法。” http://www.calculator.org/rpn.htmlStone, A. “逆波兰表示法。” http://www-stone.ch.cam.ac.uk/documentation/rrf/rpn.html

在 Wolfram|Alpha 上被引用

逆波兰表示法

引用为

McIlroy, Mark. “逆波兰表示法。” 来自 MathWorld--Wolfram Web 资源,由 Eric W. Weisstein 创建。 https://mathworld.net.cn/ReversePolishNotation.html

主题分类