資料結構實驗之棧與佇列三 字尾式求值

2021-08-08 20:53:59 字數 1047 閱讀 4116

problem description

對於乙個基於二元運算子的字尾表示式(基本運算元都是一位正整數),求其代表的算術表示式的值。

input

輸入乙個算術表示式的字尾式字串,以『#』作為結束標誌。

output

求該字尾式所對應的算術表示式的值,並輸出之。

example input

59*684/-3*+#

example output

57 hint

基本運算元都是一位正整數!

思路:讀到操作符,出棧pop前兩個,進行運算。運算完在入棧push,注意運算時的順序:先出棧的是作為後乙個運算元哦~

#include 

#include

#include

#define stackmax 10000 //儲存空間初始分配量

#define stacknum 10 //儲存空間分配增量

using namespace std;

typedef int selemtype; //棧裡是char型別的

typedef struct

sqstack;

int initstack(sqstack &s)

int push(sqstack &s, selemtype e)

*(s.top)=e;

s.top++;

return1;}

int pop(sqstack &s, selemtype &e) //出棧,並將值賦值給e,所以&e

int gettop(sqstack s, selemtype &e)

int main()

else

else

if(s[i]=='-')

else

if(s[i]=='*')

else

if(s[i]=='/')

}i++;

}gettop(s,e1);

cout0;}

資料結構實驗之棧與佇列三 字尾式求值

time limit 1000ms memory limit 65536kb submit statistic problem description 對於乙個基於二元運算子的字尾表示式 基本運算元都是一位正整數 求其代表的算術表示式的值。input 輸入乙個算術表示式的字尾式字串,以 作為結束標誌...

資料結構實驗之棧與佇列三 字尾式求值

problem description 對於乙個基於二元運算子的字尾表示式 基本運算元都是一位正整數 求其代表的算術表示式的值。input 輸入乙個算術表示式的字尾式字串,以 作為結束標誌。output 求該字尾式所對應的算術表示式的值,並輸出之。example input 59 684 3 exa...

資料結構實驗之棧與佇列三 字尾式求值

time limit 1000ms memory limit 65536kb problem description 對於乙個基於二元運算子的字尾表示式 基本運算元都是一位正整數 求其代表的算術表示式的值。input 輸入乙個算術表示式的字尾式字串,以 作為結束標誌。output 求該字尾式所對應的...