1331 例1 2 字尾表示式的值

2021-10-04 16:45:44 字數 974 閱讀 2767

【題目描述】

從鍵盤讀入乙個字尾表示式(字串),只含有0-9組成的運算數及加(+)、減(—)、乘(*)、除(/)四種運算子。每個運算數之間用乙個空格隔開,不需要判斷給你的表示式是否合法。以@作為結束標誌。

比如,16–9*(4+3)轉換成字尾表示式為:16□9□4□3□+*–,在字元陣列a中的形式為:

棧中的變化情況:

執行結果:-47

【輸入】

乙個字尾表示式。

【輸出】

乙個字尾表示式的值。

【輸入樣例】

16 9 4 3 +*-@

【輸出樣例】

-47【**】

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

#define n 1000000007

char f[

100]

;stackh;

bool pool=

true

;void

caculate

(char c)

h.push

(b);

}bool

to_digit()

while

(in==

' ')if(

isdigit

(in)

) sum+

=in-

'0';

else

while

(in=

getchar()

,isdigit

(in)

) h.

push

(sum);}

intmain()

中綴表示式轉字尾表示式 求字尾表示式值

中綴表示式轉字尾表示式 佇列q和棧s q存放字尾表示式結果 s存放操作符 設棧頂元素top 當前讀取元素a 演算法如果s是空棧 a入棧非空棧 a不是操作符,a插入佇列q 如果a為 a入棧 否則,如果a為 把棧內操作符出棧依次插入佇列q,直至遇到得 元素出棧為止 否則,如果a優先順序大於top,a入棧...

計算表示式值(字尾表示式) 棧

處理表示式主要是對優先順序以及括號的判斷 1.運算子棧頂的優先順序小於加入的時,需要將所有的不評級的取出並計算,2.當遇到 時,需要括號內的運算全部處理 2.其他情況全部加入運算子棧和資料棧 include include include using namespace std typedef lo...

求字尾表示式的值

上篇文章介紹了 中綴表示式 轉 字尾表示式 這篇文章接著分享 計算字尾表示式的值 需求 求字尾表示式的值 輸入 字尾表示式 輸出 運算結果 from test05 stack.stack import stack import re defafter opt ret expr 運算元範圍 expr ...