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

2021-08-04 22:11:24 字數 2445 閱讀 4807

若已經給出了字尾式,求值,其規則為,建立乙個棧,從左到右計算。若為數值,入棧,若為運算子,讓棧頂兩個數值運算,且運算順序為從左到右,並把新的元素重新入棧。此題用陣列也可解決,

time limit: 1000ms

memory limit: 65536kb

submit

statistic

problem description

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

input

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

output

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

example input

59*684/-3*+#

example output

57

hint

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

**:

#include

#include

#include

#define stackincrement 10000     //儲存空間分配增量

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

typedef int selemtype;

typedef struct

sqstack;

int initstack(sqstack *s)  //初始化棧

int push(sqstack *s,int e)//入棧函式

*(s->top) = e;//進行進棧操作

s->top++;

return 1;

}int f(char a,int b,int c)

int judge(char s,sqstack *s)

int main()

else if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/')

}printf("%d",*(s.top-1));//最後輸出棧頂元素

printf("\n");

return 0;}

法二:陣列。

view source

print?

01#include

02#include

03#include

04intf(chara,intb,intc)

05

16intjudge(chars,inta,intn)

17

23intmain()

24

40elseif(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/')

41

45}

46printf("%d",a[0]);

47

48printf("\n");

49

50return0;

51}

52

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

time limit 1000ms memory limit 65536k 有疑問?點這裡 對於乙個基於二元運算子的字尾表示式 基本運算元都是一位正整數 求其代表的算術表示式的值。輸入乙個算術表示式的字尾式字串,以 作為結束標誌。求該字尾式所對應的算術表示式的值,並輸出之。59 684 3 57 基...

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

time limit 1000ms memory limit 65536k 對於乙個基於二元運算子的字尾表示式 基本運算元都是一位正整數 求其代表的算術表示式的值。輸入乙個算術表示式的字尾式字串,以 作為結束標誌。求該字尾式所對應的算術表示式的值,並輸出之。59 684 3 57 include i...

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

abc defg hc 資料結構實驗之棧三 字尾式求值 time limit 1000msmemory limit 65536kb64bit io format lld llu submit status practice sdutoj 2133 description 對於乙個基於二元運算子的字尾...