複製鏈接
請複製以下鏈接發送給好友

RPN

(逆波蘭表達式)

鎖定
RPN(Reverse Polish Notation),逆波蘭表達式,是由J. Lukasiewicz發展而來的表達式。
外文名
RPN
全    稱
Reverse Polish Notation

目錄

RPN基本介紹

逆波蘭表達式,簡稱為RPN,在避免使用括號的情況下,完成表達式的有優先級的運算。RPN表達式由操作數(operand)和運算符(operator)構成,不使用括號,即可表示帶優先級的運算關係,但是須使用元字符,如空格。一般在計算機中,使用棧操作進行RPN表達式的計算。遇到操作數就入棧,遇到運算符,就對當前棧頂元素進行相應的一元或者二元運算。

RPN實例

例子:
普通表達式:0!+123+4*(5*6!+7!/8)/9
RPN表達式:0 ! 123 + 4 5 6 ! * 7 ! 8 / + * 9 / +
大致計算過程:
0入棧
!為運算符,計算棧頂0!,結果入棧
123入棧
+為運算符,將棧頂兩元素相加,結果入棧
4入棧
5入棧
6入棧
!為運算符,將棧頂6進行運算,結果入棧
*為運算符,將棧頂6!和5相乘,結果入棧
7入棧
!為運算符,計算7!,結果入棧
8入棧
/為運算符,將棧頂兩元素相除,結果入棧
+為運算符,將棧頂兩元素相加,結果入棧
*為運算符,將棧頂兩元素相乘,結果入棧
………………………………
以上用例來自清華大學計算機系鄧俊輝老師數據結構課程。