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

2021-08-19 06:02:23 字數 833 閱讀 7259

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

time limit: 1000 ms memory limit: 65536 kib

submit statistic discuss

problem description

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

input

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

output

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

sample input

59*684/-3*+#

sample output

57 hint

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

source

#include 

#include

int top=0,i,stack[1001];

int main()

else

if(a[i]=='+')

else

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

else

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

else

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

}printf("%d\n",stack[top]);

return

0;}

think:

先把串裡的數先入棧,然後當遇到乙個運算子的時候就把棧頂和棧次元素進行相應的運算,接著top指標要後退啊,後退到棧次元素上,仔細想一下就是兩個元素運算完之後會變成乙個元素,在棧中表現為退回到棧次元素,最後只剩乙個數了就可以輸出

資料結構之棧與佇列

寫在前面 棧與佇列是兩種不同特點的資料結構。棧遵循著先進後出的特點,它就像乙個器皿,先放進去的後被取出來,後放進去也就是靠近瓶口的先出來。佇列,就像它的名字一般,它的結構類似於排隊,先進先出,後進後出。棧的實現package stack public class mystack public mys...

資料結構之棧與佇列

順序棧儲存結構 define stack size 50 typedef structstack 順序棧初始化 void initstack stack s 順序進棧 int push stack s,type x 順序棧出棧 int pop stack s,type x 鏈棧儲存結構 typede...

資料結構 之 棧與佇列

順序表實現 class stack object 棧 def init self self.list 選用順序表或鍊錶 defpush self,item 壓棧 self.時間複雜度o 1 self.list.insert 0,item 頭部插入,時間複雜度o n 說明 鍊錶結構的話,頭部插入。de...