發布時間: June 28, 2024, 7:58 a.m. 最後更新時間: June 28, 2024, 10:21 a.m. 時間限制: 1000ms 記憶體限制: 128M
後序表示法(英語:Reverse Polish notation,縮寫RPN,或逆波蘭記法、逆盧卡西維茨記法),是一種由波蘭數學家揚·盧卡西維茨於1920年引入的數學表達式形式,在逆波蘭記法中,所有運算子置於運算元的後面,因此也被稱為字尾表示法、逆波蘭記法。後序表示法不需要括號來標識運算子的優先級。
逆波蘭結構由弗里德里希·L·鮑爾和艾茲格·迪科斯徹在1960年代早期提議用於表達式求值,以利用堆疊結構減少電腦主記憶體訪問。逆波蘭記法和相應的演算法由澳大利亞哲學家、電腦學家查爾斯·倫納德·漢布林在1960年代中期擴充。在1960和1970年代,逆波蘭記法廣泛地被用於台式計算機,因此也在普通公眾(如工程、商業和金融等領域)中使用。
下面大部分是關於二元運算,一個一元運算使用逆波蘭記法的例子是階乘的記法。
逆波蘭記法中,運算子置於運算元的後面。例如表達「三加四」時,寫作「3 4 + 」,而不是「3 + 4」。如果有多個運算子,運算子置於第二個運算元的後面,所以常規中綴記法的「3 - 4 + 5」在逆波蘭記法中寫作「3 4 - 5 + 」:先3減去4,再加上5。使用逆波蘭記法的一個好處是不需要使用括號。例如中綴記法中「3 - 4 * 5」與「(3 - 4)*5」不相同,但字尾記法中前者寫做「3 4 5 * - 」,無歧義地表示「3 (4 5 *) -」;後者寫做「3 4 - 5 * 」。
輸入一僅有個位數的中敘加減運算式。
改成後序表示法
1+2+3+4+5
12+3+4+5+